1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 常微分方程数值解欧拉matlab MATLAB常微分方程数值解——欧拉法 改进的欧拉法与四阶

常微分方程数值解欧拉matlab MATLAB常微分方程数值解——欧拉法 改进的欧拉法与四阶

时间:2023-10-29 09:41:57

相关推荐

常微分方程数值解欧拉matlab MATLAB常微分方程数值解——欧拉法 改进的欧拉法与四阶

MATLAB常微分方程数值解

1.一阶常微分方程初值问题

2.欧拉法

3.改进的欧拉法

4.四阶龙格库塔方法

5.例题

用欧拉法,改进的欧拉法及4阶经典Runge-Kutta方法在不同步长下计算初值问题。步长分别为0.2,0.4,1.0.

matlab程序:

function z=f(x,y)

z=-y*(1+x*y);

function R_K(h)

%欧拉法

y=1;

fprintf(‘欧拉法:x=%f, y=%f\n‘,0,1);

for i=1:1/h

x=(i-1)*h;

K=f(x,y);

y=y+h*K;

fprintf(‘欧拉法:x=%f, y=%f\n‘,x+h,y);

end

fprintf(‘\n‘);

%改进的欧拉法

y=1;

fprintf(‘改进的欧拉法:x=%f, y=%f\n‘,0,1);

for i=1:1/h

x=(i-1)*h;

K1=f(x,y);

K2=f(x+h,y+h*K1);

y=y+(h/2)*(K1+K2);

fprintf(‘改进的欧拉法:x=%f, y=%f\n‘,x+h,y);

end

fprintf(‘\n‘);

%龙格库塔方法

y=1;

fprintf(‘龙格库塔法:x=%f, y=%f\n‘,0,1);

for i=1:1/h

x=(i-1)*h;

K1=f(x,y);

K2=f(x+h/2,y+(h/2)*K1);

K3=f(x+h/2,y+(h/2)*K2);

K4=f(x+h,y+h*K3);

y=y+(h/6)*(K1+2*K2+2*K3+K4);

fprintf(‘龙格库塔法:x=%f, y=%f\n‘,x+h,y);

end

结果:

>> R_K(0.2)

欧拉法:x=0.000000, y=1.000000

欧拉法:x=0.200000, y=0.800000

欧拉法:x=0.400000, y=0.614400

欧拉法:x=0.600000, y=0.461321

欧拉法:x=0.800000, y=0.343519

欧拉法:x=1.000000, y=0.255934

改进的欧拉法:x=0.000000, y=1.000000

改进的欧拉法:x=0.200000, y=0.807200

改进的欧拉法:x=0.400000, y=0.636118

改进的欧拉法:x=0.600000, y=0.495044

改进的欧拉法:x=0.800000, y=0.383419

改进的欧拉法:x=1.000000, y=0.296974

龙格库塔法:x=0.000000, y=1.000000

龙格库塔法:x=0.200000, y=0.804636

龙格库塔法:x=0.400000, y=0.631465

龙格库塔法:x=0.600000, y=0.489198

龙格库塔法:x=0.800000, y=0.377225

龙格库塔法:x=1.000000, y=0.291009

>> R_K(0.4)

欧拉法:x=0.000000, y=1.000000

欧拉法:x=0.400000, y=0.600000

欧拉法:x=0.800000, y=0.302400

改进的欧拉法:x=0.000000, y=1.000000

改进的欧拉法:x=0.400000, y=0.651200

改进的欧拉法:x=0.800000, y=0.405782

龙格库塔法:x=0.000000, y=1.000000

龙格库塔法:x=0.400000, y=0.631625

龙格库塔法:x=0.800000, y=0.377556

>> R_K(1)

欧拉法:x=0.000000, y=1.000000

欧拉法:x=1.000000, y=0.000000

改进的欧拉法:x=0.000000, y=1.000000

改进的欧拉法:x=1.000000, y=0.500000

龙格库塔法:x=0.000000, y=1.000000

龙格库塔法:x=1.000000, y=0.303395

注意:在步长h为0.4时,要将for i=1:1/h改为for i=1:0.8/h。

常微分方程数值解欧拉matlab MATLAB常微分方程数值解——欧拉法 改进的欧拉法与四阶龙格库塔方法...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。