1. Trang chủ
  2. » Giáo án - Bài giảng

Tính vi phân cấp ba của hàm số bất kỳ theo phương pháp runge

2 1 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tính vi phân cấp ba của hàm số bất kỳ theo phương pháp runge-kutta
Trường học Trường Đại Học Bách Khoa Hà Nội
Thể loại tiểu luận
Thành phố Hà Nội
Định dạng
Số trang 2
Dung lượng 12,27 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính vi phân cấp ba của hàm số bất kỳ theo phương pháp Runge Kutta syms x y z t; format long f=input(''''f=''''); g=input(''''g=''''); p=input(''''p=''''); x0=input(''''x0=''''); y0=input(''''y0=''''); z0=input(''''z0=''''); t0=input(''''t[.]

Trang 1

Tính vi phân cấp ba của hàm số bất kỳ theo phương pháp Runge-Kutta: syms x y z t;

format long

f=input('f=');

g=input('g=');

p=input('p=');

x0=input('x0=');

y0=input('y0=');

z0=input('z0=');

t0=input('t0=');

x1=input('x1=');

h=input('h=');

X=[];X=[X,x0];n=(x1-x0)/h;

Y=[];Y=[Y,y0];

Z=[];Z=[Z,z0];

T=[];T=[T,t0];

for i=1:n

K1=h*subs(f,{x,y,z,t},{X(i),Y(i),Z(i),T(i)});

M1=h*subs(g,{x,y,z,t},{X(i),Y(i),Z(i),T(i)});

N1=h*subs(p,{x,y,z,t},{X(i),Y(i),Z(i),T(i)});

K2=h*subs(f,{x,y,z,t},{X(i)+h/2,Y(i)+K1/2,Z(i)+M1/2,T(i)

+N1/2});

M2=h*subs(g,{x,y,z,t},{X(i)+h/2,Y(i)+K1/2,Z(i)+M1/2,T(i)

+N1/2});

N2=h*subs(p,{x,y,z,t},{X(i)+h/2,Y(i)+K1/2,Z(i)+M1/2,T(i)

+N1/2});

K3=h*subs(f,{x,y,z,t},{X(i)+h/2,Y(i)+K2/2,Z(i)+M2/2,T(i)

+N2/2});

Trang 2

M3=h*subs(g,{x,y,z,t},{X(i)+h/2,Y(i)+K2/2,Z(i)+M2/2,T(i) +N2/2});

N3=h*subs(p,{x,y,z,t},{X(i)+h/2,Y(i)+K2/2,Z(i)+M2/2,T(i) +N2/2});

K4=h*subs(f,{x,y,z,t},{X(i)+h,Y(i)+K3,Z(i)+M3,T(i)+N3}); M4=h*subs(g,{x,y,z,t},{X(i)+h,Y(i)+K3,Z(i)+M3,T(i)+N3}); N4=h*subs(p,{x,y,z,t},{X(i)+h,Y(i)+K3,Z(i)+M3,T(i)+N3}); Y(i+1)=Y(i)+(K1+2*K2+2*K3+K4)/6;

Z(i+1)=Z(i)+(M1+2*M2+2*M3+M4)/6;

T(i+1)=T(i)+(N1+2*N2+2*N3+N4)/6;

X(i+1)=X(i)+h;

end

disp('y=');

disp(Y(i+1));

return;

Ngày đăng: 11/04/2023, 22:55

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w