ros (N, n + 1); (1)=min ( x); k=1: 1: N (k, 1)=y0 (k); i=1: 1: n (i + 1)=x (i) + h; i=2: 1: n + 1 =h. * f (x (i - 1), y (:, i - 1));=h. * f (x (i - 1) + h/2, y (:, i - 1) + k1/2);=h. * f (x (i - 1) + h/2, y (:, i - 1) + k2/2);=h. * f (x (i), y (:, i - 1) + k3);=(k1 + 2 * k2 + 2 * k3 + k4)/6; (:, i)=y (:, i - 1) + dy; (j)=n + 1; j ~=1i3=1: 1: N (i3)=max (abs (Y2 (i3, :) - Y1 (i3,:))); (i3)=max (abs (y (i3, :))) ; (i3)=max (abs (y (i3,:)));=max (M11);=max (M22); i1=1: 1: Ni2=1: 1: L (j - 1) (i1 , i2)=y (i1,2 * i2-1)/M2; i2=1: 1: L (j) (i1, i2)=y (i1, i2)/M1; (j gt; 1) amp; amp; (max (M) lt;=e);=h/2;=j + 1;
end=x laquo ;;=y raquo ;;=x (n + 1);=y (n + 1,:);
Файл b2.m
[t, Y, te1, ye1]=a2 (div, [0 6], 0.2, [0, 0.1, 0], 0.01); ( NumberTitle raquo ;, off raquo ;, Name raquo ;, Метод Рунге-Кутта (X (T)) ) ( Метод Рунге-Кутта (X (T)) ) ( X (T) ); ( t, Y (:, 1), k ); on; ( T ); ( X ); ( NumberTitle raquo ;, off raquo ;, Name raquo ;, Метод Рунге-Кутта (Y (T)) ) ( Метод Рунге-Кутта (Y (T)) ) ( Y (T) ); (t, Y (:, 2), b ); on; ( T ); ( Y ); ( NumberTitle raquo ;, off raquo ;, Name raquo ;, Метод Рунге-Кутта (Z (T)) ) ( Метод Рунге-Кутта (Z (T)) ) ( Z (T) ); (t, Y (:, 3)) on; ( T ); ( Z );
[x, y, te2, ye2]=ode45 (div, [[0 6], [0, 0.1, 0]); % Рішення через ode45 ( NumberTitle raquo ;, off raquo ;, Name raquo ;, ode45 (X (T)) ) ( ode45 (X (T)) ) (x, y ( :, 1)) ( X (T) ode45 ); on; ( T ); ( X ); ( NumberTitle raquo ;, off raquo ;, Name raquo ;, ode45 (Y (T)) ) ( ode45 (Y (T)) ) (x, y (:, 2)) ( Y (T) ode45 ); on; ( NumberTitle raquo ;, off raquo ;, Name raquo ;, ode45 (Z (T)) ) ( ode45 (Z (T)) ) (x, y (:, 3)) ( Z (T) ode45 ); on;=[0 6]; % Кордону
[x, y, te, ye]=ode45 (@ div, t, [0, 0.1, 0]); ( NumberTitle raquo ;, off raquo ;, Name raquo ;, Метод Рунге-Кутта (рух точки) )=VideoWriter ( rgr.avi ); % Створення відеофайла.FrameRate=25; (mov); i=1: length (T)
plot3 (Y (:, 1), Y (:, 2), Y (:, 3), -k , ...% побудова графіка
Y (i, 1), Y (i, 2), Y (i, 3), * r ) (- 38 + 0.1 * i, 26 + 0.1 * i) ( [15, 25]) ([min (Y (:, 1)), max (Y (:, 1))]) ([min (Y (:, 2)), max (Y (:, 2)) ]) ([min (Y (:, 3)), max (Y (:, 3))]) on ([ T=, num2str (T (i), % 1.3f ), ])
заголовок графіка зі значенням Т
xlabel ( X (T) ) ( Y (T) ) ( Z (T) )=getframe (gcf);
writeVideo (mov, F); % Запис відео (mov);
Додаток Б
Таблиця похибки
Функція ode45Собственная функціяОтносітельная похибка (%) X (t) - 1.763379798047849-1.7631184951735520.999852Y (t) 0.0044308568909850.0045288569198951.022118Z (t) - 0.006494568945723-0.0063517954486090.978017
Висновок: похибка власної функції, що реалізує метод Рунге-кутти, не перевищує 1,02%.