数值分析龙格库塔Word文档格式.docx
- 文档编号:7159587
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:9
- 大小:19.51KB
数值分析龙格库塔Word文档格式.docx
《数值分析龙格库塔Word文档格式.docx》由会员分享,可在线阅读,更多相关《数值分析龙格库塔Word文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
三.实验算法-3-
四.实验程序-4-
⑴改进欧拉方法-4-
⑵四阶龙格库塔方法-5-
实验心得-7-
实验设计内容
1.实验目的
1)熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法、四阶龙格-库塔法;
2)会编制上述方法的计算程序,包括求解微分方程组的计算程序。
2.实验内容
分别用改进的欧拉方法与四阶龙格库塔公式取(h=0.1)求解些列微分方程初
值问题:
y=x2y2
y(0)=0
3.实验算法
解一阶常微分方程初值问题
「
y=f(x,y)a兰x兰b
<
、y(Xo)=yo
将区间[a,b]作n等分,取步长h=。
n
欧拉公式为
yi1=y「hf(Xi,yj
梯形公式为
h
yi^yi■-[f(xi,yi)-f区…y:
』
2
改进欧拉法,采用公式
yii=yi•hf以,yi)
彳+h.-
yii=yi[f区,yj•f以1『j]
L2
或表
yp=yi+hf(Xi,y」
Tc+hf(x+yp)
1丄
yi+=—(yp十yj
y=f(x,y)aMx三b
、y(Xo)=y
常用的是四阶龙格-库塔公式
yi+=yi十一(ki+2k2+2k3十k4)
6
ki=f(X,yi)
hh
“k2=f(Xi+—,yi+-kj
22
k3=f(Xi+—,yi+—k2)
k^f(Xi■h,yi-hk3)
上各节点处的近
y0,floatxn,int
取步长为h,由初值y出发,可得未知函数y(x)在区间[a,b]似值。
4.实验程序
⑴改进欧拉方法
1.改进欧拉方法的程序
#include<
stdio.h>
#defineN20
voidModEuler(float(*f)(float,float),floatx0,float
n)
{
inti;
floatyp,yc,x=xO,y=yO,h=(xn-xO)/n;
printf("
x[0]=%f\ty[0]=%f\n"
x,y);
for(i=1;
i<
=n;
i++)
yp=y+h*(*f)(x,y);
x=x0+i*h;
yc=y+h*(*f)(x,yp);
y=(yp+yc)/2;
x[%d]=%f\ty[%d]=%f\n"
i,x,i,y);
}
floatf(floatx,floaty)
returnx*x+y*y;
voidmain()
floatxn=1,x0=0,y0=0;
ModEuler(f,xO,yO,xn,N);
getch();
2.运行结果
■UC:
\Users\len©
vo\Desktop、口取腔矽拉、。
ebug\2.exe
J~0.003^013
y101=0谢
单
Lc(lJ=0.050000
皿卄_00思063
Lc(21=0.100000
y[21=0.000375
l_J
Lc[31=0.150008
y[31=0.001188
U4J=0.200❺00
V[4]=3.302750
k【51=目.25加00
IF[53M3.005313
j-0-300030
y(&
1=0.809128
X(71=0>
350000
y[7J=0.014448
ek(8]=0.400000
VE8J-0.021526
Let?
1=0.450308
1F(?
1=0.830622
y(10]=B.041979
Lc(ll>
0.550000
055931
dc[12J=0.630000
y[12>
0-072698
Lc(13]=0.6S000R
yC131-0.892599
700000
y[141^0.115952
pc£
15J=0_750000
y[151-0-143099
00000
y[16]=0.174415
X"
]叽850000
SFI17J-0.210319
lx{18900000
^(18]-0-251283
bc(19]=0.9^0000
y[191-0^29794?
^[2OJ=1.0000(30
^[201-0.358646
"
nrj*
⑵四阶龙格库塔方法
1•龙格库塔程序
x,floaty),floatafloatb,float
voidRunge_Kutta(float(*f)(floaty0,intN)
floatx=a,y=y0,K1,K2,K3,K4;
floath=(b-a)/N;
for(i=1;
=N;
K仁(*f)(x,y);
K2=(*f)(x+h/2,y+h*K1/2);
K3=(*f)(x+h/2,y+h*K2/2);
K4=(*f)(x+h,y+h*K3);
y=y+h*(K1+2*K2+2*K3+K4)/6;
x=a+i*h;
floata=0,b=1,y0=0;
Runge_Kutta(f,a,b,y0,20);
getch();
2.龙格库塔结果
&
\U$er$\tenavQ\Desktop\CVf?
S^S\Debug\4.exe'
回|Eg|
K【0】=呂«
000000
y[0J-8.O06O0O
xLI1=0.050000
yLli=0_B00042
xC2J=0.139000
^[23=0.600333
x[31=0.150000
y[3)^0.001125
x[4J=0.200000
y[4]°
0_002667
x[51=0.259300
^[53=0-005209
k[61=0.300800
9C6J^=0.609003
x[73=0.356000
yL73=0_014302
400000
y[8J=B-0213&
9
xL9J^0.450800
y[?
J=0.030434
x[101=0.500000
yL10J=0.041791
^[111=8.550000
V<
ii3=0.0SS701
x1121=6.600000
yL121=0-072448
x[13]=6.6S0000
y[13]=0.092328
x[14]=0.7D0000
y[143^0.115660
xL15J=G.750000
ytl5]=0.142785
XE16J-0.8000BB
^[1&
]=0・切4朋0
x[17]=0.850000
y[17J-0.209963
x[183=0.900000
ytl8J=0-250¥
07
^Ei?
]=e.?
s0000
y[19J-0,277453
x[20>
l.S00800
y[Z01=0.350232
实验心得
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,程序软件已经成为当今计算机应用中空前活跃的领域,在生活领域中的应用可以说得是无处不在。
因此作为二十一世纪的大学来说掌握简单的软件的开发技术是十分重要的。
回顾起此次数值分析的课程设计,至今我仍感慨颇多,的确,从理论到实践,在整整一个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
我得到了很多同学的帮助。
我想没有他们我可能都要放弃了,因为我本人对数值分析的算法本来就不是很熟悉,学的东西也不能很好的灵活应用,理论联系不了实际。
以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。
通过这段时间的学习,我认为要学好C语言编程这门课程,不仅要认真
阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。
特别是作为大学生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
整个过程不断的调试,在调用子程序的时候遇到了部分问题,最后幸好都解决了。
通过这次课程设计也稳固了一些已经学习的数值分析的算法,同时了解了一些以前没有接触的数值分析的算法。
总之,这次的课程设计受益匪浅。
参考文献
[1]
2000
王高熊,周之铭,朱思铭,等.数值计算原理[M].北京:
清华大学出版社,
[2]李庆扬,王能超,易大义,数值分析[M],北京:
清华大学出版社,2001
[3]李庆扬,数值计算原理[M].北京:
清华大学出版社.2000
[4]孙志忠,吴宏伟,计算方法与实习,东南大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 分析 龙格库塔