Advertisement
starfoxleader

Second Order Runge-Kutta

Apr 12th, 2020
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. f = @(t,y) (-12*y);
  2.  
  3. a = 0;
  4. b = 1;
  5.  
  6. %z = exp(1);
  7.  
  8. alpha = 1; %y(0) = 1;
  9.  
  10. N1 = 20;
  11. N2 = 50;
  12. N3 = 100;
  13.  
  14. y0 = RK2(f,a,b,alpha,N1).'
  15. y1 = RK2(f,a,b,alpha,N2).';
  16. y2 = RK2(f,a,b,alpha,N3).';
  17.  
  18. t = 1;
  19.  
  20. Err_y0 = abs(y0(t)-t)
  21. Err_y1 = abs(y1(t)-t)
  22. Err_y2 = abs(y2(t)-t)
  23.  
  24. Err = [(Err_y0) (Err_y1) (Err_y2)]
  25.  
  26. plot(y0,t)
  27. plot(y1,t)
  28. plot(y2,t)
  29. loglog(Err)
  30. hold on
  31.  
  32. function [y,t] = RK2(f,a,b,alpha,N)
  33.  
  34. h = (b-a)/N;
  35. t = alpha;
  36. y = alpha;
  37.  
  38. for i = 1:N
  39. k1 = h.*f(t,y(i));
  40. k2 = h.*f(t,y(i)+(k1));
  41.  
  42. y(i+1) = y(i)+(k1+k2)/2;
  43. t = a + i.*h;
  44. end
  45.  
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement