所以,我得到了这段代码来解决我的电路问题(编码spyder):from sympy.solvers import solvefrom sympy import Symbol, simplifyvo = Symbol("vo") #amplitude of output voltagevr = Symbol("vr") #amplitude of voltage rir = Symbol("ir") #amplitude of R-currentic = Symbol("ic") #amplitude of C-currentil = Symbol("il") #amplitude of L-currentr = Symbol("r") #resistanceomega = Symbol("omega") #angular frequencyc = Symbol("c") #capacitancel = Symbol("l") #inductanceeq1 = (vr + vo - 1, ir - ic - il, vr - ir*r, vo - ic/(1j*omega*c), vo - 1j*omega*l*il)sol = solve(eq1, (vo, vr, ir, ic, il))vos = simplify(sol[vo])print(vos)print(sol[vo])输出为:l*omega/(I*c*l*omega**2*r + l*omega - I*r)l*omega/(I*c*l*omega**2*r + l*omega - I*r)这是Vo我当前电路的解决方案然后我更改了一些部分,eq1因为我要解决Vo另一个电路的问题,如下所示:eq1 = (ir*(r + 1/ic + il) + vo - 1, ir - ic - il - vr/r, vr - ir*r, vo - ic/(1j*omega*c), vo - 1j*omega*l*il)eq1 是我唯一更改的部分,但是当我运行它时,会出现此错误:TypeError: list indices must be integers or slices, not Symbol有谁知道如何解决这个问题?
2 回答
LEATH
TA贡献1936条经验 获得超6个赞
从我所见,您尝试索引列表的唯一地方是在您致电时:
sol[vo]
vo
是 Symbol 类型的对象,但列表要求您使用整数(或切片),正如错误所暗示的那样。例如:
sol[5] sol[1:3]
因此,您需要先转换vo
为整数,然后再使用它来索引列表。
添加回答
举报
0/150
提交
取消