常微分方程的数值解法.docx
- 文档编号:27121337
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:14
- 大小:345.25KB
常微分方程的数值解法.docx
《常微分方程的数值解法.docx》由会员分享,可在线阅读,更多相关《常微分方程的数值解法.docx(14页珍藏版)》请在冰豆网上搜索。
常微分方程的数值解法
--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--
常微分方程的数值解法(欧拉法、改进欧拉法、泰勒方法和龙格-库塔法)(总10页)
[例1]用欧拉方法与改进的欧拉方法求初值问题
在区间[0,1]上取
的数值解。
[解] 欧拉方法的计算公式为
使用excel表格进行运算,相应结果如下
例一:
欧拉法
n
x
y
精确解
0
0
1
1
1
1
2
3
4
5
6
7
8
9
10
1
现用matlab编程,程序如下
x0=0;
y0=1;
x
(1)=;
y
(1)=y0+*2*x0/(3*y0^2);
forn=1:
9
x(n+1)=*(n+1);
y(n+1)=y(n)+*2*x(n)/(3*y(n)^2);
end;
x
y
结果为
x=
Columns1through8
Columns9through10
y=
Columns1through8
Columns9through10
改进的欧拉方法其计算公式为
本题的精确解为
,可用来检验数值解的精确度,列出计算结果。
使用excel表格进行运算,相应如下
例一:
改进的欧拉法
n
x
预测y
校正y
精确解
0
0
1
1
1
1
1
2
3
4
5
6
7
8
9
10
1
现用matlab编程,程序如下
x0=0;
y0=1;
x
(1)=;
ya
(1)=y0+*2*x0/(3*y0^2);
y
(1)=y0+*(2*x0/(3*y0^2)+2*x0/(3*ya^2));
forn=1:
9
x(n+1)=*(n+1);
ya(n+1)=ya(n)+*2*x(n)/(3*ya(n)^2);
y(n+1)=y(n)+*(2*x(n)/(3*y(n)^2)+2*x(n+1)/(3*ya(n+1)^2));
end;
x
y
结果为
x=
Columns1through8
Columns9through10
y=
Columns1through8
Columns9through10
[例2]用泰勒方法解
分别用二阶、四阶泰勒方法计算点
=,,…,处的数值解,并与精确解进行比较。
解:
二阶泰勒方法
对于本题
故
使用excel表格进行运算,相应结果如下
n
x
y
精确解
0
0
1
1
1
2
3
4
5
6
7
8
9
10
1
现用matlab编程,程序如下
x0=0;
y0=1;
x
(1)=;
y
(1)=y0+(3*y0^2)*(2*x0+*(1-4*x0^2/(3*y0^3)));
forn=1:
9
x(n+1)=*(n+1);
y(n+1)=y(n)+(3*y(n)^2)*(2*x(n)+*(1-4*x(n)^2/(3*y(n)^3)));
end;
x
y
结果为
x=
Columns1through9
Column10
y=
Columns1through9
Column10
四阶泰勒方法
使用excel表格进行运算,相应结果如下
例二:
四阶泰勒方法
n
x
y
y的一阶导数
y的二阶导数
y的三阶导数
y的四阶导数
精确解
0
0
1
0
0
1
1
2
3
4
5
6
7
8
9
10
1
现用matlab编程,程序如下
x0=0;
y0=1;
ya0=2*x0/(3*y0^2);%%一阶导数
yb0=2/(3*y0^2)-8*x0^2/(9*y0^5);%%二阶导数
yc0=-4*x0/(3*y0^5)-80*x0^3/(27*y0^8);%%三阶导数
yd0=-4/(3*y0^5)+40*x0^2/(3*y0^8)-1280*x0^4/(81*y0^11);%%四阶导数
x
(1)=;
y
(1)=y0+*ya0+2*yb0+6*yc0+24*yd0;
ya
(1)=2*x
(1)/(3*y
(1)^2);%%一阶导数
yb
(1)=2/(3*y
(1)^2)-8*x
(1)^2/(9*y
(1)^5);%%二阶导数
yc
(1)=-4*x
(1)/(3*y
(1)^5)-80*x
(1)^3/(27*y
(1)^8);%%三阶导数
yd
(1)=-4/(3*y
(1)^5)+40*x
(1)^2/(3*y
(1)^8)-1280*x
(1)^4/(81*y
(1)^11);%%四阶导数
forn=1:
9
x(n+1)=*(n+1);
y(n+1)=y(n)+*ya(n)+2*yb(n)+6*yc(n)+24*yd(n);
ya(n+1)=2*x(n+1)/(3*y(n+1)^2);%%一阶导数
yb(n+1)=2/(3*y(n+1)^2)-8*x(n+1)^2/(9*y(n+1)^5);%%二阶导数
yc(n+1)=-4*x(n+1)/(3*y(n+1)^5)-80*x(n+1)^3/(27*y(n+1)^8);%%三阶导数
yd(n+1)=-4/(3*y(n+1)^5)+40*x(n+1)^2/(3*y(n+1)^8)-1280*x(n+1)^4/(81*y(n+1)^11);%%四阶导数
end;
x
Y
结果为
x=
Columns1through8
Columns9through10
y=
Columns1through8
Columns9through10
[例3]用标准四阶R-K方法求
在区间[0,1]上,
的数值解以及在区间[1,10]上,
的数值解,并与精确解进行比较。
解:
对于本题
使用excel表格进行运算,相应结果如下
例三:
标准四阶R-K方法
n
x
y
k1
k2
k3
k4
精确解
0
0
1
0
1
1
2
3
4
5
6
7
8
9
10
1
现用matlab编程,程序如下
x0=0;
y0=1;
k10=2**x0/(3*y0^2);
k20=2**(x0+/(3*(y0+k10/2)^2);
k30=2**(x0+/(3*(y0+k20/2)^2);
k40=2**(x0+/(3*(y0+k30)^2);
x
(1)=;
y
(1)=y0+(k10+2*k20+2*k30+k40)/6;
k1
(1)=2**x
(1)/(3*y
(1)^2);
k2
(1)=2**(x
(1)+/(3*(y
(1)+k1
(1)/2)^2);
k3
(1)=2**(x
(1)+/(3*(y
(1)+k2
(1)/2)^2);
k4
(1)=2**(x
(1)+/(3*(y
(1)+k3
(1))^2);
forn=1:
9
x(n+1)=*(n+1);
y(n+1)=y(n)+(k1(n)+2*k2(n)+2*k3(n)+k4(n))/6;
k1(n+1)=2**x(n+1)/(3*y(n+1)^2);
k2(n+1)=2**(x(n+1)+/(3*(y(n+1)+k1(n+1)/2)^2);
k3(n+1)=2**(x(n+1)+/(3*(y(n+1)+k2(n+1)/2)^2);
k4(n+1)=2**(x(n+1)+/(3*(y(n+1)+k3(n+1))^2);
end;
x
y
结果为
x=
Columns1through8
Columns9through10
y=
Columns1through8
Columns9through10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微分方程 数值 解法