微分数值解法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微分数值解法
分别用欧拉方法、改进的欧拉方法、二阶龙格-库塔方法、三阶龙格-库塔方法、四阶龙格-库塔方法,计算下列初值问题,并与精确解对比。
微分方程的初值问题:
⎪⎩⎪⎨⎧==0
0)()
,(y x y y x f dx dy
1.欧拉方法:用差分代替微分,化为:
⎩⎨
⎧+=+=++nh
x x y x hf y y n n n n n 011)
,( 2.改进的欧拉方法:
⎪
⎩⎪⎨
⎧
+=++=-
++-++)
,()],(),([21111n n n n n n n n n n y x hf y y y x f y x f h y y 3二阶龙格-库塔方法:
⎪⎪⎩
⎪
⎪⎨⎧
++==+=+)
2,2()
,(k 12121κκκh y h x f y x f h y y n n n n n n 4.三阶龙格-库塔方法:
⎪⎪⎪⎩⎪⎪
⎪⎨
⎧
+-++=++==+++=+))
2(,()
2
,2()
,()4(6
1213
1
213211
κκκκκκκκκh y h x f h y h x f y x f y y n n n n n n n n 5,四阶龙格-库塔方法:
⎪⎪⎪⎪
⎪
⎩⎪
⎪⎪⎪
⎪⎨⎧
++=++=++==++++=+)
,()2
,2()2,2(),()22(6
3423
12143211
κκκκκκκκκκκh y h x f h y h x f h y h x f y x f h y y n n n n n
n n n n n
例一:
⎩⎨
⎧=-+=0
)0(22
'y x x y y 易得方程精确解为:
y=2
x
根据欧拉方法、改进的欧拉方法、二阶龙格-库塔方法、三阶龙格-库塔方法、四阶龙格-库塔方法,利用c++编程(程序见附录),计算结果如下表:
例二:
⎩⎨
⎧=+-=0
)0(x
2x 24'y y y 易得精确解为
y=2
x
根据欧拉方法、改进的欧拉方法、二阶龙格-库塔方法、三阶龙格-库塔方法、四阶龙格-库塔方法,利用c++(程序见附录),计算结果如下表:
例三:
⎩
⎨
⎧=--=1)0(sin x cos 22'y x
y y 易得精确解为
y=cosx
根据欧拉方法、改进的欧拉方法、二阶龙格-库塔方法、三阶龙格-库塔方法、四阶龙格-库塔方法,利用c++(程序与例一类似,故省略见附录),计算结果如下表:
附录:
例一程序
(1)欧拉方法的c++程序:
(2)改进的欧拉方法的c++程序:
(3)二阶龙格-库塔方法:
(4)三阶龙格-库塔方法:
(5)四阶龙格-库塔方法:
例二程序:
(1)欧拉方法的c++程序:
(2)改进的欧拉方法的c++程序:
(3)二阶龙格-库塔方法:
(4)三阶龙格-库塔方法:
(5)四阶龙格-库塔方法
例三程序:
(1)欧拉方法的c++程序:
(2)改进的欧拉方法的c++程序:
(3)二阶龙格-库塔方法:
(4)三阶龙格-库塔方法:
(5)四阶龙格-库塔方法:。