You are on page 1of 5

Giải

Công thức Runge-Kutta bậc 4


Đặt F(x,y)= 2.7xy + cos (x+2.7y)
h=0.3, xo = 1.2 , yo = 5.4 , y1=y(1.5)

y1 = y0 + (K1+ 2K2+ 2K3+ K4)


 y(1.5) = 15.69260639 ≈ 15.6926
code bài toán
function VD
format short;
clear all;
clc;
syms x u y;
h = 0.3;
x0 = 1.2;
y0 = 5.4
f =2.7*x*y+cos(x+2.7*y);
K1 = 0; K2 = 0; K3 = 0; K4 = 0;
u = [];u(1) = x0;
for i=1
u(i+1)= u(i) + h;
end
y = []; y(1) = y0;
for i=1
K1=h*subs(subs(f,u(i)),y(i));
K2=h*subs(subs(f,u(i)+h/2),y(i)+K1/2);
K3=h*subs(subs(f,u(i)+h/2),y(i)+K2/2);
K4=h*subs(subs(f,u(i)+h),y(i)+K3);
y(i+1)=y(i)+(K1+2*K2+2*K3+K4)/6;
end
disp('Xap xi: '), y(i+1),
end

kết quả

VD2

Giải
Công thức Runge-Kutta bậc 4
Đặt F(x,y)=

, ,
Với n = 1 ta có:

Với n = 2 ta có:

Tương tự ta có bảng giá trị sau:


Kết luận:
Theo kết quả ta có thể thấy nghiệm thu được gần đúng với nghiệm chính
xác của bài toán.
Code bài toán:
function VD
format short;
clear all;
clc;
syms x u y;
n= 10;
x1 = 0;
y1 = 0.5;
xi=2;
f = y-x^2+1;
h= (xi-x1)/n;
K1 = 0; K2 = 0; K3 = 0; K4 = 0;
u = [];u(1) = x1;
for i=1
u(i+1)= u(i) + h;
end
y = []; y(1) = y1;
for i=1
K1=h*subs(subs(f,u(i)),y(i));
K2=h*subs(subs(f,u(i)+h/2),y(i)+K1/2);
K3=h*subs(subs(f,u(i)+h/2),y(i)+K2/2);
K4=h*subs(subs(f,u(i)+h),y(i)+K3);
y(i+1)=y(i)+(K1+2*K2+2*K3+K4)/6;
end
disp('Xap xi: '), y(i+1),
end

You might also like