【免费下载】实验六 常微分方程组求解
- 格式:pdf
- 大小:208.06 KB
- 文档页数:6
常微分方程组的求解
常微分方程组的求解
一、什么是常微分方程组
常微分方程组是一种研究连续变化的微分方程,它由一组常微分方程组成。
常微分方程组是对时间及其对应的函数的某种确定关系的描述。
二、常微分方程组的解法
1、解析法
解析法是采用积分方法将定性微分方程转化为定性的二阶线性常微分方程,然后进行线性解析,来求解微分方程的解析解。
它是将每一种微分方程的解法分析出来,以便将它们应用到实际问题中。
2、数值法
数值法是采用一种迭代的方法将常微分方程的结果近似地近似解出来,通过计算机计算求解。
根据所求解的常微分方程的不同,数值法也可以分为牛顿插值法,欧拉法,综合迭代法等。
三、如何求解常微分方程组
1、首先要明确求解常微分方程组的目的:
求解常微分方程组的目的是根据微分方程中所给条件,求出满足微分方程的解。
2、确定解法
根据对问题的性质,选择合适的解法,一般情况下,需要根据问题的难度来选择合适的解法。
3、进行求解
根据具体的解组选择,使用相应的方法进行求解,具体的求解方法可以查阅相关教科书。
常系数微分方程的求解1常系数微分方程概述常系数微分方程(Constant Coefficient Differential Equation,CCD),是指存在有限个常数系数的微分方程,即存在有m 个常数a1,a2,…,an的微分方程:y^(n)+a1y^(n-1)+a2y^(n-2)+...+an*y=0其中,y是函数,y^(n)是函数的n阶微分,当n>=0时,常系数微分方程称为普通的常系数微分方程,而当n<0时,称为被动的常系数微分方程。
2常系数微分方程的求解常系数微分方程的求解是数学分析学中的重要内容,目前已经形成了解该类问题的一些方法:(1)对于线性方程,采用求解线性常系数微分方程的一般解法,例如附加变量法、变特征值法等;(2)对于高阶非线性微分方程,采用求解微分方程的数值方法,即差分近似法,例如有限差分法、有限元法等;(3)对于常系数微分方程的拓展问题,则需要添加对应的拓展方法,例如组合数值分析法、Laplace变换法等;(4)对于非线性常系数微分方程的求解,采用求解非线性方程的数值方法,例如弦截法、分段线性化方法、图像法、牛顿迭代法等;(5)对于具有给定强行条件的常系数微分方程,有时需要采用求解条件方程的解析方法,例如克莱姆法、特征值法等;(6)综合方法,例如基于拟牛顿方法的滤波器法、基于随机变量的最大似然估计方法等。
3四个重要概念在学习常系数微分方程的求解时,要熟悉以下4个概念:(1)特征根:对于函数y=f(x),它的特征根是指y'=0时的解。
所以,当一个微分方程有解时,那么它的特征根就可以成为方程解中特定变量x的“0值变化”点,即可将该方程分解为特征根和变量x的关系。
(2)特征方程:特征方程是指常系数微分方程的特征多项式及其对应的特征方程的求解问题。
特征多项式就是通过将常系数微分方程化为特征形式,转换出来的多项式。
在求解特征方程时,利用传统的多项式解法,即贝祖定理,计算出特征方程的特征根。
微分方程组求解方法微分方程组是描述自然现象的一种重要数学模型,可以用于解决许多实际问题。
解微分方程组有许多不同的方法,常见的有直接法、变量分离法、常数变易法、齐次方程法、二阶线性常系数齐次微分方程法等等。
接下来,我将详细介绍这些常见的微分方程组求解方法。
1.直接法:如果能直接从方程组中解出一个或多个未知函数,则可以直接得到微分方程组的解。
但是这种方法只适用于少数情况,大多数微分方程组需要使用其他方法求解。
2. 变量分离法:对于一个可分离变量的微分方程组,可以通过将方程两边变量分离,然后分别对两边进行积分的方式得到解。
例如,对于方程组dy/dx = f(x)g(y),可以将方程两边同时除以g(y),然后将变量分离即可得到解。
3. 常数变易法:对于一般的非齐次微分方程组,可以通过令未知函数的系数为常数来转化为齐次微分方程组来求解。
例如,对于方程组dy/dx = f(x) + g(x)y,可以令g(x)为常数,然后将方程组转化为齐次微分方程组dy/dx = f(x) + gy,再使用其他方法求解。
4. 齐次方程法:对于齐次微分方程组,可以使用变量代换的方式将其转化为一阶线性常系数齐次微分方程组求解。
例如,对于方程组dy/dx = f(x)/g(x),可以令y = ux,然后将方程组转化为一阶线性常系数齐次微分方程组du/dx + (u - f(x)/g(x))/x = 0,再使用其他方法求解。
5. 二阶线性常系数齐次微分方程法:对于二阶线性常系数齐次微分方程组,可以使用特征方程法求解。
首先,假设方程组的解为y =e^(mx),然后将其代入方程组中得到特征方程,求解特征方程的根,然后根据根的类型(不同、相等、复数根)确定方程组的通解。
在实际问题中,常常需要将微分方程组转化为矩阵形式进行求解。
例如,对于二阶线性常系数齐次微分方程组,可以将其转化为矩阵方程Dy=Ay,其中D是微分算子,A是常数矩阵,y是未知函数向量。
常微分方程组解法常微分方程组是数学中的一个重要分支,广泛应用于物理、工程、经济等领域。
解决常微分方程组的问题是确定每个未知函数的表达式,以满足方程组中的所有方程。
常微分方程组的解法有许多种方法,本文将介绍其中几种常用的解法。
1. 分离变量法(Separation of Variables)分离变量法适用于可以将常微分方程组中的每个未知函数分离成独立变量的形式的情况。
首先,将每个未知函数表示为单独的变量乘以一个函数的形式,然后将这些表达式代入方程组,最后将方程组化简为一系列独立的方程。
解决这些方程可以得到每个未知函数的解析解。
2. 线性组合法(Linear Combination)线性组合法适用于常微分方程组中的每个未知函数表达式可以通过其他未知函数的线性组合来表示的情况。
通过选择适当的线性组合系数,可以将方程组化简为一系列只含一个未知函数的方程。
然后,解决这些方程可以得到每个未知函数的解析解。
3. 齐次线性微分方程组的特征方程法(Characteristic Equation)齐次线性微分方程组的特征方程法适用于常微分方程组中的每个未知函数满足线性微分方程的情况。
首先,将未知函数表示为指数函数的形式,然后代入方程组,得到一个特征方程。
解这个特征方程可以得到每个未知函数的通解。
最后,通过添加特定的解(特解)来得到完整的解。
4. 变量替换法(Change of Variables)变量替换法适用于常微分方程组中的每个未知函数可以通过对原始变量进行适当的变换来表示的情况。
通过选择适当的变量替换,可以将方程组转化为具有更简洁形式的方程。
解决这些方程可以得到每个未知函数的解析解。
总结起来,常微分方程组的解法有分离变量法、线性组合法、特征方程法和变量替换法等。
根据具体的问题,我们可以选择适当的解法来求解常微分方程组,以得到满足方程组的每个未知函数的解析解。
这些解法在实际应用中具有广泛的适用性,为解决各种物理、工程和经济问题提供了有效的数学工具。
实验六 常微分方程的Matlab 解法一、实验目的1. 了解常微分方程的解析解。
2. 了解常微分方程的数值解。
3. 学习掌握MATLAB 软件有关的命令。
二、实验内容一根长l 的无弹性细线,一段固定,另一端悬挂一个质量为m 的小球,在重力的作用下小球处于垂直的平衡位置。
若使小球偏离平衡位置一个角度θ,让它自由,它就会沿圆弧摆动。
在不考虑空气阻力的情况下,小球会做一定周期的简谐运动。
利用牛顿第二定律得到如 下的微分方程0)0(',)0(,sin "0===θθθθθmg ml问该微分方程是线性的还是非线性的?是否存在解析解?如果不存在解析解,能否求出其近似解?三、实验准备MATLAB 中主要用dsolve 求符号解析解,ode45,ode23,ode15s 求数值解。
ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。
ode23与ode45类似,只是精度低一些。
ode12s 用来求解刚性方程组,是用格式同ode45。
可以用help dsolve, help ode45查阅有关这些命令的详细信息.四、实验方法与步骤练习1 求下列微分方程的解析解 (1)b ay y +='(2)1)0(',0)0(,)2sin(''==-=y y y x y (3)1)0(',1)0(',','==-=+=g f f g g g f f 方程(1)求解的MATLAB 代码为:clear;s=dsolve('Dy=a*y+b')结果为s =-b/a+exp(a*t)*C1方程(2)求解的MATLAB 代码为:clear;s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x') simplify(s) %以最简形式显示s结果为s =(-1/6*cos(3*x)-1/2*cos(x))*sin(x)+(-1/2*sin(x)+1/6*sin(3*x))*cos(x)+5/3*sin(x) ans =-2/3*sin(x)*cos(x)+5/3*sin(x) 方程(3)求解的MATLAB 代码为:clear;s=dsolve('Df=f+g','Dg=g-f','f(0)=1','g(0)=1') simplify(s.f) %s 是一个结构 simplify(s.g)结果为ans =exp(t)*cos(t)+exp(t)*sin(t) ans =-exp(t)*sin(t)+exp(t)*cos(t) 练习2 求解微分方程,1)0(,1'=++-=y t y y先求解析解,再求数值解,并进行比较。
常微分方程的解法常微分方程(Ordinary Differential Equation)是描述自然现象和工程问题的基础数学模型,被广泛应用到各个领域中。
解常微分方程的方法不仅是数学学科的基本内容,也是物理、工程、经济等工科领域必须熟练掌握的数学工具之一。
本文将简单介绍常微分方程的基本概念和解法。
一、基本概念常微分方程是指仅涉及一个自变量和它的几个导数的方程。
通常形式为:$$F(x,y,y^\prime,y^{\prime\prime},...,y^{(n)})=0$$若仅涉及一阶导数,则称为一阶常微分方程,通常写作$y^\prime=f(x,y)$。
一般地,我们都要求解的是一阶常微分方程,因此本文仅介绍一阶常微分方程的解法。
二、解法1. 可分离变量法若已知的微分方程为$y^\prime=f(x,y)$,并且可以分离变量,即$f(x,y)=g(x)h(y)$,则可通过以下步骤求解:(1)将方程移项得到$\frac{dy}{dx}=g(x)h(y)$;(2)分母h(y)移项得到$\frac{1}{h(y)}dy=g(x)dx$;(3)两边同时积分得到$\int\frac{1}{h(y)}dy=\int g(x)dx+C$,其中C为常数。
2. 齐次方程法若已知的微分方程为$y^\prime=f(x,y)$,并且满足$f(x,y)=f(\frac{y}{x})$,则称该微分方程为齐次方程。
则可通过以下步骤求解:(1)令$y=ux$,则有$\frac{dy}{dx}=u+x\frac{du}{dx}$;(2)将$y^\prime=f(x,y)$代入$\frac{dy}{dx}=u+x\frac{du}{dx}$中得到$$u+x\frac{du}{dx}=f(x,ux)$$(3)该方程可变形为$$\frac{du}{f(x,ux)-u}=\frac{1}{x}dx$$(4)对两边积分得到$$\int\frac{du}{f(x,ux)-u}=\ln|x|+C$$,其中C为常数。
常系数微分方程的求解微分方程是数学特别重要的一个研究对象,是描述多变量函数在变化中的变化规律的数学工具。
常系数微分方程(Constant coefficient differential equation,CCDE)是一类特殊的微分方程,其中所有空间变量都是常量。
它是在解理论计算机科学、力学、计算物理学(CFD),热力学、积分变换等多个领域有重要的应用。
常系数微分方程的求解是比较复杂的工作,它涉及多阶段的求解过程。
首先,我们需要分析微分方程的构造,将其分解为更小的子问题,然后利用可用的数学工具来解决这些子问题。
其次,我们需要考虑常系数微分方程的初始条件,考虑如何将初始条件消除,以实现更精确的求解。
最后,我们需要对解进行误差分析,确保解的准确性。
在求解常系数微分方程方面,一般有两种方法可用:一是采用数值计算方法,如欧拉法、改进欧拉法、拉普拉斯差分方法等;二是采用解析方法,如常系数线性微分方程的积分变换、Laplace换、Fourier 换、Fourier近等。
在采用解析方法求解复杂的常系数微分方程时,我们可以采用把方程转化为积分方程的方法。
首先,我们需要将复杂的常系数微分方程转换成积分形式。
其次,我们需要将积分方程转换成常系数线性积分方程的形式,然后采用解析方法求解。
这种转化的过程需要考虑常系数微分方程的各种特殊情况,以确保得到准确的结果。
此外,在求解常系数微分方程的过程中,还需要考虑计算机算法的优化问题。
由于常系数微分方程涉及多个空间变量,其计算量可能较大。
因此,在计算过程中,我们做出尽可能多的优化,例如采用快速傅立叶变换(FFT)或多项式系统求解等方法,以提高计算效率。
总之,在求解常系数微分方程方面,我们既可以采用数值计算方法,也可以采用解析方法。
而在求解常系数微分方程的过程中,我们需要考虑的因素不外乎:分析方程的构造,消除初始条件,解决子问题,优化计算机算法等。
只要把握住这些基本概念,就能成功的求解常系数微分方程。
常微分方程中的常微分方程组解法探究常微分方程是数学中很重要的一个分支,常微分方程组作为常微分方程的一种,也同样具有很高的研究价值。
常微分方程组主要表现在许多物理、生物、化学等领域中,可以用来描述复杂系统的动态行为,因此其解法的探究对于实际问题的解决有着重大的意义。
下面本文将从常微分方程组基本理论、一阶线性常微分方程组的通解和解的结构、高阶线性常微分方程组的通解和解的性质等方面入手,对常微分方程组的解法进行探究。
1.常微分方程组基本理论常微分方程组可以写成下面的形式:\begin{aligned} \frac{dx_1}{dt}&=f_1(t,x_1,x_2,\cdots,x_n)\\\frac{dx_2}{dt}&=f_2(t,x_1,x_2,\cdots,x_n)\\ &\vdots\\\frac{dx_n}{dt}&=f_n(t,x_1,x_2,\cdots,x_n) \end{aligned}其中$x_1,x_2,\cdots,x_n$是未知函数,$f_1(t,x_1,x_2,\cdots,x_n),f_2(t,x_1,x_2,\cdots,x_n),\cdots,f_n(t,x_1,x _2,\cdots,x_n)$是已知函数。
对于这种形式的常微分方程组,我们可以采用一些解法来求解问题。
但在进行解法的探究前,我们先需要了解一些基本理论。
常微分方程组的解被称为向量函数解,它为通解的形式。
如果求得了常微分方程组的一个特解,则可以通过在通解中加上它来求得常微分方程组的任意解。
而常微分方程组的通解是指它的任意数目解所形成的通族解的表示式。
常微分方程组的阶次是指其最高阶导数的阶数。
2.一阶线性常微分方程组的通解和解的结构一阶线性常微分方程组可以写成下面的形式:\begin{aligned}\frac{dx}{dt}&=a_{11}(t)x+a_{12}(t)y+\cdots+a_{1n}(t)z+b_1(t)\\\frac{dy}{dt}&=a_{21}(t)x+a_{22}(t)y+\cdots+a_{2n}(t)z+b_2(t)\\&\vdots\\\frac{dz}{dt}&=a_{n1}(t)x+a_{n2}(t)y+\cdots+a_{nn}(t)z+b_n(t)\end{aligned}其中$x,y,\cdots,z$是未知函数,$a_{ij}(t)$和$b_i(t)$是已知函数。
常微分方程(组)求解【实验目的】1.求微分方程的符号解。
2.求微分方程的数值解。
【实验相关知识】 (一)微分方程的符号解.微分方程的符号解也叫做解析解. 求微分方程(组)的符号解用命令dsolve. 命令格式如下:说明:用字符串表示方程,自变量缺省则默认为t. 导数用D 表示, 2阶导数用D2表示,以此类推。
返回值s 是符号解.例1. 求初值问题y(t), y(0) = 23dy tdt t =-的解。
dsolve 命令格式是:>> dsolve('Dy = y*t/(t-5)','y(0) = 2') ans =-2/3125*exp(t)*(t-5)^5 或者s=dsolve('Dy = y*t/(t-5)','y(0) = 2') s =-2/3125*exp(t)*(t-5)^5二阶或更高阶方程的处理情况相类似。
例如:220d yy dx-=, y(0) = -1, y'(0) = 2 写成如下的形式输入MATLAB :>> dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2') ans =-3/2*exp(-t)+1/2*exp(t)例2: 求sin(2)y x y ''=-满足初始条件(0)0,(0)1y y '==的符号解.写成如下的形式输入MATLAB :s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x') simplify(s) %如果得到符号解比较复杂,可以试试化简 pretty(s) %显示漂亮的形式。
大家得到的结果是什么呢?(二)微分方程的数值解.一般说来,只有对一些典型的常微分方程,才能求出它们的一般解.然而在实际问题中遇到的常微分方程往往很复杂,在许多情况下得不出一般解.所以一般是要求在若干点的近似数值解. 求数值解的命令如下:说明:(1) 返回值中,xout 表示自变量的取值点(x 0,x 1,…,x n )', yout 表示数值解,它是一个矩阵,它的每一列对应y 的一个分量。
《数学实验》报告实验名称常微分方程的求解学院专业班级姓名学号2013年5月一、 【实验目的】1. 学习在MATLAB 中如何求解微分方程的方法;2. 掌握基本的微分求解命令,学会结合学过的基础知识求解方程;3. 熟练运用基本的解法即数值解法解微分方程;4. 注意不同方法下求得微分方程的优缺点。
二、 【实验任务】1. 求解微分方程为'sin cos x x y y =。
2. 用数值方法求解下列微分方程,用不同颜色和线形将y 和'y 画在同一个图形窗口里:'''12y ty y t+-=-初始时间:0=0t ;终止时间:=f t π;初始条件:0|0.1t y == '0|0.2t y ==。
三、 【实验程序】 1.y=dsolve('Dy=x*sinx/cosy','x') 2.定义的程序:function xdot=exf(t,x)xdot=[0 1;1 -t]*x+[0;1]*(1-2*t);主程序:clcclf[t,x]=ode23('exf',[0,pi],[0.1;0.2]);y=x(:,1)dy=x(:,2)plot(t,y,'r',t,dy,'b')【实验结果】1.2.先将高阶微分方程转化为一阶微分方程。
令''''' 1212x=y x=y=x y=x,,即原微分方程转化为:'12'212+12x x x x tx t ⎧=⎪⎨=--⎪⎩写成矩阵形式为:'11''22010=+11010+11x x x t x x x t ⎛⎫⎛⎫⎛⎫⎛⎫= ⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭⎝⎭⎛⎫⎛⎫⎪ ⎪-⎝⎭⎝⎭(1-2t ) =(1-2t ) 010+11xdot x t ⎛⎫⎛⎫= ⎪ ⎪-⎝⎭⎝⎭(1-2t )放入函数exf.m 中,命令如下:[t,x]=ode23('exf',[0,pi],[0.1;0.2])其中[t,x]中求出的x 是按列排列,故用ode23求出x 后只要第一列,即为y 。
常微分方程(组)求解【实验目的】1.求微分方程的符号解。
2.求微分方程的数值解。
【实验相关知识】(一)微分方程的符号解.微分方程的符号解也叫做解析解. 求微分方程(组)的符号解用命令dsolve. 命令格式如下:
说明:用字符串表示方程,自变量缺省则默认为t. 导数用D 表示, 2阶导数用D2表示,以此类推。
返回值s 是符号解.例1. 求初值问题的解。
y(t), y(0) = 23dy t dt t =-dsolve 命令格式是:>> dsolve('Dy = y*t/(t-5)','y(0) = 2')ans =-2/3125*exp(t)*(t-5)^5
或者s=dsolve('Dy = y*t/(t-5)','y(0) = 2') s = -2/3125*exp(t)*(t-5)^5
二阶或更高阶方程的处理情况相类似。
例如:, y(0) = -1, y'(0) = 2220d y y dx -=写成如下的形式输入MATLAB :>> dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')ans =
-3/2*exp(-t)+1/2*exp(t)
例2: 求满足初始条件的符
sin(2)y x y ''=-(0)0,(0)1y y '==号解.写成如下的形式输入MATLAB :s=dsolve('D2y=sin(2*x)-y','y(0)=0','Dy(0)=1','x')simplify(s) %如果得到符号解比较复杂,可以试试化简pretty(s) %显示漂亮的形式。
大家得到的结果是什么呢?(二)微分方程的数值解.
一般说来,只有对一些典型的常微分方程,才能求出它们
的一般解.然而在实际问题中遇到的常微分方程往往很复杂,在许多情况下得不出一般解.所以一般是要求在若干点的近似数值解. 求数值解的命令如下:
说明:(1) 返回值中,xout 表示自变量的取值点
(x 0,x 1,…,x n )', yout 表示数值解,它是一个矩阵,它的每一列对
应y 的一个分量。
(2)
这里'equation'必须是事先定义的表示微分方程(组)
的M-文件。
(3) [x0,xm]是自变量的区间。
(4) y0是初始向量值。
(5)ode45还可以换成其他算法,如ode23.注意: 命令ode45或ode23是对一阶常微分方程(组)设计的,因此对高阶常微分方程,需将它转化为一阶常微分方程组.例如对二阶常微分方程,通过令(1)0y y y y '''+++=得到一阶常微分方方程组.12,y y y y '==11221
(1)y y y y y y ⎧'=-+-⎪⎨'=⎪⎩在求数值解时,我们往往将数值解与画图结合, 将数值解用图像呈现出来.
例3: 求解微分方程组1121212120.3(0)0.02,(0)0.98dy y y y dt dy y y dt y y ⎧=-⎪⎪⎪=-⎨⎪==⎪⎪⎩先定义M-文件fun1.m 。
function x=fun1(t,y )x=[y(1)*y(2)-0.3*y(1),-y(1)*y(2)]' ;然后ts=[0,50]; % 写成ts=0:50也行
y0=[0.02,0.98]; % 表示初始值
[t,y]=ode45('fun1',ts,y0);
plot(t,y(:,1),t,y(:,2)) %根据x的第一、二列
同时作两条曲线grid %为了观察方便,可添上网格线.
'=-++=
y y t y
例4:求解微分方程.先求符号解,
1,(0)1
再求数值解, 并作图进行比较.
s=dsolve('Dy=-y+t+1','y(0)=1','t')
simplify(s)
可得符号解为y=t+exp(-t).
为了求数值解,先编写M-文件fun.m
function f=fun2(t,y)
f=-y+t+1;
保存,再运行如下命令:
clear
t=0:0.02:1;
y=t+exp(-t);
plot(t,y) %画符号解的图形
hold on %保留已画好的图形,
[t,y]=ode45('fun2',[0,1],1);
plot(t,y,'ro'); %画数值解图形,用红色小圆圈
xlabel('t'),ylabel('y') %标上各坐标名称
运行结果见下图, 可见符号解和数值解吻合得很好.作业:
问题1:求满足初始条件4290y y y '''++=的符号解。
(0)0,(0)15y y '==问题 2:解微分方程组初值问题:cos ;sin ;(0)1,(0) 1.dy t dt dx t dt x y ì=ïïïï=-íïï==ïïî
试画出其相图。
. 问题3:求解微分方程2(1)2,(0)1,(0)3x y xy y y ''''+===先求符号解,再求数值解,
并将符号解和数值解的图形进行
比较.。