2013-01-23 68 views
0

我已經定義了以下ODE爲什麼我用dsolve得到不同的答案?

syms R1 C1 vc0 Vin 
Vc_ode = 'Dvc+vc/(R1*C1)=(Vin)/(R1*C1)'; 
Vc=dsolve(Vc_ode,'vc(0)=vc0','t'); 

和我收到的解決方案是

​​

而手動解決我得到

Vin +vc0*exp(-t/(C1*R1)) 

都是正確的解決方案,但有什麼辦法達到我想要的解決方案?

+1

您在解決方案中忘記了一個減號... – bla

+0

其錯字... minus t。原始語法是vc0/exponent – YNWA

回答

0

我認爲實際答案會是:不,你不能讓MATLAB達到你想要的解決方案。

在查看dsolve輸入時,沒有選項可以指定輸出應該是什麼樣子。這只是一個猜測,但這可能是因爲很難將你想要的風格轉換成代碼。

唯一可能會有所不同的是您編寫輸入公式的方式,但我會懷疑它不會產生太大的變化。

另一方面,學術答案會是:一切皆有可能,但您可能需要自己創建dsolve函數。

0

問題是手動解決方案vc(t) = Vin +vc0*exp(-t/(C1*R1))不正確。該解決方案的vc(0) = Vin + vc0不等於vc0,所以這就是您的解決方案不同的原因。有一個定理說明一個初始條件如vc(t_0) = ...的一階線性ODE只有一個解。我建議你仔細檢查你的步驟。

相關問題