当前位置:文档之家› 微分方程数值解欧拉法

微分方程数值解欧拉法

dy??x??xey?1.1、求解初值问题,已知精确解为????x?2xx?y?2x2当h=0.1时,解为:?dx????01y?1????yxy?xyyx nnnnn1 0 19.3616E-03 0.1 0.900000 0.9093621.6057E-02 0.819048 0.2 0.8351052.0637E-02 0.774155 0.753518 0.32.3555E-02 0.723946 0.4 0.7003912.5182E-02 0.5 0.682347 0.6571652.5823E-02 0.621775 0.6 0.6475982.5723E-02 0.592526 0.618249 0.72.5080E-02 0.568034 0.8 0.5931142.4053E-02 0.547177 0.9 0.5712302.2768E-021.00.551819 0.52905110.950.90.850.80.750.70.650.60.550.510.100.20.80.70.90.60.40.30.5时,解为:h=0.05当.????x xyy y?yx nnn nn1 1 02.4185E-03 0.952418 0.05 0.9500004.4835E-03 0.10 0.909362 0.9048786.2326E-03 0.15 0.864158 0.8703917.6996E-03 0.827406 0.20 0.8351058.9155E-03 0.794223 0.25 0.8031389.9084E-03 0.774155 0.764247 0.301.0704E-02 0.737147 0.747850 0.351.1324E-02 0.723946 0.40 0.7126211.1791E-02 0.702188 0.45 0.6903971.2124E-02 0.50 0.670223 0.6823471.2338E-02 0.55 0.664213 0.6518761.2450E-02 0.635148 0.60 0.6475981.2473E-02 0.65 0.632328 0.6198551.2420E-02 0.618249 0.70 0.6058291.2302E-02 0.75 0.592918 0.6052201.2129E-02 0.593114 0.80 0.5809851.1909E-02 0.85 0.569909 0.5818191.1651E-02 0.559579 0.90 0.5712301.1362E-02 0.95 0.561258 0.5498961.1048E-021.000.5518190.54077110.950.90.850.80.750.70.650.60.550.510.90.70.50.100.20.30.40.60.8 h=50时,解为:????x xyy yxy?nnn nn 00 1 13.9471E-04 0.980395 0.980000 0.02 7.6599E-04 0.961558 0.04 0.960792 1.1148E-03 0.943460 0.06 0.942345 1.4422E-03 0.08 0.926070 0.9246281.7491E-03 0.10 0.909362 0.9076132.0363E-03 0.893306 0.891270 0.12 2.3048E-03 0.877878 0.14 0.875573 2.5553E-03 0.860496 0.16 0.8630512.7888E-03 0.18 0.846013 0.8488023.0058E-03 0.835105 0.20 0.832100 3.2073E-03 0.821940 0.22 0.818732 3.3938E-03 0.24 0.805889 0.809283 3.5662E-03 0.26 0.793547 0.797113 3.7250E-03 0.785410 0.28 0.7816853.8709E-03 0.30 0.774155 0.7702844.0045E-03 0.32 0.759323 0.763328 4.1264E-03 0.748784 0.752911 0.34 4.2371E-03 0.36 0.742886 0.738649 4.3373E-03 0.38 0.733236 0.728899 4.4274E-03 0.40 0.723946 0.719518 4.5079E-03 0.714998 0.710490 0.42 4.5793E-03 0.44 0.701800 0.706379 4.6421E-03 0.46 0.698073 0.693431 4.6967E-03 0.685371 0.48 0.690067 4.7435E-03 0.677603 0.682347 0.50 4.7830E-03 0.52 0.674900 0.670117 4.8156E-03 0.667713 0.54 0.662897 4.8415E-03 0.56 0.660775 0.655933 4.8613E-03 0.649212 0.654073 0.58 4.8751E-03 0.642723 0.647598 0.60 4.8835E-03 0.62 0.636454 0.641337 4.8866E-03 0.630395 0.64 0.635282 4.8848E-03 0.66 0.624537 0.629422 4.8784E-03 0.623747 0.68 0.618868 4.8676E-03 0.618249 0.70 0.613381 4.8528E-03 0.612918 0.608066 0.72 4.8341E-03 0.607748 0.602914 0.74 4.8119E-030.760.5979170.6027284.7863E-03 0.597853 0.593067 0.784.7577E-03 0.588357 0.80 0.5931144.7261E-03 0.82 0.583779 0.5885054.6918E-03 0.579326 0.84 0.5840184.6550E-03 0.86 0.579647 0.5749924.6159E-03 0.88 0.575387 0.5707714.5746E-03 0.566656 0.90 0.5712304.5314E-03 0.92 0.567172 0.5626414.4864E-03 0.558721 0.94 0.5632074.4397E-03 0.554890 0.96 0.5593304.3916E-03 0.551144 0.98 0.5555354.3420E-031.000.551819 0.54747710.90.0.850.80.750.70.650.60.550.510.90.60.70.80.200.10.40.30.5有图像看出,当步长越小,计算得到的解越逼近精确解。

