所以我想解决这些等式
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}]
象征性地,我想把R,L和C作为一个正实数整数,但解决方案总是带有想象器部分是否还有其他方法使用dsolve
答案 0 :(得分:0)
假设变量大于零意味着变量也是Real。整数不会帮助你解决这个问题。
如果R,L和C大于零且小于无穷大,则将两边相乘以消除分母将大大加快并简化Mathematica中的几乎任何计算。
如果你有一些简单的初始条件,它会更简单,也许更快。
这摆脱了Vc中的虚部和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]
而且速度相当快。
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,在该结果中有更多潜在的复杂值,然后必须进一步简化以获得Real结果,无论如何。