Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.40 KB | None | 0 0
  1. syms x;
  2.  
  3. f = 2+x^2; %funkcja podcalkowa z argumentem 'x'
  4. a = 0; %poczatek przedzialu
  5. b = pi; %koniec przedzialu
  6. n = 4; %liczba podprzedzialow
  7. h = (b-a)/n;
  8. y = zeros(1,n);
  9. delta_y = zeros(1,n);
  10. y(1) = 0;
  11.  
  12. for i=1:(n+1)
  13.     k1 = subs(f,x,(a+h*(i-1)));
  14.     k2 = subs(f,x,((a+h*(i-1))+h/2));
  15.     k3 = subs(f,x,((a+h*(i-1))+h/2));
  16.     k4 = subs(f,x,((a+h*(i-1))+h));
  17.  
  18.     delta_y(i) = 1/6*h*(k1+2*k2+2*k3+k4);
  19.     y(i+1) = y(i)+delta_y(i);
  20. end
  21.  
  22. y(n+1)
  23.  
  24. % MODYFIKACJA
  25.  
  26. syms x;
  27.  
  28. f = 2+x^2; %funkcja podcalkowa z argumentem 'x'
  29. a = 0; %poczatek przedzialu
  30. b = pi; %koniec przedzialu
  31. n = 4; %liczba podprzedzialow
  32. d = 1e3;%dokładność po przecinku
  33. h = (b-a)/n;
  34. y = zeros(1,n);
  35. y_ = zeros(1,n);
  36. delta_y = zeros(1,n);
  37. delta_y_ = zeros(1,n);
  38. y(1) = 0;
  39. y_(1) =0;
  40.  
  41. for i=1:(n )
  42.     clc
  43.     disp('iteracja :');  i
  44.     k1 = subs(f,x,(a+h*(i-1)));
  45.     k2 = subs(f,x,((a+h*(i-1))+h/2));
  46.     k3 = subs(f,x,((a+h*(i-1))+h/2));
  47.     k4 = subs(f,x,((a+h*(i-1))+h));
  48.  
  49.     k1_ = double(floor(k1*d))/d;
  50.     k2_ = double(floor(k2*d))/d;
  51.     k3_ = double(floor(k3*d))/d;
  52.     k4_ = double(floor(k4*d))/d;
  53.  
  54.     k=[k1 k2 k3 k4]     %dokładne
  55.     k_ = [k1_ k2_ k3_ k4_]      %ucięte
  56.     delta_y(i) = 1/6*h*(k1+2*k2+2*k3+k4)
  57.     delta_y_(i) = 1/6*h*(k1_+2*k2_+2*k3_+k4_);
  58.  
  59.     delta_y_(i) = double(floor(delta_y_(i)*d))/d
  60.  
  61.     y(i+1) = y(i)+delta_y(i)
  62.     y_(i+1) = y_(i)+delta_y_(i)
  63.     pause
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement