常微分方程的差分方法-欧拉法
常微分方程的差分方法-欧拉法
一、摘要:人类社会已迈进电子计算机时代。在今天,熟练地
运用计算机进行科学计算,已成为广大科技工作者和学者的一项基
本技能,数值分析的基本内容是数值算法的设计与分析,科学技术
当中常常需要求解常微分方程的定解问题,本文中主要以解决此问
题最简单形式(一阶方程的初值问题)来求解微分方程。虽然求解
常微分方程有各种各样的解析方法,但解析方法只能用来求解一些
特殊类型的方程,求解从实际问题中归结出来的微分方程主要主要
靠数值解法,本文就数值解法中的差分方法进行求解微分方程。
二、关键词:差分方法、初值问题、数值解法、MATLAB
三、引言:科学计算不应当将计算方法片面的理解为各种算法
的简单罗列和堆积,它也是一门内容丰富、思想方法深刻而有着自
身理论体系的数学学科。微积分的发明是人类智慧的伟大发展。求
解常微分方程有各种各样的解析方法,但解析方法只能用来求解一
些特殊类型的方程,求解从实际问题中归结出来的微分方程主要主
要靠数值解法。怎样应用数值解法求解从实际问题中归结出来的微
分方程呢?
四、正文
y′=f x,y (1)
y(x0)=y0 (2)
方程(1)中含有导数项y′(x),这是微分方程的本质特征,也正
是它难以求解的症结所在。
数值解法的第一步就是设法消除其导数项,这项手续称离散化。由于差分是微分的近似运算,实现离散化的基本途径是用差商替代
导数。
譬如,若在点x n列出方程(1):
y′(x n)=f(x n,y(x n))
替代其中的导数项y′(x n),结果有:并用差商y x n+1?y(x n)
h
y(x n+1)≈y(x n)+hf(x n,y(x n))
设用y(x x)的近似值y n代入上式的右端,记所得结果为y n+1,这样导出的计算公式:
y(x n+1)=y(x n)+hf(x n,y(x n)),n=0,1,2, (3)
这就是众所周知的欧拉(Euler)格式。若初值y0是已知的,则据式(3)可以逐步算出数值解y1,y2,…。
为简化分析,人们常在y n为准确,即在y n=y(x n)的前提下估计
误差y(x n+1)-y n+1。这种误差称为局部截断误差。
称一种数值方法的精度是p阶的,如果其局部截断误差为O
(h p+1)。
对于欧拉格式(3),假定y n=y(x n),则据方程(1)有:
y n+1=y(x n)+hf(x n,y(x n))
=y(x n)+h y′(x n)
而按泰勒公式
y(x n+1)=y(x n)+h y′(x n)+h 2
2
y′′(ε), x n<ε y(x n+1)-y n+1=h 2 2 y′′(ε) 这说明欧拉格式仅为一阶方法。 例求解初值问题 x′+5x+y=e′ y′?x?3y=0 x t=0,y t=0解:用MATLAB写出如下程序: % By lyqmath function main() clc; clear all; close all; % 3??μ t0 = 0; y0 = [0; 0]; xmax = 1; h = 0.01; % ???? n = (xmax - t0)/h; for i = 1 :n+1 if i == 1 t(i) = t0; y(:, i) = y0; else t(i) = t0 + (i - 1)*h; y(:, i) = y(:, i - 1) + h*test_fun(t(i-1), y(:, i-1)); end end % ??í? figure; hold on ; box on ; plot(t, y(1, :), 'r-', t, y(2, :), 'g-'); grid on ; legend('x', 'y'); xlabel('t', 'FontWeight', 'Bold', 'Color', 'r'); ylabel('data', 'FontWeight', 'Bold', 'Color', 'r'); title('Euler·¨?????¢·?·?3ì×é By lyqmath', 'FontWeight', 'Bold', 'Color', 'r'); % ?¢·?·?3ì function fxy = test_fun(t,y) fxy = zeros(2, 1) fxy(1) = exp(t) - 5*y(1) - y(2); fxy(2) = y(1) + 3*y(2); 当h=0.01时,得出以下图像: 当h=0. 1时,得到以下图像: 0.1 0.2 0.3 0.4 0.50.6 0.7 0.8 0.9 1 00.10.20.30.40.50.6 0.70.80.91t d a t a Euler 法计算微分方程组 By lyqmath 取其中一部分 0.10.20.30.4 0.50.60.70.80.91 00.10.20.30.4 0.5 0.6 0.7 t d a t a Euler 法计算微分方程组 By lyqmath 0.08 0.0850.090.0950.1 0.1050.110.1150.12 t d a t a Euler 法计算微分方程组 By lyqmath 由上h=0.001和h=0.1所得的图像,可看出精度h越精,图像拟合的越好,拟合度越高,效果越佳。 五、结束语 虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特殊类型的方程。求解从实际问题当中归结出来的微分方程主要靠数值解法。欧拉方法是一类重要的数值解法。这类方法回避解y(x)的函数表达式,而是寻求它在一系列离散节点上的近似值,相邻的两个节点的间距称作步长。假定步长为定数。欧拉方法是一类离散化方法,这类方法将寻求解y(x)的分析问题转化为计算离散值值的代数问题,从而使问题获得了实质性的简化。然而随之带来的困难是,由于数据量往往很大,差分方法所归结出的可能是个大规模的代数方程组。 《计算机数学基础(2)》辅导六 第14章常微分方程的数值解法 一、重点内容 1.欧拉公式: (k=0,1,2,…,n-1) 局部截断误差是O(h2)。 2. 改进欧拉公式: 或表示成: 平均形式: 局部截断误差是O(h3)。 3. 四阶龙格――库塔法公式: 其中κ1=f(x k,y k);κ2=f(x k+ 0.5h,y k+ 0.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ2); κ4=f(x k+h,y k+hκ3) 局部截断误差是O(h5)。 二、实例 例1用欧拉法解初值问题 取步长h=0.2。计算过程保留4位小数。 解h=0.2,f(x,y)=-y-xy2。首先建立欧拉迭代格式 =0.2y k(4-x k y k) (k=0,1,2) 当k=0,x1=0.2时,已知x0=0,y0=1,有 y(0.2)≈y1=0.2×1(4-0×1)=0.8 当k=1,x2=0.4时,已知x1=0.2,y1=0.8,有 y(0.4)≈y2=0.2×0.8×(4-0.2×0.8)=0.6144 当k=2,x3=0.6时,已知x2=0.4,y2=0.6144,有 y(0.6)≈y3=0.2×0.6144×(4-0.4×0.6144)=0.4613 例2 用欧拉预报-校正公式求解初值问题 取步长h=0.2,计算y(1.2),y(1.4)的近似值,小数点后至少保留5位。 解步长h=0.2,此时f(x,y)=-y-y2sin x 欧拉预报-校正公式为: 有迭代格式: 当k=0,x0=1,y0=1时,x1=1.2,有 =y0(0.8-0.2y0sin x0)=1×(0.8-0.2×1sin1)=0.63171 y(1.2)≈y1 =1×(0.9-0.1×1×sin1)-0.1(0.63171+0.631712sin1.2)=0.71549 当k=1,x1=1.2,y1=0.71549时,x2=1.4,有 =y1(0.8-0.2y1sin x1)=0.71549×(0.8-0.2×0.71549sin1.2) =0.47697 y(1.4)≈y2 =0.71549×(0.9-0.1×0.71549×sin1.2) -0.1(0.47697+0.476972sin1.4) =0.52611 例3写出用四阶龙格――库塔法求解初值问题 的计算公式,取步长h=0.2计算y(0.4)的近似值。至少保留四位小数。 解此处f(x,y)=8-3y,四阶龙格――库塔法公式为 其中κ1=f(x k,y k);κ2=f(x k+ 0.5h,y k+ 0.5 hκ1);κ3=f(x k+ 0.5 h,y k+ 0.5 hκ2); P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:dy + =t = t y y ≤ ≤ ,2 ;5.0 0,3 )0( )1(= ,1 ? dt 代码: %改进欧拉法 function Euler(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y+1; 调用:Euler(0,3,[0,2],0.5) 得到解析解:hold on; y=dsolve('Dy=y+1','(y(0)=3)','t'); ezplot(y,[0,2]) 图像: dy y =t - t y ;2.0 t = ≤ )0( 0,5.0 ,4 )2(2= ≤ ? ,2 dt 代码: function Euler1(t0,y0,inv,h) n=round(inv(2)-inv(1))/h; t(1)=t0; y(1)=y0; for i=1:n y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h; y(i+1)=y(i)+1/2*h*(fun(t(i),y(i))+ fun(t(i+1),y1(i+1))) end plot(t,y,'*r') function y=fun(t,y); y=y^2-4*t; 调用: Euler1(0,0.5,[0,2],0.2) 图像: 上海交通大学致远学院 《常微分方程和偏微分方程的数值解法》教学大纲 一、课程基本信息 课程名称(中文):常微分方程和偏微分方程的数值解法 课程名称(英文):Numerical Methods for Ordinary and Partial Differential Equations 课程代码:MA300 学分 / 学时:4学分 / 68学时 适用专业:致远学院与数学系相关专业 先修课程:偏微分方程,数值分析 后续课程:相关课程 开课单位:理学院数学系计算与运筹教研室 Office hours: 每周二19:00—21:00,地点:数学楼1204 二、课程性质和任务 本课程是致远学院和数学系应用数学和计算数学方向的一门重要专业基础课程,其主要任务是通过数学建模、算法设计、理论分析和上机实算“四位一体”的教学方法,使学生掌握常微分方程与偏微分方程数值解的基本方法、基本原理和基本理论,进一步提升同学们利用计算机解决实际问题的能力。在常微分方程部分,将着重介绍常微分方程初值问题的单步法,含各类Euler方法和Runge-Kutta方法,以及线性多步法。将简介常微分方程组和高阶常微分方程的数值方法。在偏微分方程部分,将系统介绍求解椭圆、双曲、抛物型方程的差分方法的构造方法和理论分析技巧,对于椭圆型方程的边值问题将介绍相应变分原理与有限元方法。将在课堂上实时演示讲授的核心算法的计算效果,以强调其直观效果与应用性。本课程重视实践环节建设,学生要做一定数量的大作业。 三、教学内容和基本要求 第一部分:常微分方程数值解法 1 引论 1.1回顾:一阶常微分方程初值问题及解的存在唯一性定理 生物信息技术0801 徐聪U200812594 #include 师大学本科毕业论文(设计) 常微分方程的初等解法与求解技巧 姓名娟 院系数学与计算机科学学院 专业信息与计算科学 班级12510201 学号1251020126 指导教师王晓锋 答辩日期 成绩 常微分方程的初等解法与求解技巧 容摘要 常微分方程在数学中发挥着举足轻重的作用,同时它的应用在日常生活里随处可见,因此掌握常微分方程的初等解法与求解技巧是非常必要的.本论文主要论述了其发展、初等解法与求解技巧,前者主要有变量分离、积分因子、一阶隐式微分方程的参数表示,通过举例从中总结出其求解技巧,目的是掌握其求解技巧. 【关键词】变量分离一阶隐式微分方程积分因子求解技巧 Elementary Solution and Solving Skills of Ordinary Differential Equation Abstract Ordinary differential equations take up significant position in mathematics, and at the same time, the application of it can be seen everywhere in our daily life, therefore, it’s necessary to grasp the elementary solution of ordinary differential equations and solving skills. This paper mainly introduced the definition of ordinary differential equations, elementary solution method and solving skills, the former mainly included the separation of variables, integral factor, a parameter-order differential equations implicit representation, by way of examples to sum up their solving skills, the purpose is to master the skills to solve. 【Key Words】the separation of variables the first order implicit differential equation integrating factor solution techniques 欧拉公式推导: 图4.3所示的两端铰支杆件,受轴向压力N 作用而处于中性平衡微弯状态,杆件弯曲后截面中产生了弯矩M 和剪力V ,在轴线任意点上由弯矩产生的横向变形为1y ,由剪力产生的横向变形为2y ,总变形21y y y +=。 y 图4.3 两端铰支的轴心压杆临界状态 设杆件发生弯曲屈曲时截面的临界应力小于材料比例极限p f ,即p f ≤σ(对理想材料取y p f f =)。由材料力学可得: EI M dz y d -=2 12 由剪力V 产生的轴线转角为: dz dM GA V GA dz dy ?=?==ββγ2 式中 A 、I ——杆件截面面积、惯性矩; E 、G ——材料的弹性模量、剪切模量; β—— 与截面形状有关的系数。 因为 222 22dz M d GA dz y d ?=β 所以 2222122222d y d y d y M d M dz dz dz EI GA dz β=+=-+? 由 y N M ?=得: 2222dz y d GA N y EI N dz y d ?+?-=β 01=?+??? ??-''y EI N GA N y β 令 ??? ??-=GA N EI N k β12 得常系数线性二阶齐次方程 20y k y ''+= 其通解为:sin cos y A kz B kz =+ 由边界条件:;0,0==y z 0=B ,kz A y sin =。再由0,==y l z 得: 0sin =kl A 上式成立的条件是0=A 或0sin =kl ,其中0=A 表示杆件不出现任何变形,与杆件微弯的假设不符。由0sin =kl ,得πn kl =(=n 1,2,3…),取最小值=n 1,得π=kl ,即 2 221N k N l EI GA πβ==??- ??? 由此式解出N ,即为中性平衡的临界力cr N 12222222211Ι11γππβππ?+?=?+?=l ΕΙl ΕGA l ΕΙl ΕΙ N cr (4.6) 临界状态时杆件截面的平均应力称为临界应力cr σ 12 22211γλπλπσ?+?==ΕΑΕA N cr cr (4.7) 式中 1γ——单位剪力时杆件的轴线转角,)/(1GA βγ=; l ——两端铰支杆得长度; λ——杆件的长细比,i l /=λ; i ——杆件截面对应于屈曲轴的回转半径,A I i /=。 如果忽略杆件剪切变形的影响(此影响很小)则式(4.6)、(4.7)变为: 22cr E πσλ = (4.8) 习题九 1. 取步长h = 0.1,分别用欧拉法与改进的欧拉法解下列初值问题 (1);(2) 准确解:(1);(2); 欧拉法:,,, 改进的欧拉法:,,, 2. 用四阶标准龙格—库塔法解第1题中的初值问题,比较各法解的精度。,,, 3. 用欧拉法计算下列积分在点处的近似值。 0.5000,1.1420,2.5011,7.2450 4. 求下列差分格式局部截断误差的首项,并指出其阶数。 (1),2 (2),3; (3),4 (4),4 5.用Euler法解初值问题取步长h=0.1,计算到x=0.3(保留到小数点后4位). 解: 直接将Eulerr法应用于本题,得到 由于,直接代入计算,得到 6.用改进Euler法和梯形法解初值问题取步长 h=0.1,计算到x=0.5,并与准确解相比较. 解:用改进Euler法求解公式,得 计算结果见下表 用梯形法求解公式,得 解得 精确解为 7.证明中点公式(7.3.9)是二阶的,并求其局部截断误差主项. 证明根据局部截断误差定义,得 将右端Taylor展开,得 故方法是二阶的,且局部截断误差主项是上式右端含h3的项。 8.用四阶R-K方法求解初值问题取步长 h=0.2. 解直接用四阶R-K方法 其中 计算结果如表所示: 9.对于初值问题 解因f'(y)=-100,故由绝对稳定区间要求(1)用Euler法解时, (2)用梯形法解时,绝对稳定区间为,由因f 对y是线性的,故不用迭代,对h仍无限制。(3)用四阶R-K方法时, 10. (1) 用Euler法求解,步长h应取在什么范围内计算才稳定?(2) 若用梯形法求解,对步长h有无限制? (3) 若用四阶R-K方法求解,步长h如何选取? 常微分方程解题方法总结 来源:文都教育 复习过半,课本上的知识点相信大部分考生已经学习过一遍 . 接下来,如何将零散的知识点有机地结合起来,而不容易遗忘是大多数考生面临的问题 . 为了加强记忆,使知识自成体系,建议将知识点进行分类系统总结 . 著名数学家华罗庚的读书方法值得借鉴,他强调读 书要 “由薄到厚、由厚到薄 ”,对同学们的复习尤为重要 . 以常微分方程为例, 本部分内容涉及可分离变量、 一阶齐次、 一阶非齐次、 全微分方程、 高阶线性微分方程等内容, 在看完这部分内容会发现要掌握的解题方法太多, 遇到具体的题 目不知该如何下手, 这种情况往往是因为没有很好地总结和归纳解题方法 . 下面以表格的形 式将常微分方程中的解题方法加以总结,一目了然,便于记忆和查询 . 常微分方程 通解公式或解法 ( 名称、形式 ) 当 g( y) 0 时,得到 dy f (x)dx , g( y) 可分离变量的方程 dy f ( x) g( y) 两边积分即可得到结果; dx 当 g( 0 ) 0 时,则 y( x) 0 也是方程的 解 . 解法:令 u y xdu udx ,代入 ,则 dy 齐次微分方程 dy g( y ) x dx x u g (u) 化为可分离变量方程 得到 x du dx 一 阶 线 性 微 分 方 程 dy P ( x)dx P ( x) dx Q(x) y ( e Q( x)dx C )e P( x) y dx 伯努利方程解法:令 dy P( x) y Q( x) y n(n≠0,1) 代入得到dx —u y1 n,有 du(1 n) y n dy , du(1 n) P(x)u(1 n)Q(x) dx 求解特征方程: 2pq 0三种情况: 二阶常系数齐次线性微分方程 y p x y q x y0 二阶常系数非齐次线性微分方程y p x y q x y f ( x) (1)两个不等实根: 1 ,2 通解: y c1 e 1x c2 e 2x (2)两个相等实根:12 通解: y c1c2 x e x (3)一对共轭复根:i , 通解: y e x c1 cos x c2 sin x 通解为y p x y q x y 0 的通解与 y p x y q x y f ( x) 的特解之和. 常见的 f (x) 有两种情况: x ( 1)f ( x)e P m ( x) 若不是特征方程的根,令特解y Q m ( x)e x;若是特征方程的单根,令特 解 y xQ m ( x)e x;若是特征方程的重根, 令特解 y*x2Q m (x)e x; (2)f (x) e x[ P m ( x) cos x p n ( x)sin x] 当i不是特征值时,令 欢迎下载2 欧拉公式的证明 著名的欧拉公式e^(iθ)=cosθ+isinθ是人们公认的优美公式。原因是指数函数和三角函数在实数域中几乎没有什么联系,而在复数域中却发现了他们可以相互转化,并被一个非常简单的关系式联系在一起。特别是当θ=π时,欧拉公式便写成了e^(iπ)+1=0,就这个等式将数中最富有特色的五个数0,1,i , e , π ,绝妙地联系在一起 方法一:用幂级数展开形式证明,但这只是形式证明(严格的说,在实函数域带着i只是形式上的) 再抄一遍:设z = x+iy 这样 e^z = e^(x+iy)=e^x*e^(iy),就是e^z/e^x = e^(iy) 用牛顿幂级数展开式 e^x = 1+x+x^2/2!+x^3/3!+.....+x^n/n!+...... 把 e^(iy) 展开,就得到 e^z/e^x = e^(iy) =1+iy-y^2/2!-iy^3/3!+y^4/4!+iy^5/5!-y^6/6!-..... =(1-y^2/2!+y^4/4!-y^6/6!+.....) +i(y-y^3/3!+y^5/5!-....) 由于 cosy = 1-y^2/2!+y^4/4!-y^6/6!+....., siny = y-y^3/3!+y^5/5!-.... 所以 e^(x+iy)=e^x*e^(iy)=e^x*(cosy+isiny) 即 e^(iy) = (cosy+isiny) 方法二:见复变函数第2章,在整个负数域内重新定义了sinz cosz而后根据关系推导出了欧拉公式。着个才是根基。由来缘于此。 方法一是不严格的。 再请看这2个积分 ∫sqrt(x^2-1)dx=x*sqrt(x^2-1)/2-ln(2*sqrt(x^2-1)+2x)/2 ∫sqrt(1-x^2)dx=arcsin(x)/2+x*sqrt(1-x^2)/2; 上式左边相当于下式左边乘以i 于是上式右边相当于下式右边乘以i 然后化简就得到欧拉公式 这个证明方法不太严密 但很有启发性 历史上先是有人用上述方法得到了对数函数和反三角函数的关系 然后被欧拉看到了,才得到了欧拉公式 设a t θ ?R,ρ?R+,a^(it)?z有: a^(it)=ρ(cosθ+isinθ) 1 因共轭解适合方程,用-i替换i有: a^(-it)=ρ(cosθ-isinθ) 2 第八章 常微分方程 【教学要求】 一、了解微分方程的基本概念:微分方程,微分方程的阶、解、特解、通解、初始条件和初值问题,线性微分方程。 二、熟练掌握一阶可分离变量微分方程的解法。 三、熟练掌握一阶线性非齐次微分方程)()(x q y x p y =+' 的解法——常数变易法和公式法。 四、理解线性微分方程解的性质和解的结构。 五、熟练掌握二阶线性常系数齐次微分方程0=+'+''qy y p y 的解法——特征根法。 会根据特征根的三种情况,熟练地写出方程的通解,并根据定解的条件写出方程特解。 六、熟练掌握二阶线性常系数非齐次微分方程qy y p y +'+'' )(x f =,当自由项f (x )为某些特殊情况时的解法——待定系数法。 所谓f (x )为某些特殊情况是指f (x )为多项式函数,指数函数 或它们的和或乘积形式、三角函数x x x ββαsin cos ,e 。 关键是依据f (x )的形式及特征根的情况,设出特解y *,代入原方程,定出y *的系数。 【教学重点】 一阶可分离变量微分方程、一阶线性微分方程、二阶线性常系数微分方程的解法。 【典型例题】 。的阶数是微分方程例)(e )(12x y y y =-'+'' 2.1.B A 4. 3.D C 解:B 。的特解形式是微分方程例)( e 232x x y y y +=+'-'' x x x b ax B b ax A e )(.e ).(++ x x c b ax D cx b ax C e ).(e ).(++++ 解:C 是一阶线性微分方程。下列方程中例)( ,3 x x y y x B y A y x cos sin 1.e .2=+'='+ y x y D y y x y C ='=+'+''.0 . 解:B ???=='++1)1(0)1(4y y x y y 求解初值问题例 ??-=+x x y y y d )1(d 解:由变量可分离法得 c x y y ln ln 1ln +-=+∴ 代入上式得通解为由21ln ln 1)1(=?=c y x y y 211=+ 的特解。满足求解微分方程例1)0(e 252==-'y x y y x 解:由公式法得 ]d e e 2[e d 12d 1c x x y x x x +???=---?初值问题
常微分方程作业欧拉法与改进欧拉法
常微分方程和偏微分方程的数值解法教学大纲
欧拉及改进的欧拉法求解常微分方程
常微分方程的初等解法与求解技巧
欧拉公式推导
数值计算方法复习题9
常微分方程解题方法总结.docx
欧拉公式的证明(整理)Word版
(整理)常微分方程(含解答)
计算方法及答案汇总