首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SymPy迭代求解不同参数值的相同方程

用SymPy迭代求解不同参数值的相同方程
EN

Stack Overflow用户
提问于 2018-04-13 10:08:15
回答 1查看 598关注 0票数 1

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

代码语言:javascript
复制
'''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值,因为它已经被替换了。

代码语言:javascript
复制
Vuvlo = solve(Eq_uvlo.subs({Renb:9.1}), Vuvlo)

有什么更好的方法来做这样的计算吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-13 20:01:44

您将Renb作为符号,但随后给它分配了一个值。这意味着你失去了那个符号,你已经没有把柄了。使用不同的Python变量来保存与该符号相关的任何数值,如下面的Renb_sol

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

代码语言:javascript
复制
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)

版画

代码语言:javascript
复制
8902.46803449301
7.85400000000000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49814487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档