我定义了以下ODE
syms R1 C1 vc0 Vin
Vc_ode = 'Dvc+vc/(R1*C1)=(Vin)/(R1*C1)';
Vc=dsolve(Vc_ode,'vc(0)=vc0','t');
我收到的解决方案是
Vin - (Vin - vc0)/exp(t/(C1*R1))
手动解决时我得到了
Vin +vc0*exp(-t/(C1*R1))
两者都是正确的解决方案,但有没有办法达到我想要的解决方案?
答案 0 :(得分:0)
我认为实际答案将是:不,你不能让MATLAB达到你想要的解决方案。
查看dsolve输入时,没有选项可以指定输出的外观。这只是猜测,但这可能是因为很难将您想要的风格转换为代码。
唯一可能产生影响的是您编写输入公式的方式,但我怀疑它不会产生太大的影响。
另一方面,学术答案将是:一切皆有可能,您可能需要制作自己的dsolve功能。
答案 1 :(得分:0)
问题是手动解决方案vc(t) = Vin +vc0*exp(-t/(C1*R1))
不正确。该解决方案的vc(0) = Vin + vc0
不等于vc0
,因此这就是您的解决方案不同的原因。有一个定理表明具有像vc(t_0) = ...
这样的初始条件的一阶线性ODE只有一个解。我建议你仔细检查一下你的步骤。