Pau*_*ger 2 python function unassigned-variable
我正在寻找一种方法,在为方程中的变量赋值之前,将多个数学函数加在一起.
我这样做是因为我需要优化我的代码,并且我希望每次都为变量分配不同的值.我想要做的一个例子:
f(x, y) = x + 2y
g(x, y) = 3x - y
增加f(x, y) + g(x, y)得到h(x, y),所以f(x, y) + g(x, y) = h(x, y) = 4x + y
现在我有h(x, y),我需要多个值h(x, y)
x = 4; y = 3, h(x, y) = 19
x = 1, y = 0, h(x, y) = 4
Run Code Online (Sandbox Code Playgroud)
等等
这可能吗?我试图将它们创建为字符串,添加字符串,然后删除引号以评估总和,但这不起作用.我试图以这种方式做我的方法,因为我想优化我的代码.如果我能够在评估它之前创建我的最终函数(h(x, y)在这种情况下就是这样),那将非常有帮助.
编辑:我正在添加(e**(x + y)),所以使用矩阵的线性解决方案不起作用:/
SymPy可以这样做:
import sympy as sym
x, y = sym.symbols('xy')
f = x + 2*y
g = 3*x - y
h = f + g
Run Code Online (Sandbox Code Playgroud)
这表明SymPy简化了表达式:
print(h)
# y + 4*x
Run Code Online (Sandbox Code Playgroud)
这说明,你如何评价h作为一个功能x和y:
print(h.subs(dict(x=4, y=3)))
# 19
print(h.subs(dict(x=1, y=0)))
# 4
Run Code Online (Sandbox Code Playgroud)