主要内容

解决该常微分方程

这个页面包含两个解决该常微分方程使用的例子数值。MATLAB®有几个解决该常微分方程。

  • 数值

  • ode23

  • ode78

  • ode89

  • ode113

对于大多数该问题,数值表现最好的。然而,ode23建议允许略微粗糙的问题错误容忍或在温和的刚度。同样的,ode113可以更有效的比数值问题与更严格的公差错误或者当ODE函数计算昂贵的评估。ode78ode89解决高阶与长集成excel,精度稳定是至关重要的。

如果该方法解决需要很长时间才能解决问题或持续集成失败,那么可能的问题僵硬的。看到解决刚性常微分方程为更多的信息。

例如:该范德波尔方程

范德波尔方程是二阶的颂歌

$ $ y“_1 - \μ\离开(1 - y_1 ^ 2 \右)y ' _1 + y_1 = 0, $ $

在哪里美元\μ& # 62;0美元是一个标量参数。重写这个方程作为一个系统的一阶常微分方程进行替换$ y ' _1 = y_2美元。结果系统的一阶常微分方程

数组$ $ & # xA; \开始{}{cl} & # xA; y“_1 & # 38; = y_2 \ \ & # xA; y ' _2 & # 38; = \μ(1-y_1 ^ 2) y_2结束——y_1。\{数组}& # xA; $ $

常微分方程的系统必须被编码成一个函数文件,ODE求解器可以使用。一首颂歌的一般功能签名函数

dydt = odefun (t, y)

也就是说,函数必须接受ty作为输入,即使它不使用t对于任何计算。

函数文件vdp1.m代码范德波尔方程使用\μ= 1美元。的变量y_1美元y_2美元y (1)y (2)和二极列向量dydt包含表达式y ' _1美元y ' _2美元

函数dydt = vdp1 (t, y)% VDP1评估μ= 1的范德堡尔常微分方程%%参见ODE113 ODE23,数值。% Jacek Kierzenka和劳伦斯·f·Shampine% 1984 - 2014版权MathWorks公司。dydt = [y (2);(1 y (1) ^ 2) * y (2) - y (1)];

解决ODE使用数值时间间隔的函数20 [0]与初始值[2 0]。输出是一个列向量的时间点t和一系列的解决方案y。在每一行y对应于一个时间返回相应的行t。第一列的y对应于y_1美元,第二列y_2美元

[t、y] =数值(@vdp1 20 [0], [2;0]);

画出解决方案金宝搏官方网站y_1美元y_2美元t

情节(t y (: 1),“o”、t、y (:, 2),“o”)标题(解决方案的范德波尔方程(\μ= 1)采用数值的);包含(“t”);ylabel (“解决方案y”);传奇(“y_1”,“y_2”)

vdpode函数解决了相同的问题,但是它接受用户指定的值\μ美元。范德波尔方程变得僵硬\μ美元增加。例如,值\μ= 1000美元你需要使用一个硬解算器等ode15s解决系统。

例如:该欧拉方程

刚体的欧拉方程没有外力颂歌的标准测试问题解决者针对该问题。

方程是

数组$ $ \开始{}{cl} y ' _1 & # 38; = y_2y_3 \ \ y ' _2 & # 38; = y -y_1y_3 \ \ ' _3 & # 38; = & # xA; -0.51 y_1y_2。\{数组}$ $

函数文件rigidode定义和解决这一阶方程组的时间间隔[0 12],使用向量的初始条件[0;1;1]对应的初始值y_1美元,y_2美元,y_3美元。当地的函数f (t, y)编码的系统方程。

rigidode调用数值没有输出参数,解算器使用默认的输出函数odeplot每一步完成后都要自动绘制解决点。

函数rigidode% RIGIDODE欧拉方程的一个没有外部力量的刚体。%的标准测试问题non-stiff克罗提出的解决者。的%解析解是雅可比椭圆函数,金宝搏官方网站可访问% MATLAB。这里的时间间隔大约是1.5期;那就是的%的金宝搏官方网站解决方案绘制于p。243年Shampine和戈登。%% l . f . Shampine和m·k·戈登的普通计算机的解决方案%的微分方程,w•h•弗里曼& Co ., 1975年。%%参见数值,ODE23 ODE113 FUNCTION_HANDLE。马克·w·Reichelt和劳伦斯·f·Shampine % 3-23-94, 4-19-94% 1984 - 2014版权MathWorks公司。tspan = [0 12];y0 = [0;1;1);%解决问题采用数值图;数值(@f tspan, y0);% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -函数dydt = f (t、y) dydt = [(2) * y (3) - y y (3) (1) * -0.51 * (1) * y (2)];

通过调用该方法欧拉方程组的求解rigidode函数。

rigidode标题(解决方案的刚体w / o外力采用数值的)传说(“y_1”,“y_2”,“y_3”,“位置”,“最佳”)

另请参阅

||||

相关的话题