常微分方程计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八 常微分初值问题的数值解法
8.1实验目的
① 掌握常微分方程数值解的常用算法;
② 培养编程与上机调试能力.
8.2算法描述
8.2.1改进欧拉法
求解 '0
()(,)()()y x f x y a x b y a y ⎧=≤≤⎨=⎩
对给定的(,)f x y ,用改进的欧拉公式
1111()[()()]2
n n n n n n n n n n y y hf x y h y y f x y f x y ++++=++⎧⎪⎨=++++⎪⎩求解常微分方程初值问题的解. 8.2.2四阶龙格-库塔法
对上述给定的(,)f x y ,用四阶龙格-库塔法求解常微分方程初值问题
112341213243(22)6(,)
11(,)2211(,)22(,)n n n n n n n n n n h y y k k k k k f x y k f x h y hk k f x h y hk k f x h y hk +⎧=++++⎪⎪=⎪⎪⎪=++⎨⎪⎪=++⎪⎪=++⎪⎩
8.3实验题目
(1) 用改进的欧拉公式,求解常微分方程初值问题的解
20.10.4(0)1
dy y x dx y ⎧=⎪≤≤⎨⎪=⎩ (2) 用四阶龙格-库塔公式解初值问题: / 2.0 2.6,0.2(2.0)1dy x y x h dx y ⎧=⎪≤≤=⎨⎪=⎩
8.4实验要求
(1)选择一种计算机语言设计出改进欧拉法和四阶龙格-库塔法方法求解常微分方程初值问题的程序,观察运行结果.
(2)利用Matlab求解常微分方程初值问题
函数dsolve()用于求解微分方程.Dy表示:dy/dt(t 为缺省的自变量),Dny表示y对t 的n阶导数.
Matlab6.1环境下操作如下:
>> y=dsolve('Dy=y*y','y(0)=1') %求解题目1
>> y=dsolve('Dy=y/t','y(2.0)=1') %求解题目2
(3)利用最小二乘法拟合通过改进欧拉法求出微分方程的一系列数值解的近似函数方程.并利用Matlab的绘图功能画出函数的曲线
8.5思考
一阶微分方程初值问题有哪些数值解法?比较各种方法的优缺点并举具体例子说明之?