Sympy 运行时不提供给定初始条件的解决方案

问题描述 投票:0回答:1

我有两个微分方程正在尝试求解。如果我不包括初始条件,在我的计算机上运行下面的代码大约需要一个小时,然后它才会输出一个很长的方程。几个小时后在初始条件下运行代码时我还没有看到任何解决方案。我是不是做错了什么?

import sympy as sp

# solve = False

r1 = 3570
r2 = 3570
r3 = 6e6
c1 = 200e-12
c2 = 200e-12
c3 = 120e-12

t = sp.symbols("t")

V0 = sp.Function('V0')(t)
V1 = sp.Function('V1')(t)
V2 = sp.Function('V2')(t)

dV1 = sp.Derivative(V1, t)
dV2 = sp.Derivative(V2, t)

R1, R2, R3, C1, C2, C3 = sp.symbols("R1 R2 R3 C1 C2 C3")

eq1 = sp.Eq((C1 + C3)*dV1 + ((1/R1) + (1/R3))*V1 + (-C3)*dV2 + (-1/R3)*V2, (1/R1)*V0)
eq2 = sp.Eq((C3)*dV1 + (1/R3)*V1 + (-C3 - C2)*dV2 + (-1/R2)*V2, 0)

sol = sp.dsolve([eq1, eq2], [V1, V2], ics={V1.subs(t,0): 0, V2.subs(t, 0): 0})

# print(sp.latex(sol[1].subs({"R1": r1, "R2": r2, "R3": r3, "C1": c1, "C2": c2, "C3": c3})))

print(sp.latex(sol[1]))

我尝试过简化和删除部分问题以降低复杂性,但我已经达到了可以删除的极限。

我发现this问题有一条评论建议使用wolfram alpha,但我不相信wolfram可以象征性地求解这种形式的微分方程组。 Wolfram Alpha 截图

python math sympy wolfram-mathematica symbolic-math
1个回答
0
投票

我不确定我的计算是否完全正确,但 Mathematica 在大约六秒内返回该值。

R1=3570;R2=3570;R3=6*10^6;
C1=200*10^-12;C2=200*10^-12;C3=120*10^-12;
InputForm[Simplify[DSolve[{
  (C1+C3)*V1'[t]+(1/R1+1/R3)*V1[t]-C3*V2'[t]-1/R3*V2[t]==1/R1*V0,
  C3*V1'[t]+1/R3*V1[t]+(-C3-C2)*V2'[t]-1/R2*V2[t]==0,
  V1[0]==0,V2[0]==0}, {V1[t], V2[t]},t]]]

InputForm= {{
  V1[t]->(200000*(-4488407412700000-20810839*Sqrt[89768148254]+
  (-4488407412700000+20810839*Sqrt[89768148254])*
   E^((10000*Sqrt[89768148254]*t)/3927)+8976814825400000*
   E^((2500*(1600119+2*Sqrt[89768148254])*t)/3927))*V0)/
   (1796430570440848887553*E^((2500*(1600119 + 2*Sqrt[89768148254])*t)/3927)), 
  V2[t]->(100000*(-5341204821113-29970235839*Sqrt[89768148254]+ 
  (-5341204821113+29970235839*Sqrt[89768148254])*
   E^((10000*Sqrt[89768148254]*t)/3927)+10682409642226*
   E^((2500*(1600119+2*Sqrt[89768148254])*t)/3927))*V0)/
   (1796430570440848887553*E^((2500*(1600119+2*Sqrt[89768148254])*t)/3927))}}

在您考虑相信之前请仔细检查。

输入的长度超出了 WolframAlpha 免费版本的限制,所以我无法检查它是否可以做类似的事情。

© www.soinside.com 2019 - 2024. All rights reserved.