常微分方程的数值解法

更新时间:2023-04-22 05:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

关于数值分析的

常微分方程的数值解法

一、题目 2x y y 求解初值问题 y

y 0 1 0 x 1 ,10等分区间,求节点处的近似值,并对所求结

果与分析解的结果进行比较。

二、方法

欧拉法

三、程序

function E=euler(f,a,b,y0,N)

x=zeros(1,N+1);

y=zeros(1,N+1);

x(1)=a;

y(1)=y0;

h=(b-a)/N;

for n=1:N

x(n+1)=x(n)+h;

y(n+1)=y(n)+h*feval(f,x(n),y(n));

end

T=[x',y']

四、结果

>> format compact

>> euler(inline('y-2*x/y'),0,1,1,10)

T =

0 1.0000

0.1000 1.1000

0.2000 1.1918

0.3000 1.2774

0.4000 1.3582

0.5000 1.4351

0.6000 1.5090

0.7000 1.5803

0.8000 1.6498

0.9000 1.7178

1.0000 1.7848

>> y=[1.0000 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 1.7848]; >> t=0:0.1:1;

>> z=sqrt(1+2*t)

z =

关于数值分析的

Columns 1 through 10

1.0000 1.0954 1.1832 1.2649 1.3416 1.4142 1.4832 1.5492

1.6125 1.6733

Column 11

1.7321

>> plot(t,y,'r-',t,z)

>> xlabel('x'), ylabel('y')

>> text(0.23,1.3,'yn \rightarrow')

>> text(0.5,1.4142,'\rightarrow y(xn)')

求得节点处的近似值为

, y 1.0000 1.1000 1.1918 1.2774 1.3582 1.4351 1.5090 1.5803 1.6498 1.7178 1.7848T

分析解为

T

y xn 1.0000 1.0954 1.1832 1.2649 1.3416 1.4142 1.4832 1.5492 1.6125 1.6733

关于数值分析的

五、拓展

1、由上面的计算结果对比可以看到,欧拉方法计算的精度很差。

欧拉公式为yn 1h2(2)y(xn),欧拉法是一阶精度,单步 yn hf(xn,yn),局部截断误差为2

显式,稳定性差。

2、若要提高稳定性,可以使用后退的欧拉法和中点法。后退的欧拉法是一阶隐式的,稳定性好。不过在计算时使用显式算法比隐式算法方便。

本文来源:https://www.bwwdw.com/article/adfq.html

Top