从系列:在MATLAB中求解ode
克里夫硅藻土,MathWorks
将含有高阶导数的常微分方程改写为只含有一阶导数的向量系统。以经典的范德波尔非线性振子为例。随着参数的增加,VdP方程变得僵硬。
许多数学模型都涉及高阶导数。但MATLAB ODE求解器仅适用于一阶常微分方程系统。所以我们必须重写模型只考虑一阶导数。我们来看看如何用一个非常简单的模型来做,谐振子。
x ' ' + x = 0。这涉及到二阶导数。为了把它写成一阶系统,我们引入了向量y,它有两个分量,x和x的导数。
我们只是改变了符号让y有两个分量,x和x 'y的导数是关于x和x ' '的向量。所以微分方程变成了y2 ' + y1 = 0。你们看到我们是怎么重写这个微分方程的了吗?y '等于x ' '吗?
一旦你做到了这一点,其他的事情就简单多了。向量系统现在是y1 y2 '是y2 - y1。第一个分量说y1 '是y2。这就是说第一项的导数是第二项。这是微分方程本身。Y2 '是- y1是谐振子微分方程。
当我们写这篇文章,作为MATLAB的自治功能,这里的自治功能。f是吨和y的自主功能,即不依赖于吨。首先,它现在是一个向量,列向量。f的第一组分是Y2。而第二部分是-Y。
这里的第一个分量只是一个符号问题。所有的内容都在表示微分方程的第二部分。
对于一些初始条件,假设初始条件是x (0) = 0, x '(0) = 1。对于向量y,这是y1 (0) y的第一个分量是0。第二个分量是1。
或者用向量来表示,初始向量是。这意味着它们的解是sint和cost,当我们在MATLAB中写出初始条件时,它是列向量。
让我们打开MATLAB命令窗口。这是微分方程。y1 '是y2。y2 '是-y1。这是谐振子。
我们将整合从0到2PI,因为他们是三角函数。我要去超过36索要输出2 pi的步骤,它相当于每10度像在机场跑道。
我将需要一个初始条件。Y0为0。我需要一个列向量,0,1,对于两个组件。我将使用ODE45,如果我不带输出参数,微分方程F,T跨越的时间间隔ODE45和Y0初始条件调用它。
如果我打电话ODE45没有输出参数,它只是自动绘制的解决方案。在这里,我们得到从1开始的余弦吨图表,从0开始正弦吨。
现在,如果我回到命令窗口,要求捕捉t和y表示的输出,我就会得到输出的向量。37步,向量t,和两个分量y,这两列包含sin和cos。现在我可以把它们画在相平面上。
密谋ya对抗y2。如果我将坐标轴规格化,我将得到一个每10度带有小圆圈的漂亮的圆的图形,正如我所说的,就像机场的跑道一样。
范德波尔振荡器是在1927年由一位荷兰电气工程师引入的,用于建立一个包含真空管的电路的振荡模型。它有一个非线性阻尼项。此后,它被用于建模各种领域的现象,包括地质学和神经学。
它表现出混乱的行为。我们对它感兴趣是为了进行数值分析,因为随着参数mu的增加,问题变得越来越棘手。为了把它写成一阶系统,用于MATLAB ODE求解器,我们引入了包含x和x '的向量y。
y '等于x '和x ' '然后把微分方程写成y '的第一个分量是y2。然后微分方程是y的第二个分量。
这是非线性阻尼项- y1。当为0时,它变成谐振子。这是匿名函数。
让我们运行一些实验用范德波尔振荡器。首先,我必须定义亩的价值。我来接亩的适度值。穆等于100现在与万亩设置,我可以定义匿名函数。
它包含一个值。这是f的第二个分量中的范德波尔方程,我将收集关于ODE求解器工作的统计数据。为此,我将使用ODE set,告诉它我要打开stats。
我需要一个初始条件。现在我要在这个问题上运行ODE45。我指定了t的起始值,和t的最终值ODE45会选择它自己的时间步长。我知道t的终值是460,它会对解的两个周期积分。
现在我们可以看一会儿。它采取了很多步骤。随着需要的步骤越来越多,速度开始放缓。现在它开始变得非常缓慢因为它开始变得僵硬。
我先把摄像机关掉一会儿,这样你就不用看这些步骤了。我们想要达到460。等快结束的时候我再把它打开。
好吧,摄像机已经关了三分钟了。你可以看到我们已经走了多远。我们离终点还远着呢。我要按下停止键。回到命令窗口。
呵呵,所以我们没有到达终点这里。让我背过的时间间隔,在这里试试这个值。请参阅如何工作的。因此,这将仍然需要很多步骤。
但是,我们将能够中场休息这将大大超过约一个周期。我们将真正得到这里结束。
我把摄影机开着,直到我们拍完。这花了不到一分钟的时间。它走了近15000步。让我们用一种强硬的解决方案来运行它。
在那里。所以只用了半秒,500步。这里有一个关于刚性的例子。让我们用stiff求解器来检验范德波尔方程。让我们捕获输出并绘制它。
因为情节不是很有趣。我想用几种不同的方法来画它。再一次,我想回到——捕捉几个周期。
我们把当前的一个分量作为时间的函数画出来。这就是。这是范德波尔方程。
你可以看到它有一个初始的暂态,然后它就变成了这个周期振荡带有这些非常陡峭的尖峰。即使是这个顽固的解决者也在这些快速变化中努力工作。我们已经得到了相当多的点,它选择了步长。
现在,让我们回到命令行,做一个相平面情节。因此,这里的这个振荡阻尼的相平面情节。而且它远不及一个圆,它是,如果亩为0。
这是范德波尔振荡器的特征行为。