常微分方程的数值解法(欧拉法改进欧拉法泰勒方法和龙格库塔法).doc
文本预览下载声明
[例1]用欧拉方法与改进的欧拉方法求初值问题
在区间[0,1]上取的数值解。
[解] 欧拉方法的计算公式为
使用excel表格进行运算,相应结果如下
例一:欧拉法 n x y 精确解 0 0 1 1 1 0.1 1 1.003322 2 0.2 1.006667 1.013159 3 0.3 1.019824 1.029142 4 0.4 1.039054 1.050718 5 0.5 1.063754 1.077217 6 0.6 1.093211 1.107932 7 0.7 1.126681 1.142165 8 0.8 1.163443 1.179274 9 0.9 1.202845 1.218689 10 1 1.244314 1.259921
现用matlab编程,程序如下
x0=0;
y0=1;
x(1)=0.1;
y(1)=y0+0.1*2*x0/(3*y0^2);
for n=1:9
x(n+1)=0.1*(n+1);
y(n+1)=y(n)+0.1*2*x(n)/(3*y(n)^2);
end;
x
y
结果为
x =
Columns 1 through 8
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
Columns 9 through 10
0.9000 1.0000
y =
Columns 1 through 8
1.0000 1.0067 1.0198 1.0391 1.0638 1.0932 1.1267 1.1634
Columns 9 through 10
1.2028 1.2443
改进的欧拉方法其计算公式为
本题的精确解为,可用来检验数值解的精确度,列出计算结果。
使用excel表格进行运算,相应如下
例一:改进的欧拉法 n x 预测y 校正y 精确解 0 0 1 1 1 1 0.1 1 1.003333 1.003322 2 0.2 1.009956 1.01318 1.013159 3 0.3 1.026169 1.029171 1.029142 4 0.4 1.048054 1.050751 1.050718 5 0.5 1.074904 1.077252 1.077217 6 0.6 1.105976 1.107965 1.107932 7 0.7 1.140549 1.142194 1.142165 8 0.8 1.177965 1.179297 1.179274 9 0.9 1.217646 1.218706 1.218689 10 1 1.259103 1.25993 1.259921 现用matlab编程,程序如下
x0=0;
y0=1;
x(1)=0.1;
ya(1)=y0+0.1*2*x0/(3*y0^2);
y(1)=y0+0.05*(2*x0/(3*y0^2)+2*x0/(3*ya^2));
for n=1:9
x(n+1)=0.1*(n+1);
ya(n+1)=ya(n)+0.1*2*x(n)/(3*ya(n)^2);
y(n+1)=y(n)+0.05*(2*x(n)/(3*y(n)^2)+2*x(n+1)/(3*ya(n+1)^2));
end;
x
y
结果为
x =
Columns 1 through 8
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000
Columns 9 through 10
0.9000 1.0000
y =
Columns 1 through 8
1.0000 1.0099 1.0261 1.0479 1.0748 1.1059 1.1407 1.1783
Columns 9 through 10
1.2183 1.2600
[例2]用泰勒方法解
分别用二阶、四阶泰勒方法计算点=0.1, 0.2, …, 1.0处的数值解,并与精确解进行比较。
解:二阶泰勒方法
对于本题
故
使用excel表格进行运算,相应结果如下
n x y 精确解 0 0 1 1 1 0.1 1.003333 1.003322 2 0.2 1.013223 1.013159 3 0.3
显示全部