7常微分方程初值问题解法
- 格式:ppt
- 大小:425.57 KB
- 文档页数:36
常微分方程的初值问题及其解法常微分方程是自然界中各种变化的基础模型,广泛应用于物理、工程、生物、经济学等领域。
初值问题是其中最基本的问题之一。
本文将从初值问题的意义入手,介绍几种不同的数值解法,并评价其优缺点。
1. 初值问题的意义首先,我们来看一个简单的例子。
假设有一个人从一楼的窗户往下跳,忽略空气阻力,我们可以列出他下落的物理规律:$$\frac{d^2h}{dt^2}=g$$其中$h$是跳下来后距离地面的高度,$t$是时间,$g$是常数,表示重力加速度。
上面这条式子就是一个二阶常微分方程。
我们的问题是,如果知道了他的初速度$v_0$和起始高度$h_0$,能否求得他下落到地面时的时间和高度。
这个例子中,$h$和$t$都是连续的量,但是我们并不能解析地求出$h(t)$的解析式,因此需要用数值方法去近似求解。
这就是初值问题的意义。
通常,初值问题是指某一初始时刻$t_0$的初值:$$y'(t_0)=f(y(t_0),t_0),\ y(t_0)=y_0$$其中$y$是未知函数,而$f$则是已知函数。
对于一阶常微分方程,这个条件是充分的,可以唯一地决定一个解。
但是对于更高阶的常微分方程,则需要多个初始条件才能确定一个解。
然而,这已经超出了本文的范畴,这里只讨论一阶常微分方程的初值问题。
2. 数值解法下面将介绍几种常见的数值解法。
2.1. 欧拉法欧拉法是最简单的数值解法之一,其思路是将初值问题离散化。
具体来说,我们可以将时间$t$分成若干个小段,每段的长度为$\Delta t$。
于是,我们可以将初始时刻$t_0$的初始值$y(t_0)=y_0$,并通过欧拉法近似计算下一个时间点$t_0+\Delta t$的值$y_1$:$$y_1=y_0+f(y_0,t_0)\Delta t$$同理,我们可以通过已知的$y_1$和$t_1=t_0+\Delta t$,计算下一个时间点$t_2=t_0+2\Delta t$的值$y_2$:$$y_2=y_1+f(y_1,t_1)\Delta t$$依此类推,直到我们得到一个目标时间$t_m$的值$y_m$。
常微分方程初值问题的解法及应用常微分方程是数学中非常重要的一部分,它涉及了许多领域的模型建立和问题求解。
本文将介绍常微分方程初值问题的解法及其应用。
一、常微分方程初值问题的定义常微分方程初值问题是指给定一个常微分方程,以及它在某一点上的初始条件,求解该方程的解曲线。
通常,一个常微分方程初值问题可以表示为:y'(x) = f(x,y), y(x0) = y0,其中,y(x)是未知函数,f(x,y)是已知函数,y(x0) = y0是初始条件。
二、常微分方程初值问题的解法常微分方程初值问题的解法有多种,下面我们将介绍几种常用的方法。
1.欧拉法欧拉法是最简单的一种求解常微分方程初值问题的方法。
该方法基于初始条件,通过不断迭代计算得到近似解曲线。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k = f(x0, y0)。
步骤4:根据已知的斜率和步长h,计算下一个点的坐标(xi+1,yi+1)。
步骤5:重复步骤3和步骤4,直到达到步数n。
步骤6:得到近似解曲线。
2.改进的欧拉法(改进欧拉法)改进的欧拉法是对欧拉法的改进,其求解精度比欧拉法更高。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k1 =f(x0, y0)。
步骤4:根据已知的斜率k1和步长h/2,计算中间点的坐标(x0+h/2, y0+k1*h/2)。
步骤5:根据方程dy/dx = f(x,y)和中间点的坐标(x0+h/2, y0+k1*h/2),计算斜率k2= f(x0+h/2, y0+k1*h/2)。
步骤6:根据已知的斜率k2和步长h,计算下一个点的坐标(xi+1,yi+1)。
常微分方程初值问题的解法随着科技的不断进步和人类社会的不断发展,工程技术和科学技术的发展已经成为推动社会进步的重要力量,而数学则是工程技术和科学技术的基础和支撑,常微分方程作为数学分支的重要组成部分,对于理论研究和实际应用都有着深远的影响。
在实际工程中,解决常微分方程初值问题是数学理论在抽象式运算与工程实践之间的重要桥梁。
本文将介绍常微分方程初值问题的概念、求解方法以及实际应用。
一、常微分方程初值问题的概念常微分方程是指未知函数一阶或高阶微商与自变量和常数的关系式,常微分方程初值问题是指在初值u(x0)=u0已知的情况下,确定函数u(x)的解的问题。
在初值问题中,自变量是独立变量,取值范围可以是任意实数,因变量是函数值,是依赖自变量而实现的数值,常数是影响函数变化的一些固定参数。
常微分方程模型经常出现在工程技术模型中,一些实际应用场景可以通过建立数学模型来进行求解。
二、常微分方程初值问题的解法常微分方程初值问题的解法大致可以分为两种,一种是解析解法,即直接利用微积分学知识对方程进行求解;另一种是数值解法,即采用数值方法对方程进行数值计算求解。
下面将分别介绍这两种方法的解法原理。
1. 解析解法解析解法是指通过数学工具对函数解析表达式进行研究,以求出常微分方程的解。
该方法的先决条件是对方程具有严格的内部结构和特殊的形式,只有在特殊情况下才能找到一些特解。
这种方法的难点在于方程方程形式和初始条件可能存在巨大的数学难度,解析解的求解需要求解一些解析式的积分、微分和级数。
往往只有在一些特殊情况下,解析解法才能一般性的解决问题,因此该方法的适用场景相对较少。
2. 数值解法数值解法是指通过数值计算的方法,通过有限个代数运算和计算机模拟的方法得出方程的解。
数值解法的优点是具有广泛的适用性,可以有效地求解各种类型的常微分方程初值问题,使得无法通过解析方法求解的问题也可以得到解答。
数值解法可分为无条件稳定和条件稳定两种情况,前者是指方法不会出现不稳定结果的情况,而后者则保证了方法收敛性的同时,存在一定的条件限制。
解常微分方程初值问题常微分方程初值问题是求解一个确定初始值条件下的常微分方程的解。
解常微分方程的方法有很多种,下面将介绍几种常用的方法和相关参考内容。
1. 变量分离法:将微分方程中的变量分离,然后进行分离变量的积分。
这是解常微分方程最常用的方法之一。
相关参考内容:《普通微分方程教程》(陈英席著)、《普通微分方程》(王永乐著)2. 齐次方程法:对于齐次方程 dy/dx = f(x,y)(其中 f(x,y) 是关于 x 和 y 的函数),通过引入新的变量 u = y/x,将其转化为一个关于 u 的单变量方程。
然后再解这个方程。
相关参考内容:《普通微分方程与应用》(杨万明、杨卓玲著)、《数学物理方程》(尤伯杯著)3. 线性方程法:对于形如 dy/dx + P(x)y = Q(x) 的线性方程,可以使用积分因子法将其转化为一个可解的方程。
相关参考内容:《普通微分方程讲义》(陈方正、李学勤著)、《分析数学基础讲义》(包维楷等著)4. 变换法:通过进行适当的变量变换,将原方程转化为易于求解的形式。
相关参考内容:《常微分方程讲义》(李鼎立著)、《常微分方程教程》(张世忠、赵寿明著)5. 解特殊的微分方程:一些特殊的微分方程有相应的解法,例如 Bernoulli 方程、Riccati 方程等。
相关参考内容:《常微分方程教程》(孙士焜著)、《微分方程教程》(刘川著)此外,常微分方程的初值问题可以利用数值方法进行求解,例如 Euler 方法、Runge-Kutta 方法等。
相关参考内容:《数值分析》(李庆扬、褚国新著)、《常微分方程数值解法》(赵义、余长星著)解常微分方程初值问题需要动用到微积分、线性代数等数学知识,因此具备扎实的数学基础是解题的前提。
上述参考内容对于理解和掌握常微分方程的解法都具有很好的帮助,读者可以根据自己的实际情况选择适合的参考教材进行学习。
此外,还可以通过参考数学相关的学术论文和网络资源来进一步深入了解常微分方程的解法。
浙江大学城市学院实验报告课程名称数值计算方法实验项目名称常微分方程初值问题的数值解法 实验成绩指导老师签名日期2015/12/16 一.实验目的和要求1. 用Matlab 软件掌握求微分方程数值解的欧拉方法和龙格-库塔方法; 2. 通过实例学习用微分方程模型解决简化的实际问题;二.实验内容和原理编程题2-1要求写出Matlab 源程序m 文件,并有适当的注释语句;分析应用题2-2,2-3,2-4,2-5要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上; 2-1 编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 2-2 分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度; 2-3 分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法; 3龙格-库塔方法;2-4 分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较; MATLAB 相关函数求微分方程的解析解及其数值的代入dsolve‘egn1’,‘egn2’,‘x ’ subsexpr,{x,y,…},{x1,y1,…}其中‘egn i ’表示第i 个方程,‘x ’表示微分方程中的自变量,默认时自变量为t ; subs 命令中的expr 、x 、y 为符合型表达式,x 、y 分别用数值x1、x2代入; >>symsxyz>>subs'x+y+z',{x,y,z},{1,2,3} ans= 6>>symsx>>subs'x^2',x,2 ans= 4>>s=dsolve‘12Dy y ∧=+’,‘(0)1y =’,‘x ’ ans= >>symsx >>subss,x,2 ans=右端函数(,)f x y 的自动生成f=inline ‘expr ’,’var1’,‘var2’,……其中’expr ’表示函数的表达式,’var1’,‘var2’表示函数表达式中的变量,运行该函数,生成一个新的函数表达式为fvar1,var2,……; >>f=inline'x+3y','x','y' f=Inlinefunction: fx,y=x+3y >>f2,3 ans= 114,5阶龙格-库塔方法求解微分方程数值解t,x=ode45f,ts,x0,options其中f 是由待解方程写成的m 文件名;x0为函数的初值;t,x 分别为输出的自变量和函数值列向量,t的步长是程序根据误差限自动选定的;若ts=t0,t1,t2,…,tf,则输出在自变量指定值,等步长时用ts=t0:k:tf,输出在等分点;options 用于设定误差限可以缺省,缺省时设定为相对误差310-,绝对误差610-,程序为:options=odeset ‘reltol ’,rt,’abstol ’,at,这里rt,at 分别为设定的相对误差和绝对误差;常用选项见下表;选项名 功能 可选值 省缺值 AbsTol 设定绝对误差正数 RelTol 设定相对误差 正数InitialStep 设定初始步长 正数 自动 MaxStep设定步长上界正数MaxOrder 设定ode15s 的最高阶数 1,2,3,4,5 5 Stats 显示计算成本统计 on,off off BDF 设定ode15s 是否用反向差分on,offoff例:在命令窗口执行>>odefun =inline ‘2*y t y -’,‘t ’,‘y ’;>>[],45(,[0,4],1)t y ode odefun =;ans=>>t y ‘o-’,%解函数图形表示>>45(,[0,4],1)ode odefun %不用输出变量,则直接输出图形 >>[],45(,0:4,1)t y ode odefun =;[],t yans=三.操作方法与实验步骤包括实验数据记录和处理2-1编程编写用向前欧拉公式和改进欧拉公式求微分方程数值解的Matlab 程序,问题如下:在区间[],a b 内(1)N +个等距点处,逼近下列初值问题的解,并对程序的每一句添上注释语句; Euler 法y=eulera,b,n,y0,f,f1,b1改进Euler 法y=eulerproa,b,n,y0,f,f1,b1Euler 法y=eulera,b,n,y0,f,f1,b1 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; yi+1=yi+hfxi,yi; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; for i=1:100y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解'改进Euler 法y=eulerproa,b,n,y0,f,f1,b1 %求微分方程的数值解 y=zeros1,n+1; y1=y0; h=b-a/n; x=a:h:b; fori=1:n; T1=fxi,yi; T2=fxi+1,yi+hT1; yi+1=yi+h/2T1+T2; end plotx,y holdon%求微分方程的精确解 x1=linspacea,b,100; '精确解为' s=dsolvef1,b1,'x' symsxy1=zeros1,100; fori=1:100 y1i=subss,x,x1i; endplotx1,y1,'r'title'红色代表精确解' 2-2分析应用题假设等分区间数100n =,用欧拉法和改进欧拉法在区间[0,10]t ∈内求解初值问题()()20(0)10y t y t y '=-⎧⎨=⎩并作出解的曲线图形,同时将方程的解析解也画在同一张图上,并作比较,分析这两种方法的精度;1向前欧拉法>>euler0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8(2)改进欧拉法>>eulerpro0,10,100,10,inline'y-20','x','y','Dy=y-20','y0=10' ans= 精确解为 s= 20-10expx ans= +005Columns1through8改进欧拉法的精度比向前欧拉法更高; 2-3分析应用题用以下三种不同的方法求下述微分方程的数值解,取10h = 画出解的图形,与精确值比较并进行分析; 1欧拉法; 2改进欧拉法;2-4分析应用题考虑一个涉及到社会上与众不同的人的繁衍问题模型;假设在时刻t 单位为年,社会上有人口()x t 人,又假设所有与众不同的人与别的与众不同的人结婚后所生后代也是与众不同的人;而固定比例为r 的所有其他的后代也是与众不同的人;如果对所有人来说出生率假定为常数b ,又如果普通的人和与众不同的人的婚配是任意的,则此问题可以用微分方程表示为:其中变量()()()i p t x t x t =表示在时刻t 社会上与众不同的人的比例,()i x t 表示在时刻t 人口中与众不同的人的数量;1假定(0)0.01,0.02p b ==和0.1r =,当步长为1h =年时,求从0t =到50t =解()p t 的近似值,并作出近似解的曲线图形;2精确求出微分方程的解()p t ,并将你当50t =时在分题b 中得到的结果与此时的精确值进行比较;1>>euler0,50,50,,inline'','t','p','Dp=','p0= 1' ans= 精确解为 s=1-99/100expx/500 ans=Columns1through82>>dsolve'Dp=','p0=','t' ans=1-99/100expt/500 >>1-99/100exp ans=与欧拉法求得的精确值差0,0001四.实验结果与分析。
第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。
在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。
在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。
常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。
在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。
通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。
在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。
二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。
•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。
注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
常微分方程的初值问题常微分方程是数学中的一种重要工具,它能够描述许多自然界和社会现象的变化规律。
而常微分方程的初值问题则是常微分方程研究中的常见问题之一,它需要确定未知函数及其导数在某个特定点的值。
本文将介绍常微分方程的初值问题的定义、求解方法以及实际应用。
一、初值问题的定义在常微分方程中,初值问题是指在已知微分方程的解的条件下,需要确定一个特定点上未知函数及其导数的值。
具体而言,考虑一个形如dy/dx=f(x,y)的一阶常微分方程,其中x是自变量,y是因变量,f是已知的函数。
若已知y(x0)=y0,则求解这个微分方程的过程即为解决初值问题。
二、求解方法对于常微分方程的初值问题,可以使用多种方法进行求解,下面将介绍两种常见的方法:欧拉方法和四阶龙格-库塔方法。
1. 欧拉方法欧拉方法是一种简单而直观的求解常微分方程的数值方法。
它的基本思想是将求解区间等分为多个小区间,然后通过逐步逼近的方式计算未知函数的近似值。
具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。
- 定义网格节点xi=a+i*h,i=0,1,2,...,n。
- 初始条件为y(x0)=y0,通过递推公式y(xi+1) = y(xi) + h*f(xi, y(xi)),计算出近似值y(xi+1)。
- 重复上述步骤,直到计算到需要的点。
欧拉方法的优点是简单易懂,但对于某些特定的微分方程,其数值解可能不够精确。
2. 四阶龙格-库塔方法四阶龙格-库塔方法是一种更为精确的求解常微分方程的数值方法,它通过计算多个逼近值的组合来提高计算精度。
具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。
- 定义网格节点xi=a+i*h,i=0,1,2,...,n。
- 初始条件为y(x0)=y0,通过递推公式计算逼近值k1、k2、k3和k4。
- k1 = h*f(xi, y(xi))- k2 = h*f(xi + h/2, y(xi) + k1/2)- k3 = h*f(xi + h/2, y(xi) + k2/2)- k4 = h*f(xi + h, y(xi) + k3)- 计算近似值y(xi+1) = y(xi) + (k1 + 2k2 + 2k3 + k4)/6。
常微分方程的解法及应用常微分方程是数学中的一个重要分支,广泛应用于各个领域,例如物理学、生物学、经济学等。
本文将介绍常微分方程的解法和应用。
一、常微分方程的解法常微分方程是描述物理现象和自然现象的重要数学工具,例如天文学、电子学、量子力学、流体力学、热力学、生物学、化学等。
常微分方程主要分为初值问题和边值问题两种。
1.初值问题初值问题是指在某个初始时刻$t_0$,系统的状态已知,求在此后的任意时间$t$内该系统的状态。
其一般形式如下:$$\frac{dy}{dt}=f(y,t), \ \ \ \ y(t_0)=y_0$$其中,$y$是未知的函数,$f$是已知的函数,$y_0$是已知的常数。
2.边值问题边值问题是指在某个区间$[a,b]$内,系统的状态已知,求满足某个条件的函数$y(t)$。
其一般形式如下:$$\frac{d^2y}{dt^2}=f(y,t), \ \ \ \ y(a)=y_A, \ \ \ \ y(b)=y_B$$其中,$y_A$和$y_B$是已知的常数。
3.解法常微分方程的解法有多种方法,下面介绍比较常用的两种方法:欧拉法和四阶龙格-库塔法。
(1)欧拉法欧拉法是常微分方程求解的一种最简单的数值方法,它的基本思想是将微分方程转化为差分方程,利用差分方程求解。
假设在时间t时,y的值为$y(t)$,而在时间$t+h$时的y的值可以用下式计算:$$y(t+h)=y(t)+h\times f(y(t),t)$$其中,$f(y,t)$是微分方程的右端函数,$h$是每次迭代的步长。
(2)四阶龙格-库塔法四阶龙格-库塔法是常微分方程求解的一种较为精确的数值方法,其基本思想是采用区间加权平均法对微分方程进行求解。
四阶龙格-库塔法是由四个步骤组成,分别为:1)计算斜率$k_1=f(y_i,t_i)$2)计算斜率$k_2=f(y_i+\frac{h}{2}k_1,t_i+\frac{h}{2})$3)计算斜率$k_3=f(y_i+\frac{h}{2}k_2,t_i+\frac{h}{2})$4)计算斜率$k_4=f(y_i+hk_3,t_i+h)$将这四个斜率加权平均后即得到四阶龙格-库塔法的解式:$$y_{i+1}=y_i+\frac{1}{6}(k_1+2k_2+2k_3+k_4)$$二、常微分方程的应用常微分方程广泛应用于各个领域,本节将介绍三个常微分方程的应用:自然增长模型、振动模型和物理模型。
常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。
常微分方程初值问题(IVP)即为一种最常见的微分方程求解问题,其求解方法有多种,本文将对常微分方程初值问题的数值解法进行较为详细的介绍。
一、欧拉法欧拉法是最基本的一种数值解法,它采用泰勒级数展开并截断低阶项,从而获得一个差分方程近似求解。
具体来讲,设 t 为独立变量,y(t) 为函数 y 关于 t 的函数,方程为:$$y'(t) = f(t, y(t)), \qquad y(t_0) = y_0$$其中 f(t,y(t)) 为已知的函数,y(t_0) 为已知的初值。
将函数 y(t) 进行泰勒级数展开:$$y(t+h) = y(t) + hf(t, y(t)) + O(h^2)$$其中 h 表示步长,O(h^2) 表示其他高阶项。
为了使误差较小,一般取步长 h 尽可能小,于是我们可以用欧拉公式表示数值解:$$y_{n+1} = y_n + hf(t_n, y_n), \qquad y_0 = y(t_0)$$欧拉法的优点是容易理解和实现,但是由于截取低阶项且使用的单步法,所以误差较大,精度较低,在具体应用时需要慎重考虑。
二、龙格-库塔法龙格-库塔法(Runge-Kutta method)是一种多步法,比欧拉法更加精确。
龙格-库塔法的主要思想是使用不同的插值多项式来计算近似解,并且将时间步长分解,每次计算需要多次求解。
以下简要介绍二阶和四阶龙格-库塔法。
二阶龙格-库塔法将时间步长 h 分解成两步 h/2,得到近似解表达式:$$\begin{aligned} k_1 &= hf(t_n, y_n)\\ k_2 &= hf(t_n+h/2,y_n+k_1/2)\\ y_{n+1} &= y_n+k_2+O(h^3)\\ \end{aligned}$$四阶龙格-库塔法四阶龙格-库塔法是龙格-库塔法中应用最为广泛的一种方法,其需要计算的中间值较多,但是具有更高的精度。