Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 方程的辛弦_Python_Sympy - Fatal编程技术网

Python 方程的辛弦

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")

我正在和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"))

  solution = sy.solve(equation, manual = 1)
  print(solution)

solve()
我得到了这个警告和一个空的解决方案(当我用一个普通公式交换字符串时,它可以工作):

自SymPy 1.5以来,rhs默认值为0的Eq(expr)已被弃用。 改用Eq(expr,0)。看见 更多信息

已弃用,\u因为\u version=“1.5” []


有几个问题:

  • sy.S(“R*C*1.1,ti”)
    不查看现有变量,而是创建自己的变量,这些变量恰好具有外部名称“R”、“C”和“ti”
  • sy.S(“R*C*1.1,ti”)
    创建一个元组
    (R*C*1.1,ti)
  • sy.Eq()
    需要两个参数:方程的左侧和右侧。Symphy的旧版本也只喜欢左侧,并将右侧想象为
    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}

有几个问题:

  • sy.S(“R*C*1.1,ti”)
    不查看现有变量,而是创建自己的变量,这些变量恰好具有外部名称“R”、“C”和“ti”
  • sy.S(“R*C*1.1,ti”)
    创建一个元组
    (R*C*1.1,ti)
  • sy.Eq()
    需要两个参数:方程式的左侧和右侧。Symphy的旧版本也只对左手边感到满意,并将右手边想象成
    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}
你说“它不工作”是什么意思?代码的作用是什么?对你有效的“正常公式”是什么?请将您的方程式包含此信息,以便我们可以帮助您。您所说的“它不起作用”是什么意思?代码的作用是什么?对你有效的“正常公式”是什么?请在你的方程式中加入这些信息,以便我们可以帮助你。你是一个天才:)非常感谢,它现在起作用了。你是一个天才:)非常感谢,它现在起作用了。