从符号常微分方程中删除冗余部分的推荐方法

问题描述 投票:0回答:1

我正在使用称为'dsolve'的MATLAB工具来解决ODE,但由于我有很多疑问,所以无法解决。就像我的情况一样,我只需要第2个方程,但是我有4个。问题是如何使用符号工具将其删除。

odequations = [diff(h(t), t, t) == (26*h(t))/25 
                   (11683563954355*theta(t))/1099511627776;

         diff(theta(t), t, t) == (4296857747895619*theta(t))/562949953421312 - 
           (400*h(t))/1043;

         0 == 0;

         0 == 0]

我尝试过简化(折旧),但没有成功。

我的错误消息如下所示。

Error using mupadengine/feval (line 187)
Invalid initial conditions.

Error in dsolve>mupadDsolve (line 340)
T = feval(symengine,'symobj::dsolve',sys,x,options);

Error in dsolve (line 194)
sol = mupadDsolve(args, options);
matlab ode
1个回答
2
投票

您可以使用isAlways删除多余的方程式。

isAlways

>> syms a >> eqs = [a == 10; a == a; 0 == 0]; >> eqs(isAlways(eqs)) = [] eqs = a == 10 将对非冗余的方程式发出警告,您可以通过调用以下方法来加以抑制:

isAlways
© www.soinside.com 2019 - 2024. All rights reserved.