用SymPy迭代计算,求解同一方程的不同参数值

2024-09-21 03:20:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用sympy进行电子设计计算。我有一个方程,我对某些电阻值进行了求解。我只能使用标准电阻值,所以我在等式中再次设置choosen值,并得到最终结果。在

'''Example calculations for LMZ22010 switching regulator'''
from IPython import get_ipython
get_ipython().magic('reset -sf')

from sympy.solvers import solve
from sympy import Symbol, Eq, symbols, var

syms = ['Rent, Renb, Vuvlo']

var(','.join(syms))

Eq_uvlo = Eq(Rent/Renb, (Vuvlo/1.274) -1).subs({Rent:47e3, Vuvlo:8})
Renb = solve(Eq_uvlo, Renb)[0]
print(Renb)
>>> 8902.46

现在我想试试9100。 但我无法计算最终的Vuvlo值,因为它已经被替换了。在

^{pr2}$

有没有更好的方法,做这样的计算?在


Tags: fromimportgetvaripythoneqsympysolve
1条回答
网友
1楼 · 发布于 2024-09-21 03:20:55

您将Renb作为符号,但随后为其赋值。这意味着你失去了那个符号,你再也无法控制它了。使用不同的Python变量保存与该符号相关的任何数值,如下面的Renb_sol。在

另外,数值的代换可以在以后进行,在之后得到解。这允许您使用相同的方程求解不同的变量。在

Eq_uvlo = Eq(Rent/Renb, (Vuvlo/1.274) -1)
Renb_sol = solve(Eq_uvlo, Renb)[0].subs({Rent: 47e3, Vuvlo: 8})
print(Renb_sol)
Vuvlo_sol = solve(Eq_uvlo, Vuvlo)[0].subs({Rent: 47e3, Renb: 9100})
print(Vuvlo_sol)

印刷品

^{pr2}$

相关问题 更多 >

    热门问题