exp04w_微分方程的解
各类微分方程的解法
各类微分方程的解法一、常微分方程的解法。
1. 分离变量法。
分离变量法是解常微分方程的一种常见方法,适用于一阶微分方程。
其基本思想是将微分方程中的变量分离开来,然后对两边分别积分得到解。
例如,对于形如dy/dx = f(x)g(y)的微分方程,可以将其化为dy/g(y) = f(x)dx,然后对两边积分得到解。
2. 积分因子法。
积分因子法适用于一阶线性微分方程,通过求解积分因子来将微分方程化为恰当微分方程,进而求解。
其基本思想是通过乘以一个适当的函数来使得微分方程的系数函数具有某种特殊的性质,使得微分方程变为恰当微分方程。
3. 特征方程法。
特征方程法适用于二阶线性常系数齐次微分方程,通过求解特征方程来得到微分方程的通解。
其基本思想是将二阶微分方程化为特征方程,然后求解特征方程得到微分方程的通解。
4. 变量替换法。
变量替换法是一种常见的解微分方程的方法,通过引入新的变量替换原微分方程中的变量,从而将原微分方程化为更简单的形式,然后求解。
例如,对于形如dy/dx = f(ax+by+c)的微分方程,可以通过引入新的变量u=ax+by+c来简化微分方程的形式,然后求解得到解。
二、偏微分方程的解法。
1. 分离变量法。
分离变量法同样适用于偏微分方程,其基本思想是将偏微分方程中的变量分离开来,然后对各个变量分别积分得到解。
例如,对于形如∂u/∂t = k∂^2u/∂x^2的一维热传导方程,可以将其化为∂u/∂t = k∂^2u/∂x^2,然后对各个变量分别积分得到解。
2. 特征线法。
特征线法适用于一些特殊的偏微分方程,通过引入特征线变量来化简偏微分方程的形式,然后求解。
例如,对于一维波动方程∂^2u/∂t^2 = c^2∂^2u/∂x^2,可以通过引入特征线变量ξ=x-ct和η=x+ct来化简方程的形式,然后求解得到解。
3. 分析法。
分析法是一种常见的解偏微分方程的方法,通过分析偏微分方程的性质和特征来求解。
微分方程解法总结
微分方程解法总结微分方程是数学中的一种重要方法,它可以用来描述物理过程和系统的变化。
微分方程的解法有很多种,比如拉弗森方程、牛顿联立方程、二阶线性微分方程等。
本文将总结一些常用的微分方程的解法,以便更好地理解这类方程的特性和解法。
首先,我们来讨论拉弗森方程的解法。
拉弗森方程是一类非线性微分方程,它的一般形式为:y=f(x,y),它的解可以用解析解法和数值解法来计算。
解析解法是将拉弗森方程转化为一定形式的积分问题,然后用积分的方法来求解;数值解法是将拉弗森方程对应的积分问题分解为若干离散点,再用差分近似求解这些离散点。
其次,我们来讨论牛顿联立方程的解法。
牛顿联立方程是求解一组非线性方程组的常用解法,它的一般形式为:y=f(x,y),其解可以用牛顿迭代法来求解。
牛顿迭代法是一种迭代解法,它的基本思想是:从初始点开始,不断迭代,每次迭代根据由牛顿差商求出的趋势方程,向满足趋势的方向前进,直到收敛,即可得到满足牛顿联立方程的解。
再者,我们来讨论二阶线性微分方程的解法。
二阶线性微分方程是描述物理系统动态变化过程或者描述经济活动的经济学模型等的一类微分方程,它的一般形式为:y+a1y+a2y=g(x),其解可以使用求解二阶常系数线性微分方程的积分因子方法来求解,即找到一组积分因子,使得将方程换形后,可以被积分两次以得到解析解。
最后,我们来讨论一阶线性微分方程的解法。
一阶线性微分方程是一类描述物理过程和系统变化的基本方程,它的一般形式为:a0y+a1y=g(x),它的解可以用通解方法和特解方法来求解。
通解方法是通过解方程的全部通解来求解,例如,可以将它转化为一组线性方程组,然后用矩阵求解法求解;而特解方法是通过寻找特定解析解的方式来求解,根据题目特定要求,我们可以用拉普拉斯变换等方法来求出特定的解析解。
因此,本文总结了几种常见的微分方程的解法,它们分别是拉弗森方程的解法、牛顿联立方程的解法、二阶线性微分方程的解法和一阶线性微分方程的解法。
微分方程的数值解法与程序实现
微分方程的数值解法与程序实现微分方程是数学中的重要概念,广泛应用于各个领域。
解微分方程有多种方法,其中一种常用的方法是数值解法。
本文将介绍微分方程的数值解法以及如何用程序实现。
我们来了解一下微分方程的概念。
微分方程描述了变量之间的关系,其中包含了未知函数及其导数。
一般形式的微分方程可以写作:dy/dx = f(x, y)其中,y是未知函数,x是自变量,f(x, y)是已知函数。
解微分方程的目标是找到函数y(x)的表达式,使得方程左边的导数等于右边的已知函数。
对于一些简单的微分方程,可以通过代数方法求解得到解析解。
但是,对于复杂的微分方程,往往很难找到解析解。
这时候就需要使用数值解法来近似求解。
数值解法的基本思路是将微分方程转化为差分方程,然后通过逐步逼近的方法求解。
差分方程是离散的,可以使用计算机程序来实现。
常用的数值解法有欧拉法、改进的欧拉法、龙格-库塔法等。
以欧拉法为例,我们来看一下具体的实现过程。
欧拉法的基本思想是通过一阶导数来表示微分方程的变化率。
具体步骤如下:1. 将微分方程转化为差分方程:dy/dx ≈ (y(i+1) - y(i)) / Δx,其中Δx是步长。
2. 根据初始条件,设置初始值y(0)。
3. 通过迭代计算,求解差分方程:y(i+1) = y(i) + f(x(i), y(i)) * Δx,其中f(x(i), y(i))是在(x(i), y(i))处的导数值。
4. 重复步骤3,直到达到所需的精度或计算次数。
通过上述步骤,我们可以得到微分方程的数值解。
下面,我们来具体实现一个用于求解微分方程的程序。
假设我们要求解的微分方程为dy/dx = x^2,初始条件为y(0) = 1,步长Δx = 0.1。
程序的实现如下:```pythondef euler_method(x0, y0, dx, n):x = [x0]y = [y0]for i in range(n):x.append(x[i] + dx)y.append(y[i] + dx * x[i]**2)return x, yx0 = 0y0 = 1dx = 0.1n = 10x, y = euler_method(x0, y0, dx, n)for i in range(n+1):print("x = {:.1f}, y = {:.4f}".format(x[i], y[i]))```运行以上程序,将得到微分方程的数值解。
微分方程欧拉方程解法
微分方程欧拉方程解法一、引言微分方程是数学中重要的一部分,它在物理、工程、经济等学科的研究中具有广泛的应用。
在解微分方程的过程中,欧拉方程是一种常见的解法之一。
本文将介绍欧拉方程的基本概念和求解方法,并通过具体的例子来说明其应用。
二、欧拉方程的定义欧拉方程是指具有形如F(x,y,y′,y″,...)=0的形式的微分方程。
其中,F是关于x,y,y′,y″,...的函数,y是未知函数,y′,y″分别表示y的一阶、二阶导数等。
解欧拉方程即是要找到满足该方程的函数y=f(x)。
三、欧拉方程的求解方法欧拉方程的求解方法主要有以下几种:3.1 变量分离法变量分离法是一种常用的解微分方程的方法,也适用于欧拉方程的求解。
具体步骤如下: 1. 将方程中所有含有y′的项移到方程的一边,其它项移到方程的另一边,得到F(x,y)−y′G(x,y,y′,y″...)=0的形式; 2. 观察方程的左边和右边是否可以通过变量分离,即是否可以将y和x分离开来; 3. 若能分离,则将左边只含有y的项移到右边,只含有x的项移到左边; 4. 对两边分别积分,得到H(x)+C=∫G(x,y,y′,y″...) dx的形式; 5. 求解上述积分方程,得到H(x)的表达式; 6. 将H(x)代入F(x,y)中,得到关于y的方程; 7. 求解该关于y的方程,得到解y=f(x)。
3.2 特征方程法特征方程法是欧拉方程求解的一种常用方法,适用于形如x n y(n)+a n−1x n−1y(n−1)+...+a0y=f(x)的方程。
具体步骤如下: 1. 假设解为y=x m,代入原方程,得到特征方程; 2. 求解特征方程,得到特征方程的根m; 3. 根据特征方程的根,给出通解的形式; 4. 根据边界条件,求解常数,得到特解。
四、欧拉方程的例子及求解过程为了更好地理解欧拉方程的求解方法,我们来看一个具体的例子:x2y″+xy′−4y=0。
下面是求解该方程的步骤:4.1 将方程变形为欧拉方程将方程变形为x2y″+xy′−4y=x2(d2ydx2)+x(dydx)−4y=0。
各类微分方程的解法大全
各类微分方程的解法1.可分离变量的微分方程解法一般形式:g(y)dy=f(x)dx直接解得∫g(y)dy=∫f(x)dx设g(y)及f(x)的原函数依次为G(y)及F(x),则G(y)=F(x)+C为微分方程的隐式通解2.齐次方程解法一般形式:dy/dx=φ(y/x)令u=y/x则y=xu,dy/dx=u+xdu/dx,所以u+xdu/dx=φ(u),即du/[φ(u)-u]=dx/x两端积分,得∫du/[φ(u)-u]=∫dx/x最后用y/x代替u,便得所给齐次方程的通解3.一阶线性微分方程解法一般形式:dy/dx+P(x)y=Q(x)先令Q(x)=0则dy/dx+P(x)y=0解得y=Ce-∫P(x)dx,再令y=u e-∫P(x)dx代入原方程解得u=∫Q(x)e∫P(x)dx dx+C,所以y=e-∫P(x)dx[∫Q(x)e∫P(x)dx dx+C]即y=Ce-∫P(x)dx+e-∫P(x)dx∫Q(x)e∫P(x)dx dx为一阶线性微分方程的通解4.可降阶的高阶微分方程解法①y(n)=f(x)型的微分方程y(n)=f(x)y(n-1)=∫f(x)dx+C1y(n-2)=∫[∫f(x)dx+C1]dx+C2依次类推,接连积分n次,便得方程y(n)=f(x)的含有n个任意常数的通解②y”=f(x,y’)型的微分方程令y’=p则y”=p’,所以p’=f(x,p),再求解得p=φ(x,C1)即dy/dx=φ(x,C1),所以y=∫φ(x,C1)dx+C2③y”=f(y,y’)型的微分方程令y’=p则y”=pdp/dy,所以pdp/dy=f(y,p),再求解得p=φ(y,C1)即dy/dx=φ(y,C1),即dy/φ(y,C1)=dx,所以∫dy/φ(y,C1)=x+C25.二阶常系数齐次线性微分方程解法一般形式:y”+py’+qy=0,特征方程r2+pr+q=06.二阶常系数非齐次线性微分方程解法一般形式:y”+py’+qy=f(x)(x),再求y”+py’+qy=f(x)的一个特解y*(x) 先求y”+py’+qy=0的通解y(x)+y*(x)即为微分方程y”+py’+qy=f(x)的通解则y(x)=y求y”+py’+qy=f(x)特解的方法:①f(x)=P m(x)eλx型令y*=x k Q m(x)eλx[k按λ不是特征方程的根,是特征方程的单根或特征方程的重根依次取0,1或2]再代入原方程,确定Q m(x)的m+1个系数②f(x)=eλx[Pl(x)cosωx+P n(x)sinωx]型令y*=x k eλx[Q m(x)cosωx+R m(x)sinωx][m=max﹛l,n﹜,k按λ+iω不是特征方程的根或是特征方程的单根依次取0或1]再代入原方程,分别确定Q m(x)和R m(x)的m+1个系数。
微分方程exp范文
微分方程exp范文微分方程是数学中的一个重要分支,广泛应用在物理学、工程学和经济学等领域。
本文将从微分方程的概念、基本类型、解法和应用等方面进行介绍。
微分方程是描述变化率的方程,其中包含未知函数及其导数的关系。
微分方程的一般形式可以表示为:F(x,y,y',y'',...)=0,其中x是自变量,y是未知函数,y'、y''等表示y的一阶、二阶导数等。
微分方程可以分为常微分方程和偏微分方程两大类。
常微分方程中,未知函数只涉及一个自变量,而偏微分方程中,未知函数涉及多个自变量。
在本文中,我们集中讨论常微分方程。
根据微分方程中的未知函数和导数的阶数,常微分方程可以进一步分为一阶常微分方程和高阶常微分方程。
一阶常微分方程中未知函数的最高导数为一阶导数,例如:dy/dx = f(x,y)。
高阶常微分方程中未知函数的最高导数为二阶或以上,例如:d^2y/dx^2 + p(x)dy/dx + q(x)y = g(x)。
解一阶常微分方程的方法有多种,常见的有分离变量法、齐次方程法和一阶线性方程法等。
分离变量法是指将方程两边的变量分开,然后分别积分。
齐次方程法是指将方程转化为齐次方程,然后利用变量代换求解。
一阶线性方程法是指将方程化为一阶线性方程的形式,然后应用积分因子法求解。
对于高阶常微分方程,常见的解法有特征方程法、常数变易法和拉普拉斯变换法等。
特征方程法是指将方程转化为一个代数方程,并求出其特征根,然后构造出方程的通解。
常数变易法是指假设方程的解为一些特定形式的函数,并代入方程中,从而求解方程的特解。
拉普拉斯变换法则是利用拉普拉斯变换的性质将微分方程转化为代数方程,然后利用反变换得到方程的解。
微分方程广泛应用于物理学、工程学和经济学等领域。
在物理学中,微分方程可以描述运动的规律,例如:牛顿运动定律可以表示为二阶常微分方程。
在工程学中,微分方程可以描述电路、机械系统和化学反应等的动态行为。
微分方程数值解法
微分方程数值解法微分方程数值解法是一种将微分方程的解转化为数值计算的方法。
常用的微分方程数值解法包括欧拉法、隐式欧拉法、龙格-库塔法等。
1. 欧拉法:欧拉法是最简单的一种数值解法,它基于微分方程的定义,在给定的初始条件下,通过不断迭代计算微分方程在给定区间上的近似解。
欧拉法的迭代公式为:y_{n+1}=y_n+h\\cdot f(t_n,y_n),其中y_n表示第n步的近似解,t_n表示第n步的时间,h表示步长,f(t_n,y_n)表示微分方程的右侧函数。
2. 隐式欧拉法:隐式欧拉法是欧拉法的改进,它在计算近似解时使用了未知公式的近似值,从而提高了精度。
隐式欧拉法的迭代公式为:y_{n+1}=y_n+h\\cdotf(t_{n+1},y_{n+1}),其中y_{n+1}表示第n+1步的近似解,t_{n+1}表示第n+1步的时间,h表示步长,f(t_{n+1},y_{n+1})表示微分方程的右侧函数。
3. 龙格-库塔法:龙格-库塔法是一种常用的高阶数值解法,它通过计算微分方程的斜率来提高精度。
最常见的是四阶龙格-库塔法,它的迭代公式为:y_{n+1}=y_n+\\frac{1}{6}(k_1+2k_2+2k_3+k_4),其中k_1=h\\cdot f(t_n,y_n),k_2=h\\cdotf(t_n+\\frac{h}{2},y_n+\\frac{1}{2}k_1),k_3=h\\cdotf(t_n+\\frac{h}{2},y_n+\\frac{1}{2}k_2),k_4=h\\cdotf(t_n+h,y_n+k_3)。
这些方法的选择取决于问题的性质和精度要求。
其中,欧拉法是最简单的方法,但精度较低,龙格-库塔法精度较高,但计算量较大。
在实际应用中需要根据问题的具体情况选择合适的数值解法。
微分方程的泛函方法
微分方程的泛函方法嘿,咱今儿来聊聊微分方程的泛函方法呀!这玩意儿可神奇啦,就好像是一把能解开复杂谜题的钥匙。
你想啊,微分方程就像是一个调皮的小精灵,总是跑来跑去,让人捉摸不透。
而泛函方法呢,就像是给这个小精灵套上了一个缰绳,能让我们更好地驾驭它。
泛函方法可不是随随便便就能掌握的哦,它需要我们有足够的耐心和智慧。
它就像是一门高深的武功秘籍,得慢慢修炼。
比如说,在解决一些实际问题的时候,我们就可以用泛函方法来大显身手。
它能让那些看起来乱七八糟的微分方程变得乖乖听话,乖乖地给出我们想要的答案。
你看啊,生活中很多事情不也是这样吗?有时候看似一团乱麻,但是只要我们找到合适的方法,就能理清头绪。
微分方程的泛函方法就是这样一个神奇的工具,能帮我们在数学的世界里披荆斩棘。
它就像是一盏明灯,照亮我们在微分方程这个黑暗森林中前行的道路。
有了它,我们就不再害怕那些复杂的式子和奇怪的符号。
而且哦,泛函方法还能让我们看到一些平时看不到的东西。
就好像我们戴上了一副特殊的眼镜,能发现一些隐藏在微分方程背后的秘密。
想象一下,如果没有泛函方法,我们面对那些复杂的微分方程该怎么办呀?岂不是要抓耳挠腮,毫无头绪?但有了它,一切都变得不一样啦!咱再深入想想,这泛函方法和我们的生活也有很多相似之处呢。
我们在生活中也会遇到各种各样的难题,有时候也需要找到一种特别的方法来解决它们。
这不就跟我们用泛函方法解决微分方程一样嘛!总之啊,微分方程的泛函方法真的是太重要啦!它是我们探索数学世界的有力武器,也是我们解决实际问题的好帮手。
我们可得好好研究研究它,让它为我们发挥更大的作用呀!别小瞧了它哦,说不定哪天它就能给你带来意想不到的惊喜呢!这就是我对微分方程的泛函方法的理解啦,你觉得怎么样呢?。
微分方程特解求通解
微分方程特解求通解
微分方程在互联网领域是一个非常重要的概念,许多核心技术都与其有关,比如算法和模型的构建以及机器学习的扩散和应用等。
特别是求解微分方程的通解,在互联网领域更能体现其极高的工程意义和工程造诣。
首先,我们需要充分理解微分方程,即在定义微分方程和求解微分方程的特解时,对函数导数应当清楚。
先定义微分方程分三步来确定函数:①确定微分项:将满足特定条件的函数求其导数;②确定参数:定义一定的函数作为参数;③确定函数的形状:确定函数的形式是线性还是非线性。
再求解微分方程的特解,精确定义特定函数的微分,可以分两步来实现:①获取函数的表达式;②使用函数表达式来求解特定函数的导数。
最后,求解微分方程的通解方法是将求解特解微分方程的步骤结合起来,以获得所有的通解,并求出最佳的解决方案。
这一方法可以有效地利用理论上的方法、数学方法和工程思想,探索函数和导数的实际解释,构建出一个准确的微分方程的解。
总之,求解微分方程的通解在互联网领域有着独特的重要意义,它改善了整个技术生态,加强了机器学习算法的抗干扰能力,大幅提升了实用价值和决策效率,有助于推动互联网产业的持续发展。
汤家凤求解微分方程技巧
汤家凤求解微分方程技巧微分方程作为数学的一个分支,研究的是函数的导数与原函数之间的关系。
它在数学和科学的各个领域中都有广泛的应用,并且解微分方程的技巧也是研究微分方程的重要内容之一。
下面将介绍一些求解微分方程的常用技巧。
一、分离变量法分离变量法是求解一阶可分离变量微分方程的常用方法。
其基本思想是将微分方程中的变量分离出来,然后进行积分。
具体步骤如下:1. 对微分方程两边进行变量分离,使得方程能够写成dy/dx = f(x)g(y)的形式。
2. 将方程两边同时积分,并解出y的表达式。
3. 求解得到的方程,得到原微分方程的解。
例如,对于微分方程dy/dx = f(x)g(y),可以将其转化成 dy/g(y) = f(x)dx 的形式,然后对两边同时积分,得到∫1/g(y)dy = ∫f(x)dx,再对等式两边进行求积分,最后得到原微分方程的解。
二、常数变易法常数变易法是求解二阶线性齐次微分方程的常用方法。
其基本思想是设原微分方程的解为y = u(x)e^(mx),其中u(x)是待定函数,m是待定常数。
具体步骤如下:1. 设定待定函数y = u(x)e^(mx),并求出y的一阶和二阶导数。
2. 将y及其导数代入原微分方程中,得到关于u(x)的方程。
3. 解出关于u(x)的方程,得到u(x)的表达式。
4. 将u(x)的表达式代入y = u(x)e^(mx)中,得到原微分方程的解。
常数变易法适用于形如y'' + py' + qy = 0的线性齐次微分方程的求解。
三、冲击响应法冲击响应法是求解微分方程的一种方法,特别适用于解非齐次线性微分方程。
其基本思想是利用冲激函数δ(x)的性质,将非齐次方程转化为齐次方程,并通过求解齐次方程得到非齐次方程的解。
具体步骤如下:1. 设非齐次方程为dy/dx + p(x)y = f(x),其中p(x)和f(x)是已知函数。
2. 引入冲击响应函数R(x),将原方程转化为齐次方程dy/dx + p(x)y = δ(x)。
solve_ivp解的定义范围 -回复
solve_ivp解的定义范围-回复解的定义范围通常是指ODE(Ordinary Differential Equations,常微分方程)的初值问题。
在这篇文章中,我们将逐步回答有关solve_ivp 解的定义范围的问题,并解释其背后的概念和步骤。
第一步:介绍初值问题首先,让我们明确什么是ODE的初值问题。
ODE是描述函数与其导数之间关系的方程。
一个ODE的初值问题由一个ODE和一个初始条件组成。
方程定义了未知函数以及其导数之间的关系,而初始条件则提供了在某个特定点上未知函数和导数的值。
我们的目标是找到满足方程和初始条件的函数。
一个典型的ODE的初值问题可以表示为:dy/dx = f(x, y)y(x0) = y0这里,dy/dx是未知函数y的导数,f(x, y)是一个给定的函数,而y(x0) = y0是在初始点x = x0处的值。
第二步:理解solve_ivp的解的定义范围solve_ivp是一个在Python科学计算库scipy中用于解决ODE初值问题的函数。
它可以通过数值方法来找到满足给定ODE和初始条件的函数。
在解决ODE的初值问题时,我们希望找到满足给定方程的函数y(x),并且该函数在给定初始点x = x0处的值与给定的初始值y0相匹配。
solve_ivp能够返回一个对象,其中包含所有求解的信息。
其中一个属性是sol.y,它是一个数组,包含了从求解器得到的解的函数值在离散时间点上的估计值。
这意味着solve_ivp返回的是逼近解的有限集合,而不是真正的解函数。
这是因为我们通常无法找到精确的解析解,而是通过数值近似的方式得到解的估计值。
第三步:了解数值方法那么,solve_ivp是如何找到近似解的呢?它使用了数值方法来迭代解的估计值,直到找到一个满足给定ODE和初始条件的解。
数值方法将连续的函数和方程离散化为离散的时间点和函数值。
在这个离散化的过程中,求解器会进行一系列迭代步骤来逼近真实的解。
exp4求微分方程的解
实验四 求微分方程的解一、问题背景与实验目的实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,能够求解的微分方程也是十分有限的,特别是高阶方程和偏微分方程(组).这就要求我们必须研究微分方程(组)的解法,既要研究微分方程(组)的解析解法(精确解),更要研究微分方程(组)的数值解法(近似解).对微分方程(组)的解析解法(精确解),Matlab 有专门的函数可以用,本实验将作一定的介绍.本实验将主要研究微分方程(组)的数值解法(近似解),重点介绍 Euler 折线法.二、相关函数(命令)及简介1.dsolve('equ1','equ2',…):Matlab 求微分方程的解析解.equ1、equ2、…为方程(或条件).写方程(或条件)时用 Dy 表示y 关于自变量的一阶导数,用用 D2y 表示 y 关于自变量的二阶导数,依此类推.2.simplify(s):对表达式 s 使用 maple 的化简规则进行化简. 例如: syms xsimplify(sin(x)^2 + cos(x)^2) ans=13.[r,how]=simple(s):由于 Matlab 提供了多种化简规则,simple 命令就是对表达式 s 用各种规则进行化简,然后用 r 返回最简形式,how 返回形成这种形式所用的规则.例如: syms x[r,how]=simple(cos(x)^2-sin(x)^2) r = cos(2*x) how = combine4.[T,Y] = solver(odefun,tspan,y 0) 求微分方程的数值解. 说明:(1) 其中的 solver 为命令 ode45、ode23、ode113、ode15s 、ode23s 、ode23t 、ode23tb 之一.(2) odefun 是显式常微分方程:⎪⎩⎪⎨⎧==00)(),(y t y y t f dt dy(3) 在积分区间 tspan =],[0f t t 上,从0t 到f t ,用初始条件0y 求解.(4) 要获得问题在其他指定时间点 ,210,,t t t 上的解,则令 tspan =],,,[,210f t t t t (要求是单调的).(5) 因为没有一种算法可以有效地解决所有的 ODE 问题,为此,Matlab 提供了多种求解器 Solver ,对于不同的ODE 问题,采用不同的Solver .(6) 要特别的是:ode23、ode45 是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的 Matlab 的常用程序,其中:ode23 采用龙格-库塔2 阶算法,用3 阶公式作误差估计来调节步长,具有低等的精度.ode45 则采用龙格-库塔4 阶算法,用5 阶公式作误差估计来调节步长,具有中等的精度.5.ezplot(x,y,[tmin,tmax]):符号函数的作图命令.x,y 为关于参数t 的符号函数,[tmin,tmax] 为 t 的取值范围.6.inline():建立一个内联函数.格式:inline('expr', 'var1', 'var2',…) ,注意括号里的表达式要加引号.例:Q = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)三、实验内容1. 几个可以直接用 Matlab 求微分方程精确解的例子:例1:求解微分方程22x xe xy dxdy-=+,并加以验证.求解本问题的Matlab 程序为:syms x y %line1 y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') %line2diff(y,x)+2*x*y-x*exp(-x^2) %line3 simplify(diff(y,x)+2*x*y-x*exp(-x^2)) %line4 说明:(1) 行line1是用命令定义x,y 为符号变量.这里可以不写,但为确保正确性,建议写上;(2) 行line2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1(3) 行line3使用所求得的解.这里是将解代入原微分方程,结果应该为0,但这里给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1)(4) 行line4 用 simplify() 函数对上式进行化简,结果为 0, 表明)(x y y =的确是微分方程的解.例2:求微分方程0'=-+x e y xy 在初始条件e y 2)1(=下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x yy=dsolve('x*Dy+y-exp(x)=0','y(1)=2*exp(1)','x') ezplot(y)微分方程的特解为:y=1/x*exp(x)+1/x* exp (1) (Matlab 格式),即xe e y x+=,解函数的图形如图 1:图1例3:求微分方程组⎪⎪⎩⎪⎪⎨⎧=--=++035y x dtdy e y x dtdxt在初始条件0|,1|00====t t y x 下的特解,并画出解函数的图形.求解本问题的 Matlab 程序为: syms x y t[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0','x(0)=1','y(0)=0','t') simple(x); simple(y);ezplot(x,y,[0,1.3]);axis auto微分方程的特解(式子特别长)以及解函数的图形均略. 2. 用ode23、ode45等求解非刚性的标准形式的一阶常微分方程(组)的初值问题的数值解(近似解).例4:求解微分方程初值问题⎪⎩⎪⎨⎧=++-=1)0(2222y xx y dx dy 的数值解,求解范围为区间[0, 0.5].fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1); x'; y';plot(x,y,'o-') >> x' ans =0.0000 0.0400 0.0900 0.1400 0.1900 0.2400 0.2900 0.3400 0.3900 0.4400 0.4900 0.5000 >> y' ans =1.0000 0.9247 0.8434 0.7754 0.7199 0.6764 0.6440 0.6222 0.6105 0.6084 0.6154 0.6179 图形结果为图 2.图2例 5:求解描述振荡器的经典的 Ver der Pol 微分方程.7,0)0(',1)0(,0)1(222====+--μμy y y dt dy y dt y d分析:令,,121dt dx x y x ==则.)1(,1221221x x x dtdx x dt dx --==μ 先编写函数文件verderpol.m :function xprime = verderpol(t,x) global mu;xprime = [x(2);mu*(1-x(1)^2)*x(2)-x(1)]; 再编写命令文件vdp1.m : global mu; mu = 7; y0=[1;0][t,x] = ode45('verderpol',[0,40],y0); x1=x(:,1);x2=x(:,2); plot(t,x1)图形结果为图3.图33. 用 Euler 折线法求解前面讲到过,能够求解的微分方程也是十分有限的.下面介绍用 Euler 折线法求微分方程的数值解(近似解)的方法.Euler 折线法求解的基本思想是将微分方程初值问题⎪⎩⎪⎨⎧==00)(),,(y x y y x f dxdy化成一个代数方程,即差分方程,主要步骤是用差商h x y h x y )()(-+替代微商dxdy,于是:⎪⎩⎪⎨⎧==-+)()),(,()()(00x y y x y x f h x y h x y k k k k 记)(,1k k k k x y y h x x =+=+,从而)(1h x y y k k +=+,则有1,,2,1,0).,(,),(1100-=⎪⎩⎪⎨⎧+=+==++n k y x hf y y h x x x y y k k k k k k 例 6:用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=+=1)0(,22y y x y dx dy 的数值解(步长h 取0.4),求解范围为区间[0,2].解:本问题的差分方程为1,,2,1,0).2),( ),(,,4.0,1,021100-=⎪⎪⎪⎩⎪⎪⎪⎨⎧+=+=+====++n k y x y y x f y x hf y y h x x h y x k k k k k k (其中: 相应的Matlab 程序见附录 1.数据结果为:0 1.0000 0.4000 1.4000 0.8000 2.1233 1.2000 3.1145 1.6000 4.4593 2.0000 6.3074图形结果见图4:图4特别说明:本问题可进一步利用四阶 Runge-Kutta 法求解,读者可将两个结果在一个图中显示,并和精确值比较,看看哪个更“精确”?(相应的 Matlab 程序参见附录 2).四、自己动手1. 求微分方程0sin 2')1(2=-+-x xy y x 的通解.2. 求微分方程x e y y y x sin 5'2''=+-的通解.3. 求微分方程组⎪⎪⎩⎪⎪⎨⎧=-+=++00y x dtdy y x dtdx在初始条件0|,1|00====t t y x 下的特解,并画出解函数()y f x =的图形. 4. 分别用 ode23、ode45 求上述第 3 题中的微分方程初值问题的数值解(近似解),求解区间为[0,2]t ∈.利用画图来比较两种求解器之间的差异.5. 用 Euler 折线法求解微分方程初值问题⎪⎩⎪⎨⎧=-=1)0(,12'32y y x y y 的数值解(步长h 取0.1),求解范围为区间[0,2].6. 用四阶 Runge-Kutta 法求解微分方程初值问题⎩⎨⎧=-=1)0(,cos 'y x e y y x 的数值解(步长h 取0.1),求解范围为区间[0,3].四阶 Runge-Kutta 法的迭代公式为(Euler 折线法实为一阶 Runge-Kutta 法):1,,2,1,0),()2,2()2,2(),()22(6,),(342312143211100-=⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧++=++=++==++++=+==++n k hL y h x f L L h y h x f L L h y h x f L y x f L L L L L hy y h x x x y y k k k k k k k k k k k k 相应的 Matlab 程序参见附录 2.试用该方法求解第5题中的初值问题. 7. 用 ode45 方法求上述第 6 题的常微分方程初值问题的数值解(近似解),从而利用画图来比较两者间的差异.五、附录附录 1:(fulu1.m)clearf=sym('y+2*x/y^2'); a=0; b=2; h=0.4;n=(b-a)/h+1; x=0; y=1;szj=[x,y]; for i=1:n-1y=y+h*subs(f,{'x','y'},{x,y}); x=x+h;szj=[szj;x,y]; end szjplot(szj(:,1),szj(:,2))附录 2:(fulu2.m)clearf=sym('y-exp(x)*cos(x)'); a=0; b=3; h=0.1;n=(b-a)/h+1; x=0; y=1;szj=[x,y];for i=1:n-1l1=subs(f,{'x','y'},{x,y});l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2});l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2});l4=subs(f,{'x','y'},{x+h,y+l3*h});y=y+h*(l1+2*l2+2*l3+l4)/6;x=x+h;szj=[szj;x,y];endszjplot(szj(:,1),szj(:,2))。
求微分方程的解PPT课件
y(0) 1
fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1);
注:也可以在 tspan 中指定对求解区间的分割,如:
[x,y]=ode23(fun,[0:0.1:0.5],1); %此时 x=[0:0.1:0.5]
第19页/共23页
solver 为Matlab的ODE求解器(可以是 ode45、ode23、ode113、
ode15s、ode23s、ode23t、ode23tb)
没有一种算法可以有效地解决所有的 ODE 问题,因此MATLAB 提供了多 种ODE求解器,对于不同的ODE,可以调用不同的求解器。
第17页/共23页
Matlab提供的ODE求解器
度均可到 10-3~10-6
ode23t 适度刚性 采用梯形算法
适度刚性情形
ode15s
刚性 多步法;Gear’s 反向数值微 若 ode45 失效时,可
分;精度中等
尝试使用
ode23s 刚性 单步法;2 阶Rosebrock 算 当精度较低时,计算时
法;低精度
间比 ode15s 短
ode23tb 刚性 梯形算法;低精度
x y
|t 0 |t 0
1 0
[x,y]=dsolve('Dx+5*x+y=exp(t)','Dy-x-3*y=0', ... 'x(0)=1', 'y(0)=0', 't')
ezplot(x,y,[0,1.3]);
注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解按词 典顺序输出;如果只给一个输出,则输出的是一个包含解的结构(structure)类型 的数据。
微分方程常用解法总结
微分方程常用解法总结微分方程常用解法总结2010年02月14日星期日14:47最近有点懒,有点颓废。
所以今天想写点什么了。
断断续续算是学完了微分方程,就来简单总结一下吧。
1、一阶微分方程可分离变量和齐次微分方程是最简单的微分方程了,而dy/dx=f[(a1x+b1y+c1)/(a2x+b2y+c2)]形式的方程则可以通过坐标平移x=x+h,y=y+k化为齐次方程,dy/dx=f(ax+by+c)形式的方程可以通过u=ax+by+c变为可分离变量的方程。
一阶线性方程dy/dx+P(x)y=Q(x)通常通过"常数变易法"或者直接代入公式求其通解。
但一般来说,通过简单的"凑微分"就可以求解。
考虑D[∫P(x)dx]=P(x),且e∫P(x)dxP(x)=de∫P(x)dx方程两边同时乘上e∫P(x)dx得e∫P(x)dxdy/dx+de∫P(x)dxy=e∫P(x)dxQ(x)即d(e∫P(x)dxy)=e∫P(x)dxQ(x)两边同时对x求积分得e∫P(x)dxy=∫e∫P(x)dxQ(x)dx+c(不妨取每一个积分的常数项都为0即得y=e﹣∫P(x)dx∫e∫P(x)dxQ(x)dx+c]虽然上面说得很复杂,但上面的推导省去了硬背公式的麻烦,而且能运用于实际的运算。
如果每次运算都使用"常数变易法",不仅步骤比凑微分长,而且回代后的求导过程也可能会出错。
贝努利方程一般是先化为一阶线性微分方程再求解。
2、二阶微分方程形如y``=f(x),y``=f(x,y`),y``=f(y,y`)的微分方程,都可以由教材上给出的方法求得通解。
由于方程都是可化为一阶方程求解,所以称以上三个方程为"可降阶二阶微分方程"。
二阶常系数线性微分方程(或者是更高阶的常系数线性微分方程)是最好求解的。
不仅仅是因为它们都公式可寻,而且因为它们的解法有很多,每一种解法都有其独到的美,包括以前所说过的"D算子法"。
微分方程解法总结
微分方程解法总结引言微分方程是数学中的重要概念,被广泛应用于物理学、工程学以及其他科学领域中,用于描述系统的动力学特征和变化规律。
解决微分方程是一个重要的数学技巧,本文将总结常见的微分方程解法方法,包括分离变量法、变量替换法、特征方程法和级数展开法等。
分离变量法分离变量法是最常见且简单的微分方程解法方法之一,适用于一阶和高阶微分方程。
对于一阶微分方程形如dy/dx = f(x)g(y),可以通过将方程两边分别关于x 和y进行积分来解得y的表达式。
例如,考虑以下的一阶微分方程:dy/dx = x^2 + y^2我们可以将其改写为:dy/(y^2+1) = x^2 dx然后对方程两边进行积分,得到:arctan(y) = (1/3)x^3 + C其中C是常数。
对于高阶微分方程,也可以采用类似的方法将方程化简为一阶方程,并进行积分求解。
分离变量法的关键是将方程化简为形式简单的一阶微分方程。
变量替换法当一阶微分方程不适于分离变量法求解时,可以采用变量替换法。
这个方法的基本思想是通过引入一个新的变量来改变微分方程的形式,从而使其适于分离变量法或其他求解方法。
例如,考虑以下的一阶线性微分方程:dy/dx + p(x)y = q(x)可以通过引入一个新的变量v = y * exp(-∫p(x)dx)来改写方程,得到:dv/dx = exp(-∫p(x)dx)q(x)然后可以用分离变量法来求解新的微分方程,最后再通过原来的变量替换回来得到y的表达式。
对于高阶微分方程,变量替换法的思路是类似的,通过合适的替换将高阶微分方程化简为一阶微分方程。
特征方程法特征方程法是一种经典的用于求解常系数线性齐次微分方程的方法。
对于形如y^(n) + a_(n-1)y^(n-1) + … + a_1y’ + a_0y = 0的齐次微分方程,可以通过特征方程来求解。
特征方程是一个关于λ的代数方程,形如λ^n + a_(n-1)λ^(n-1) + … + a_1λ + a_0 = 0。
(完整word版)各类微分方程解法
南京林业大学各样微分方程的解法1.可分别变量的微分方程解法 一般形式 :g(y)dy=f(x)dx直接解得 ∫g(y)dy= ∫f(x)dx设 g(y)及 f(x) 的原函数依次为 G(y)及 F(x),那么 G(y)=F(x)+C 为微分方程的隐式通解 2.齐次方程解法一般形式 :dy/dx= φ(y/x)令 u=y/x 那么 y=xu,dy/dx=u+xdu/dx, 所以 u+xdu/dx=φ(u), 即 du/ [φ (u)-u ]=dx/x 两端积分 , 得∫du/ [φ (u)-u ] =∫dx/x 最后用 y/x 代替 u, 便得所给齐次方程的通解 3.一阶线性微分方程解法一般形式 :dy/dx+P(x)y=Q(x)-∫P(x)dx-∫P(x)dx先令 Q(x)=0 那么 dy/dx+P(x)y=0 解得 y=Ce, 再令 y=ue代入原方程解得 u=∫Q(x) e∫P(x)dx-∫P(x)dx∫P(x)dxdx+C ]dx+C,所以 y=e[∫Q(x)e-∫P(x)dx- ∫P(x)dx∫P(x)dxdx 为一阶线性微分方程的通解即 y=Ce +e∫Q(x)e 4.可降阶的高阶微分方程解法(n) ① y =f(x) 型的微分方程(n)y =f(x)y (n-1) = ∫f(x)dx+C 1y (n-2) = ∫[ ∫f(x)dx+C 1] dx+C 2(n)=f(x) 的含有 n 个任意常数的通解依次类推 , 接连积分 n 次, 便得方程 y ② y 〞 =f(x,y ’ ) 型的微分方程令 y ’=p 那么 y 〞=p ’ , 所以 p ’=f(x,p),再求解得 p=φ (x,C 1)即 dy/dx= φ(x,C 1), 所以 y=∫φ(x,C 1)dx+C 2 ③ y 〞 =f(y,y ’ ) 型的微分方程令 y ’=p 那么 y 〞=pdp/dy, 所以 pdp/dy=f(y,p), 再求解得 p=φ (y,C 1) 即 dy/dx= φ(y,C 1), 即 dy/ φ(y,C 1)=dx, 所以 ∫dy/ φ (y,C 1)=x+C 2 5.二阶常系数齐次线性微分方程解法一般形式 :y 〞+py ’+qy=0,特色方程 r 2+pr+q=01南京林业大学特色方程 r 2+pr+q=0 的两根为 r1,r2微分方程y〞+py’+qy=0的通解r r1x r2x212两个不相等的实根 r1,y=C e +C e两个相等的实根 r1=r2y=(C1+C2x)e r 1 x一对共轭复根 r1=α+iβ, r 2=α-iβαxcosβx+C2sin β x) y=e (C16.二阶常系数非齐次线性微分方程解法一般形式 : y 〞+py’+qy=f(x)先求 y〞+py’+qy=0 的通解 y0(x), 再求 y〞+py’+qy=f(x) 的一个特解 y*(x)那么 y(x)=y 0(x)+y*(x) 即为微分方程 y〞+py’+qy=f(x) 的通解求 y〞+py’+qy=f(x) 特解的方法 :①f(x)=P m(x)e x型λ令 y*=x k Q m(x)eλx[k 按λ不是特色方程的根 , 是特色方程的单根或特色方程的重根依次取 0,1 或 2]再代入原方程 , 确定 Q m(x) 的 m+1个系数λx②f(x)=e[Pl(x)cosωx+P n(x)sinωx]型kλx[Q m(x)cos ω x+R m(x)sin ωx][m=max﹛l ,n ﹜ ,k 按λ +i ω不是特色令 y*=x e方程的根或是特色方程的单根依次取0 或 1]再代入原方程 , 分别确定 Q (x) 和mR m(x) 的 m+1个系数附微分方程在物理学中的应用:⑴找准合适的研究对象⑵确定正确的数学模型⑶联列合理的微分方程⑷解出最正确的方程结果执笔:缪张华2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
Euler折线法举例(续)
解析解: y
2 5 3x e 2x 3 3
1/3
解析解
近似解
2012-8-6
14
Runge-Kutta 方法
为了减小误差,可采用以下方法:
让步长 h 取得更小一些; 改用具有较高精度的数值方法:
Runge-Kutta (龙格-库塔) 方法
16
四阶 R-K 方法源程序
clear; f=sym('y+2*x/y^2'); a=0; b=2; h=0.4; n=(b-a)/h+1; % n=(b-a)/h; x=0; y=1; szj=[x,y]; for i=1:n-1 % i=1:n l1=subs(f,{'x','y'},{x,y}); l2=subs(f,{'x','y'},{x+h/2,y+l1*h/2}); l3=subs(f,{'x','y'},{x+h/2,y+l2*h/2}); l4=subs(f,{'x','y'},{x+h,y+l3*h}); y=y+h*(l1+2*l2+2*l3+l4)/6; x=x+h; szj=[szj;x,y]; end plot(szj(:,1),szj(:,2), 'dg-')
ode23t 适度刚性 采用梯形算法 适度刚性情形 多步法;Gear’s 反向数值微 若 ode45 失效时,可 ode15s 刚性
分;精度中等 尝试使用
ode23s
ode23tb
2012-8-6
刚性 刚性
单步法;2 阶Rosebrock 算 当精度较低时,计算时 法;低精度 间比 ode15s 短 梯形算法;低精度 当精度较低时,计算时 间比ode15s短
2012-8-6
6
dsolve 举例
例: [x,y]=dsolve('Dx+5*x=0','Dy-3*y=0', ...
'x(0)=1', 'y(0)=1','t')
r = dsolve('Dx+5*x=0','Dy-3*y=0', ... 'x(0)=1', 'y(0)=1','t') 这里返回的 r 是一个 结构类型 的数据 r.x r.y %查看解函数 x(t) %查看解函数 y(t)
2012-8-6 22
数值求解举例
如果需求解的问题是高阶常微分方程,则需将其化为一阶常 微分方程组,此时需用函数文件来定义该常微分方程组。
d y dy 2 (1 y ) y 0 2 dt dt y ( 0 ) 1 , y '( 0 ) 0 , 7
2012-8-6 17
Runge-Kutta 方法
2012-8-6
18
Euler 法与 R-K法误差比较
2012-8-6
19
Matlab函数数值求解
[T,Y] = solver(odefun,tspan,y0)
其中 y0 为初值条件,tspan为求解区间;Matlab在数值求解 时自动对求解区间进行分割,T (向量) 中返回的是分割点的 值(自变量),Y (向量) 中返回的是解函数在这些分割点上的函 数值。
Matlab基础
第六讲
求微分方程的解
2012-8-6
1
问题背景和课程要求
自牛顿发明微积分以来,微分方程在描述事物运 动规律上已发挥了重要的作用。实际应用问题通过 数学建模所得到的方程,绝大多数是微分方程。 由于实际应用的需要,人们必须求解微分方程。 然而能够求得解析解的微分方程十分有限,绝大多 数微分方程需要利用数值方法来近似求解。 本节主要介绍求解微分方程(组)的 Matlab 命令. 研究如何用 Matlab 来计算微分方程(组)的数值解, 并重点介绍一个求解微分方程的基本数值解法-- Euler折线法。 2012-8-6 2
Euler 折线法源程序
clear f=sym(‘y+2*x/y^2'); a=0; b=2; h=0.4; n=(b-a)/h+1; % n=(b-a)/h; x=0; y=1; szj=[x,y]; for i=1:n-1 % i=1:n y=y+h*subs(f,{'x','y'},{x,y}); x=x+h; szj=[szj;x,y];%每循环一次矩阵szj增加一行 end szj plot(szj(:,1),szj(:,2),'or-')
其中
L1 L2 L3 L 4
2012-8-6
f ( x k , yk ) f ( x k h / 2 , y k h L1 / 2 ) f ( x k h / 2 , yk h L2 / 2 ) f ( x k h , y k h L3 )
10
dy dx x k
2012-8-6
y ( x k 1 ) y ( x k ) h
O (h)
初值问题的Euler折线法
具体步骤:分割求解区间,差商代替微商,解代数方程
分割求解区间
x k k 0 为分割点
n
等距剖分: a x 0 x 1 x 2 x n 1 x n b 步长:h x k 1 x k ( b a ) / n , 差商代替微商
Matlab提供的ODE求解器
求解器 ODE类型 特点 说明
ode45
非刚性
单步法;4,5 阶 R-K 方法;大部分场合的首选方法 累计截断误差为 (△x)3
ode23
ode113
非刚性
非刚性
单步法;2,3 阶 R-K 方法;使用于精度较低的情形 累计截断误差为 (△x)3
多步法;Adams算法;高低精 计算时间比 ode45 短 度均可到 10-3~10-6
x 0 0 , y0 1 y k 1 y k h f ( x k , y k ) y k h ( y k 2 x k / y k ) x k 1 x k h
当 h=0.4,即 n=5 时,Matlab 源程序见 fulu1.m
2012-8-6 12
solver 为Matlab的ODE求解器(可以是 ode45、ode23、
ode113、ode15s、ode23s、ode23t、ode23tb)
没有一种算法可以有效地解决所有的 ODE 问题,因此 MATLAB 提供了多种ODE求解器,对于不同的ODE, 可以调用不同的求解器。
2012-8-6 20
y ( x ) y ( x k ) ( x x k ) y '( x k ) O ( x )
2
y ( x k 1 ) y ( x k ) h y '( x k ) O ( h )
2
h x k 1 x k
y ( x k 1 ) y ( x k ) h
求解微分方程(组)的Matlab 命令
用 Maltab自带函数 求解 求解析解:dsolve 可求通解,也可求特解 求数值解:
ode45、ode23、 ode113、ode23t、ode15s、 ode23s、ode23tb
2012-8-6
3
dsolve 求解析解
dsolve 的使用
围为 [0,0.5]
fun=inline('-2*y+2*x^2+2*x','x','y'); [x,y]=ode23(fun,[0,0.5],1);
注:也可以在 tspan 中指定对求解区间的分割,如:
[x,y]=ode23(fun,[0:0.1:0.5],1); %此时 x=[0:0.1:0.5]
y(x 1 ), y ( x 2 ), , y ( x n ) 的相应近似值
2012-8-6
9
Euler 折线法
考虑一维经典初值问题
dy dx f ( x , y ) , y ( x 0 ) y0 , x [ a , b ]
基本思想:用差商代替微商
根据 Talyor 公式,y(x) 在点 xk 处有
2012-8-6
k = 0, 1, 2, ..., n-1 yk 是 y (xk) 的近似
11
Euler 折线法举例
例:用 Euler 法解初值问题
2x dy y 2 dx y y(0) 1 x [0, 2]
解:取步长 h = (2 - 0)/n = 2/n,得差分方程
y=dsolve('eq1','eq2', ... ,'cond1','cond2', ... ,'v') 其中 y 为输出, eq1、eq2、...为微分方程,cond1、 cond2、...为初值条件,v 为自变量。
例 1:求微分方程
dy dx
2 xy xe
x
2
的通解,并验证。
>> y=dsolve('Dy+2*x*y=x*exp(-x^2)','x') >> syms x; diff(y)+2*x*y - x*exp(-x^2)
t
% dy/dx = 2x % dy/dt = 2x