Я столкнулся с проблемой при использовании "dsolve". Вот мой код:
syms Vs(x) w l C phi Vcc Vr
q= 1/(w*sqrt(l*C));
ode = w*w*l*C*diff(Vs,x,2)+Vs==Vcc-Vr*sin(x+phi); % non-homogenous second order DE
Vs = dsolve(ode,x,'IgnoreAnalyticConstraints',1);
Vs= simplify(Vs);
pretty(Vs)
Это дает комплексное решение, которое после некоторого упрощения с рукой дает следующее:
Vs(x)= (q^2/(1-q^2))*Vr*Sin(phi+x) - Vcc - C5*cosqx - i*C5*Sinqx - C6*cosqx + i*C6*sinqx
Если DE решается вручную, это дает следующее:
V(x)= C1*cos(q*x) + C2*sin(q*x) + Vcc + (q^2)/(1-q^2)*Vr*sin(phi+x)
Ожидаемое решение, рассчитанное вручную, не содержит мнимой части. Более того, решение, данное dsolve, не полностью соответствует ожидаемому. Я не понимаю, где я делаю неправильно. Пожалуйста, помогите мне отладить это.