dsolve:方程数量大于不确定的数量。启发式试图减少广场系统。

16个视图(30天)
我试图解决一个微分方程组。我有5个微分方程和5功能。定义的函数。
清晰;
clc;
信谊u (t)λ₁(t) lambda2 (t) x1 (t) x2 (t)
ode1 = u + lambda2 = = 0;
ode2 = x2 = = diff (x1, t);
ode3 = x1 + (1 x1 * x1) * x2 + u = =差异(x2, t);
ode4 x2 = 2 * x1-lambda2-2 * * lambda2 * x1 = =选项(λ₁,t);
ode5 = x2 +λ₁x1 + lambda2-lambda2 * * x1 = =选项(lambda2 t);
常微分方程= [ode1 ode2、ode3 ode4, ode5);
dsolve(常微分方程)
错误的宣称我已经比不定方程。为什么会出现这样的情况?我有5个微分方程和5不确定的函数(u,λ₁,lambda2 x1, x2)。我没有初始条件和好的结果未定义的常量。
感谢任何帮助。

接受的答案

约翰D 'Errico
约翰D 'Errico 2023年3月1日
编辑:约翰D 'Errico 2023年3月1日
ode1是微分方程吗?(没有。ode1是一个代数变量之间的关系。)例如,信用卡诈骗罪这简单的问题,只是组成。我不知道它有一个解决方案,我不在乎。
信谊x (t)
信谊u
ode1 = u ^ 2 + 2 + x = = 5
ode1 (t) =
ode2 = diff = = u (x, 1);
dsolve (ode1 ode2)
警告:方程数量大于不确定的数量。启发式试图减少广场系统。
错误使用mupadengine / feval_internal
广场系统因为无法减少方程不同于不确定的数量。

错误dsolve > mupadDsolve(第334行)
T = feval_internal (symengine symobj:: dsolve, sys, x,选项);

错误dsolve(第203行)
索尔= mupadDsolve (args,选项);
关键是,dsolve不是DAE的能手,但你有一个微分代数方程组,dsolve放弃,产生相同的消息。
我能解决这个问题,通过消除的一个变量,使用第一个方程吗?似乎肯定会这样,就像你可以尝试相同的。
你的问题,你可能会取代lambda2 ((t) - u (t)到处都是。现在,解算器只能看到4方程和4未知函数。我很知己,它可能会失败,因为系统是一个非线性,dsolve很可能是无法解决的。如果是这样,那么你唯一的选择将是提供初始值,然后使用一个数值解算器。或者,您可以使用其他解决方案技术终于获得一些对系统的行为的理解。

更多的答案(0)

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!