0

我已经定义了以下 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))

两者都是正确的解决方案,但有没有办法达到我想要的解决方案?

4

2 回答 2

0

我认为实际的答案是:不,你不能让 MATLAB 达到你想要的解决方案。

查看 dsolve 输入时,没有选项可以指定输出的外观。这只是一个猜测,但这可能是因为很难将您想要的样式转换为代码。

唯一可能会有所不同的是您编写输入公式的方式,但我怀疑它不会有太大的不同。

另一方面,学术上的答案是:一切皆有可能,但您可能需要制作自己的 dsolve 函数。

于 2013-01-24T09:21:40.190 回答
0

问题是手动解决方案vc(t) = Vin +vc0*exp(-t/(C1*R1))不正确。该解决方案具有vc(0) = Vin + vc0不等于vc0,因此这就是您的解决方案不同的原因。有一个定理表明具有初始条件的一阶线性 ODEvc(t_0) = ...恰好有一个解。我建议您仔细完成您的步骤。

于 2013-12-02T19:17:50.330 回答