gpt4 book ai didi

python - 如何通过减法找到方程中的特定变量

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:10 25 4
gpt4 key购买 nike

因此,通过在线搜索,我找到了一个运行良好的程序,并将我当前的代码减少了 80 多行。

import sympy as sp    

P, V, n, R, T = sp.symbols('P V n R T')
IDEAL_GAS_EQUATION = P*V - n*R*T

def f(x, values_dct, eq_lst):
lst = []
lst += eq_lst
for i, j in values_dct.items():
lst.append(sp.Eq(i, j))
try:
return sp.solve(lst)[0][x]
except IndexError:
print('This equation has no solutions.')

但是-用作等号。实际上,我有一些函数,其中包括加法和减法,并且根据我的实验,第一个后的任何 +- 符号都被反转,所以不是加它而是减,反之亦然。有没有办法解决这个问题,而不需要我完全拆开这段代码?我这个程序是这样修改的。

from sympy import symbols, Eq, solve
# declaring symbols
V, I, Ω = symbols('V A Ω')
# declaring equations
ohms_law = V - I*Ω
# list of all equations
equ_lst = [ohms_law]
# list of all vars
var_lst = [V, I, Ω]
# dictionary that stores vars and their values
var_dict = {}
# solving function
def f(x, values_dct, eq_lst):
lst = []
lst += eq_lst
for i, j in values_dct.items():
lst.append(Eq(i, j))
try:
return solve(lst)[0][x]
except IndexError:
print('This equation has no solutions.')
# getting known variables
for key in var_lst:
tempvar1 = input(str(key) + ': ')
if tempvar1 != '':
var_dict[key] = tempvar1
print (var_dict)
# Solve for unknown variables
for key in var_lst:
if key not in var_dict:
f(key, var_dict, equ_lst)

据我所知,这个特定的程序不会有一个包含负号的方程,但另一个尚未修改以使用此函数的程序有一个类似的方程。我该如何回避这个问题或者我必须创建一个新函数?

最佳答案

如果我错了,请纠正我,但是您已经以这种方式表达了 PV - nRT,因为您需要表达式等于 0 才能使用 solve()?一般来说,我们会说 PV = nRT,但是减去 nRT 就会得到 PV - nRT = 0,而且看起来您对欧姆定律也做了同样的事情。

因此,我的观察并不是您将“-”用作“=”,而是您将方程重新排列为等于零。即使用属性a = b iff a-b = 0

那么我是否正确地陈述了你的问题,建议你不能重新排列方程以使 f(x,y,z)=0 ?我相信您不能使用 solve() 来求解不等于零的方程。

否则,这应该是一个理想的解决方案,您可以使用与所示相同的方法。如果您分享您想要使用的方程式,我们也许可以提供帮助。

关于python - 如何通过减法找到方程中的特定变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43790909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com