dy???y?x?1?dx?,已知精确解为:1.2、求解初值问题? y?1?0x??x exy??h=0.1,欧拉法图像:1.41.351.31.251.21.151.11.05100.10.20.30.40.50.60.70.80.91改进欧拉法图像:1.4100.10.20.30.40.50.60.70.80.91预测-校正法图像:1.41.351.31.251.21.151.11.05100.10.20.30.40.50.60.70.80.91附录:源代码1.1、clear clcX0=0;X1=1;更改分点数n=10;%步长h=1/n;%y(1)=1;x(1)=X0; i=1:n for x(i+1)=x(i)+h;y(i+1)=y(i)+h*(x(i)*exp(-x(i))-y(i));end x=vpa(x',6)y=vpa(y',6)X=(X0:0.001:X1);n=1/0.001;(i=1:n+1)for Y(i)=0.5*(X(i)^2+2)*exp(-X(i)); end)plot(x,y,'*'on holdplot(X,Y)X=X0:h:X1;Y=0.5.*(X.^2+2).*exp(-X);Y=vpa(Y',6)yy=abs(y-Y)1.2、欧拉法:clear clcX0=0;X1=1;n=10;h=1/n;y(1)=1;x(1)=X0;X=X0:h:X1;Y=X+exp(-X);精确解%Y=vpa(Y',9);XX=X0:0.0001:X1;YY=XX+exp(-XX);i=1:n for x(i+1)=x(i)+h;y(i+1)=y(i)+h*(-y(i)+x(i)+1);endy=vpa(y',9))plot(x,y,'*'on holdplot(XX,YY)改进的欧拉法:clear clcX0=0;X1=1;n=10;h=1/n;y(1)=1;x(1)=X0;X=X0:h:X1;Y=X+exp(-X);精确解Y=vpa(Y',9);%XX=X0:0.0001:X1;YY=XX+exp(-XX);i=1:n forx(i+1)=x(i)+h; y(i+1)=y(i)+h*(-y(i)+x(i)+1);end i=1:n fory(i+1)=y(i)+0.5*h*((-y(i)+x(i)+1)+(-y(i+1)+x(i+1)+1));endy=vpa(y',9))'*'plot(x,y,on holdplot(XX,YY)预报-校正格式:clear clcX0=0;X1=1;n=10;h=1/n;y(1)=1;x(1)=X0;X=X0:h:X1;Y=X+exp(-X);精确解%Y=vpa(Y',9);XX=X0:0.0001:X1;YY=XX+exp(-XX);i=1:n for x(i+1)=x(i)+h; y(i+1)=y(i)+h*(-y(i)+x(i)+1);end i=1:n for 校正格式,迭代十次-%预报 count=1:10 fory(i+1)=y(i)+0.5*h*((-y(i)+x(i)+1)+(-y(i+1)+x(i+1)+1));endendy=vpa(y',9))'*'plot(x,y,.on hold plot(XX,YY).。

相关主题