如果微分方程的定解条件通解有条件(x>0) 那么这个解是通解还是通解的一部分?

中给出部分解包含的是时间值。还有部分解在矩阵x中给出x的列向量每

个方程在这些值下的解。对于标量问题方程的解将在向量x中给出。这些解

在时间区间t(1)到t(2)上计算嘚到其初始值是x0 即x(t(1)).此方程组有str 指定的

M文件中函数表示出。这个函数需要两个参数:标量t 和向量x, 应该返回向量

x’(即x的导数)因为对标量ODE来說,x和x’都是标量在M文件中输入odefile

可得到更多信息。同时可以用命令numjac来计算Jacobi函数

有许多设置对odeset控制的ODE解是有用的,参见表1例如,如果偠在求解过程中画出解的图形可以

OutputFcn 这是一个带有输入函数名的字符串,该字符串将在求解函数执行的每步被调用:odephas2(画出2D

OutputSel 是一个整型向量指出哪些元素应该被传递给函数,特别是传递给OutputFcn

Jconstant…如果雅可比数df/dy是常量则将此参数设置为on

MaxStep…   此参数是限定算法能使用的区间长度上限嘚标量

InitialStep…   给出初始步长的标量。如果给定的区间太大算法就使用一个较小的步长

BDF…   此参数只能被ode15s使用,如果倒推微分公式而不是用通常所使用的微分公式则要将它设置为

总结一下MATLAB中求解微分方程的定解条件思路和步骤。MATLAB中的帮助文件内容实在是特别给力,简明的不能洅简明了可惜了是英文写的,即使是天天要面对英语的我也颇为头疼。那么以下我将结合我对MATLAB中帮助文档的理解提出我对求解最简單微分方程的定解条件方法的总结。以求解一个经典的非线性方程为例

一求解一下这个方程,判断她是否稳定要是稳定,那么她是否存在极限环;

二.一般的计算机求解方程的方法:

首先把该方程改写成一个规范的形式一般使用状态空间表示法;

调用已有的算法进行求解;

最后对得出的结果进行处理,比如画图之类的

三.输入待求解的方程。

MATLAB中关于输入输入待解方程的语句特别简单需要先定义一个普通函数,函数名任意姑且叫做myFcn,格式如下

需要注意的是函数必须含有t, x两个参数,名称可以自己任意定xdot是这个函数本身的返回值,只出現在这个函数内部因此也可以任意定。

定义中的x被视为是一个列向量x(i)表示列向量中的第i个分量。那么F函数的每一个分量即简单地用表達时给出即可其中的自变量可以引用x(i)。以范德普方程为例:

于是这两句话便构成了待解函数。

四.调用MATLAB函数进行求解

通常人工求解微分方程需要知道初始值计算机求解也不例外。另外由于非线性方程一般只有数值解,故计算精度也可以调整这些都是可以自己调整的參数。

调用MATLAB计算求解常微分方程的定解条件模式很简单格式为:

注意到求解出来的结果是[t, x]即一堆数,所以需要我们进行后处理比如画图の类的

ode45表示了MATLAB中的一种内置计算微分方程的定解条件算法,最为常用出于娱乐目的,就先用这个

@表示待求解的方程,如myFcn

[开始时间 結束时间]表示求解的时间段,不必定义间隔

[初始值列向量]就不用多说了。通常在求解之前定义一个变量x0列向量表示初始值然后输入起來就方便多了。

options本身是一个变量注意,她的名称不固定但是他是一个以结构体为类型的变量。options很重要稍后讨论。

五.进行后处理在嘚到[t, x]后可以自己用plot神马的进行画图。

意思是options这个变量要用到odeset这个函数来对他进行赋值。而odeset这个函数的参数必须是成对出现的:一个名称對应一个数值

我们要用到的是这样的:

注意,odeset中的参数名称不可任意定因为都是预定义好的。”OutputFcn”使用预定义的函数进行输出而与萣义的函数有好几种,使用@进行选择我们选odephas2即画相平面图(phase portrait)。之后的那个参数表示相对误差的最大允许值不说也明白。

有一个问题用odephas2畫出的图图不好看,因为上面打了好多圈圈解决办法是找到该文件,修改其中所有的plot语句即可把那个”-o”去掉就行了。

}

结合MATLAB偏微分方程数值解工具箱介紹偏微分方程的定解条件求解分GUI和MATLAB函数两种实现方式进行介绍。

}

我要回帖

更多关于 微分方程的定解条件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信