欢迎来到天天文库
浏览记录
ID:47712032
大小:390.00 KB
页数:9页
时间:2019-10-31
《计算方法-常微分方程的差分方法实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三常微分方程的差分方法实验一.实验目的(1)深入理解常微分方程的差分方法的原理,学会用差分方法解决某些实际的常微分方程问题,比较这些方法解题的不同之处。(2)熟悉Matlab编程环境,利用Matlab实现具体的常微分方程。二.实验要求用Matlab软件实现欧拉方法、改进的欧拉方法、龙格-库塔方法和亚当姆斯方法,并用实例在计算机上计算。三.实验内容1.实验题目(1)取h=0.1,用欧拉方法、改进的欧拉方法、四阶龙格-库塔方法求解初值问题:并与精确解比较计算结果A.欧拉方法:a.编写文件Euler.m,内容如下所示:
2、b.Bb.编写文件f3.m:c.编写文件solvef3(x):d.运行如下所示:可见精度是比较粗糙的,具有两位有效数字;B.改进的欧拉方法a.编写文件MendEuler.m,内容如下所示:c.运行如下:可见部分值具有3为有效数字了C.四阶龙格-库塔方法a.编写文件Rungkuta4.m,内容如下所示:b.运行如下所示:(2)分别用二阶亚当姆斯预估校正系统、改进的四阶亚当姆斯预估校正系统求解初值问题,取,计算。a.编写文件Adams2PC.m,即为二阶亚当姆斯预估校正系统的程序:b.编写改进的四阶亚当姆斯预估校正系统的
3、程序,如下所示:C.编写文件f5.m,即为微分方程的程序;编写文件solvef5.m,为解函数的程序,用以比较结果:d.运行从上面的输出可以看到CA4(:,2)和CA4的输出时不同的,前面一个值输入矩阵的第二列;2.设计思想要求针对上述题目,详细分析每种算法的设计思想。首先差分方法是一类离散化方法,这类方法将寻求解y(x)的分析问题转化为计算离散值y的代数问题,使问题得到实质性的简化;差分方法在解初值问题时采取步进式,进一步将计算模型化归为仅含一个变元的代数方程——差分格式A.欧拉方法:确定步长,施行离散化手续,用差
4、商代替倒数;B.改进的欧拉方法:在欧拉方法的基础上,改变倒数项,通过首尾两点的倒数的一半来作为平均倒数,从而改善精度;C.龙格-库塔方法:在每一步上多预报几个点的斜率,然后将它们加权平均作为平均斜率K*,即该平均斜率将比上面两种方法更加精确,则有可能构造出更高精度的计算格式;A.二阶亚当姆斯预估校正系统:充分利用先前计算出来的老信息来为新信息服务,期望来达到减少计算量的目的;预报过程采用松弛手续,来校正产生的值,使值的精度更高;B.改进的四阶亚当姆斯预估校正系统:在二阶的基础上,更近一步地改善精度,更加充分地利用来信
5、息,又不失二阶时的预报校正的优点。三.实验体会对实验过程进行分析总结,对比求解常微分方程的不同方法,指出每种算法的设计要点及应注意的事项,以及自己通过实验所获得的对常微分方程的差分方法的理解。在实验的过程也是一次对书本进行复习的过程,通过实验可以更加地理解和学会利用已知的结论来求解初值问题。算法的计算是建立在使用价值上的,如上面的设计思想中可以看出,每一种算法的建立都是在满足一定的实用价值上的,既要有一定的精度,也要控制在一定的计算范围之内。利用松弛手续来提高精度,这种设计是优秀的。编写程序时,以前并不是很注意结尾要
6、不要分号,但这个细节有时必须要注意,正如在运行窗口下时,要想得出计算结果是不能带分号的,假如你带了分号就会自动换行,提示继续输入,如,而当去了分号后就可以运行了;当然这个道理前面几个实验已经知道;这次实验的情况是微分方程是另外存在一个函数文件中的,那么这个文件的结尾到底要不要分号呢?从习惯上还是提倡写上分号,假如在这次中忘了写的话,在其它“.m”文件中引用该函数时,虽然只是中间结果,但每用一次就好输出一次,使输出内容与预知的多了些;还有一点是,像上面的内容假如直接复制,粘贴再运行会出错,因为把“>>”也复制上了,粘贴
7、的“>>”和换行时自动出现的符号在意义上是不同的,故会出错,不过在最新版本的matlab上就没有这个问题,在粘贴时自动把多出的符号删去。实验中二阶亚当姆斯预估校正系统题目中给了两个初值,从而使得程序更加地简单,不必利用其它的方法来求得初值再启动运行。
此文档下载收益归作者所有