2014-11-02 13 views
-1

所以我要如何assing係數肯定和實際使用dsolve

FullSimplify[DSolve[{iL''[t] + iL[t]/(C*L) == Vc[t]/(C*L*R), 
C*Vc''[t] + Vc'[t]/R + Vc[t]/L == Vin/L}, {iL[t], Vc[t]},t] 
{{C, L, R} \[Element] Reals && C >= 0 && L >= 0 && R >= 0}] 

符號解決這些方程,我想assing R,L和C作爲正的實整數,但該解決方案總是帶有一個imaginer部分是否有其他方式使用dsolve

回答

0

假設變量大於零意味着該變量也是實數。整數不會幫助你解決這個問題。

如果R,L和C大於零且小於無窮大,那麼乘兩邊以消除分母將大大加快並簡化Mathematica中的幾乎任何計算。

如果你有一些簡單的初始條件,它會更簡單,也許更快。

這得到了IL

Simplify[ExpToTrig[DSolve[{ 
    iL''[t]*C*L*R + iL[t]*R == Vc[t], 
    Vc''[t]*C*L*R + Vc'[t]*L + Vc[t]*R == Vin*R}, 
    {iL[t], Vc[t]}, t]], 
L > 0 && C > 0 && R > 0] 

排除在VC虛部和幾乎所有的虛部,這是相當快的。

FullSimplify慢得多,但如果你等待它,那麼結果是

{{iL[t] -> (E^(-(t/(2 C R))) (L Sqrt[L - 4 C R^2] (C[3] + C R C[4]) 
Cosh[(Sqrt[1 - (4 C R^2)/L] t)/(2 C R)] + E^(t/(2 C R)) Sqrt[L - 4 C R^2] 
(L Vin - L (-R C[1] + C[3] + C R C[4]) Cos[t/Sqrt[C L]] + Sqrt[C L] R 
(L C[2] + C[3]) Sin[t/Sqrt[C L]]) + Sqrt[L] ((L - 2 C R^2) C[3] + C L R C[4]) 
Sinh[(Sqrt[1 - (4 C R^2)/L] t)/(2 C R)]))/(L R Sqrt[L - 4 C R^2]), 
Vc[t] -> ((L - 4 C R^2) Vin + E^(-(t/(2 C R))) ((L - 4 C R^2) C[3] 
Cosh[(Sqrt[1 - (4 C R^2)/L] t)/(2 C R)] + Sqrt[L (L - 4 C R^2)] 
(C[3] + 2 C R C[4]) Sinh[(Sqrt[1 - (4 C R^2)/L] t)/(2 C R)]))/(L - 4 C R^2)}} 

取決於是否L大於或等於4 CR^2中有更多的潛在複雜的值結果,然後將不得不進一步簡化以獲得實際結果,無論單向還是其他。