Euler方法解初值问题编程
一、题目
用Euler方法解初值问题:
y'=-2xy y(0)=0 (0≤x≤1.8)
取步长h=0.1,问题的精确解为ye.求初值问题数值解,估计误差,并将计算结果与精确解作比较(列表、作图).
x2二、程序
1.M-文件
Euler.m
x=0;n=0;y=1; h=0.1;
x_(1)=x;y_(1)=y;
y_exact(1)=exp(-x_(n+1)^2); error_(n+1)=abs(y_exact(1)-y);
fprintf('x_(i) y_(i) y_exact(i) error_(i)\\n')
fprintf(' %2.1f %8.4f %8.4f %8.4f\\n', x_(1),y_(1),y_exact(1),error_(1)) while x<=1.8 n=n+1;
y=y+h*((-2)*x*y); x=x+h;
y_(n+1)=y; x_(n+1)=x;
y_exact(n+1)=exp(-x_(n+1)^2); error_(n+1)=abs(y_exact(n+1)-y); fprintf(' %2.1f %8.4f %8.4 %8.4f\\n', x_(n+1),y_(n+1),y_exact(n+1),error_(n+1)) end
plot(x_,y_,'ro',x_,y_exact,'b*')
命令窗口输入
>> Euler
3.结果 1)表
x_(i) y_(i) y_exact(i) error_(i) 2.matlab ( 0.0 1.0000 1.0000 0.0000 0.1 1.0000 0.9900 0.0100 0.2 0.9800 0.9608 0.0192 0.3 0.9408 0.9139 0.0269 0.4 0.8844 0.8521 0.0322 0.5 0.8136 0.7788 0.0348 0.6 0.7322 0.6977 0.0346 0.7 0.44 0.6126 0.0317 0.8 0.5542 0.5273 0.0269
0.9 0.4655 0.4449 0.0206 1.0 0.3817 0.3679 0.0138 1.1 0.3054 0.2982 0.0072 1.2 0.2382 0.2369 0.0013 1.3 0.1810 0.1845 0.0035 1.4 0.1340 0.1409 0.0069 1.5 0.09 0.1054 0.0090 1.6 0.0675 0.0773 0.0098 1.7 0.0459 0.0556 0.0097 1.8 0.0303 0.0392 0.00 (2)图