在 Matlab 中简化微分方程的求解

问题描述

我尝试了各种方法来简化以下微分方程的解,但无法将其完全简化为 0.01e^(-0.15t)sin(9.999t+1.556) 并且带部首的表达式也没有正确简化。有人可以解释一下如何在尽可能减少术语数量的情况下完全简化解决方案吗?

syms y(t) m k x c 

Dy = diff(y,t);
Dy2 = diff(y,t,2);  
m = 10; c = 3; k = 1000; 
ode = m*Dy2 +c*Dy + k*y == 0;
eqns = [ode]
cond = [y(0) == 0.01,Dy(0) == 0];
ySol(t) = dsolve(eqns,cond)
ySol(t) = simplify(ySol(t),'steps',500)
pretty(ySol(t)) 
vpa(ySol(t),5)
simplify(ySol(t))

解决方法

vpa函数的输出传递给simplify函数,如下:

vpa(simplify(vpa(ySol(t),3)),3)