Python 方程的辛弦
我正在和sympy一起做一个项目。我想在JSON文件中保存一些等式。它们保存为字符串(例如:“R*C*1.1,ti”)。我曾尝试将字符串转换为方程式(使用sy.S()和sy.Eq()),但没有成功 这是我的密码:Python 方程的辛弦,python,sympy,Python,Sympy,我正在和sympy一起做一个项目。我想在JSON文件中保存一些等式。它们保存为字符串(例如:“R*C*1.1,ti”)。我曾尝试将字符串转换为方程式(使用sy.S()和sy.Eq()),但没有成功 这是我的密码: import sympy as sy def solve(): R = sy.S(2) C = sy.S(1) ti = sy.S("ti") equation = sy.Eq(sy.S("R * C * 1.1, ti")
import sympy as sy
def solve():
R = sy.S(2)
C = sy.S(1)
ti = sy.S("ti")
equation = sy.Eq(sy.S("R * C * 1.1, ti"))
solution = sy.solve(equation, manual = 1)
print(solution)
solve()
我得到了这个警告和一个空的解决方案(当我用一个普通公式交换字符串时,它可以工作):
自SymPy 1.5以来,rhs默认值为0的Eq(expr)已被弃用。
改用Eq(expr,0)。看见
更多信息
已弃用,\u因为\u version=“1.5”
[]
有几个问题:
不查看现有变量,而是创建自己的变量,这些变量恰好具有外部名称“R”、“C”和“ti”sy.S(“R*C*1.1,ti”)
创建一个元组sy.S(“R*C*1.1,ti”)
(R*C*1.1,ti)
需要两个参数:方程的左侧和右侧。Symphy的旧版本也只喜欢左侧,并将右侧想象为sy.Eq()
。这仍然有效,但强烈反对,因为它在未来的版本中不再有效0
- 对于
,sy.Eq只有一个参数(一个元组)。sy.Eq(sy.S(“R*C*1.1,ti”)
- 为了将元组转换为参数,Python现在使用:
调用带有两个参数的func(*(a,b))
。另一方面,func(a,b)
调用只有一个参数的func((a,b))
,元组func
(a,b)
- 要为通过sy.S(“R*C*1.1,ti”)获得的变量赋值,可以使用将字符串映射到值的字典
- 虽然
和True
在内部表示为False
和1
,但强烈建议显式使用名称。除此之外,这有助于提高代码的可读性和可维护性0
将sympy导入为sy
def solve():
value_dict={“R”:2,“C”:1}
方程=sy.Eq(*sy.S(“R*C*1.1,ti”)).subs(数值)
解=sy.solve(方程式,手动=True)
打印(解决方案)
解决()
如果需要将ti
作为可访问的sympy变量,可以将其添加到字典中:
ti=sy.符号(“ti”)
value_dict={“R”:2,“C”:1,“ti”:ti}
有几个问题:
不查看现有变量,而是创建自己的变量,这些变量恰好具有外部名称“R”、“C”和“ti”sy.S(“R*C*1.1,ti”)
创建一个元组sy.S(“R*C*1.1,ti”)
(R*C*1.1,ti)
需要两个参数:方程式的左侧和右侧。Symphy的旧版本也只对左手边感到满意,并将右手边想象成sy.Eq()
。这仍然有效,但强烈反对,因为它在未来的版本中将不再有效0
- 对于
,只有一个参数(元组)用于sy.Eq(sy.S(“R*C*1.1,ti”)
。因此,这引发了不赞成的警告sy.Eq
- 为了将元组转换为参数,Python现在使用:
调用带有两个参数的func(*(a,b))
。另一方面,func(a,b)
只使用一个参数调用func((a,b))
,即元组func
(a,b)
- 要为通过sy.S(“R*C*1.1,ti”)获得的变量赋值,可以使用将字符串映射到值的字典
- 虽然
和True
在内部表示为False
和1
,但强烈建议明确使用名称。除其他外,这有助于提高代码的可读性和可维护性0
将sympy导入为sy
def solve():
value_dict={“R”:2,“C”:1}
方程=sy.Eq(*sy.S(“R*C*1.1,ti”)).subs(数值)
解=sy.solve(方程式,手动=True)
打印(解决方案)
解决()
如果需要将ti
作为可访问的sympy变量,可以将其添加到字典中:
ti=sy.符号(“ti”)
value_dict={“R”:2,“C”:1,“ti”:ti}
你说“它不工作”是什么意思?代码的作用是什么?对你有效的“正常公式”是什么?请将您的方程式包含此信息,以便我们可以帮助您。您所说的“它不起作用”是什么意思?代码的作用是什么?对你有效的“正常公式”是什么?请在你的方程式中加入这些信息,以便我们可以帮助你。你是一个天才:)非常感谢,它现在起作用了。你是一个天才:)非常感谢,它现在起作用了。