我怎么能确定一个象征性的微分方程的顺序?
34视图(30天)
显示旧的评论
我写一个函数,它接受一个符号形式的微分方程作为参数,我想确定方程的某些变量的顺序。
示例1
一阶系统:
信谊t s y (t) u R (t) L
diff_eqn = R * y (t) + L * diff (y (t) t) = = u (t);%的微分方程
订单(关于
y (t))是1。
示例2
一个二阶系统:
信谊t s y (t) u (t) omega_n z K
diff_eqn = 1 / omega_n ^ 2 *差异(t y (t), 2) + 2 * z / omega_n * diff (y (t), t) + y (t) = = K * u (t);
订单是2。
我还想知道订单w.r.t. u (t)如果可能的话一般来说可能不是0。
0评论
接受的答案
Ayush古普塔
2020年9月10日
不存在直接的函数来确定微分方程的阶。然而,有一个解决方案,我们可以使用reduceDifferentialOrder newvars从我们得到最后一个元素,可以看到t的发生,这是一个加比的方程。参考下面的代码:
信谊x (t) y (t) f (t)
方程式= [diff (x (t), t, t) = = diff (f (t), t, t, t), diff (y (t), t, t, t) = = diff (f (t), t, t)];
var = [x (t), y (t));
[newEqs, newVars R] = reduceDifferentialOrder(方程式一样,var)
l =长度(newVars);
s =字符串(newVars (l, 1));
order_of_equation = count(年代,“t”)1;
1评论
保罗
2023年4月2日
有点容易打交道,如果搭配的常微分方程的问题,至少找到ODE的顺序
信谊t s y (t) u R (t) L
diff_eqn = R * y (t) + L * diff (y (t), t) = = u (t)%的微分方程
% (w.r.t. y (t))的顺序是1。
元素个数(odeToVectorField (diff_eqn))
%例2一个二阶系统:
信谊t s y (t) u (t) omega_n z K
diff_eqn = 1 / omega_n ^ 2 *差异(t y (t), 2) + 2 * z / omega_n * diff (y (t), t) + y (t) = = K * u (t)
元素个数(odeToVectorField (diff_eqn))
找到订单关于u (t)需要更多的工作。