MATLAB:symfun的符号积分

时间:2014-11-25 15:26:10

标签: matlab symbolic-math integral

我希望随着时间的推移进行符号整合;代码如下。

syms x1 u1 t
x1 = symfun(sym('x1(t)'), [t]);
x1dot = p1 + p4*p8 - p13*x1;
int(x1dot,t)

答案应该是:

e^(-p13*t)*x1(0)+(p1 + p4*p8)/(-p13)*[1-e^(-p13*t)]

我得到的是:

Warning: Explicit integral could not be found. 

ans(t) =

int(p1 - p13*x1(t) + p4*p8*u1(t), t)

在我看来,它不承认x1dotx1的衍生物。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您要做的不是严格意义上的整合,即来自已知函数f(t)推导出函数F(t),使F的导数为f。原始函数并不是真正知道的,因为它取决于它自身(无论这种关系对人类看起来多么微不足道,你都需要反过来)。

而是求解微分方程for which dsolve is probably the way to go。 MATLAB无法猜测x1dotx1的衍生物。我想您可以声明x1dot=diff(x1),但为什么不直接在需要的地方使用diff(x1)