数学函数,未赋值变量?

2024-04-20 04:53:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,在为方程式中的变量赋值之前,将多个数学函数相加。
我这样做是因为我需要优化我的代码,我想每次都给变量分配不同的值。我想做的一个例子是:

  1. f(x, y) = x + 2y

  2. g(x, y) = 3x - y

  3. 添加f(x, y) + g(x, y)得到h(x, y),因此f(x, y) + g(x, y) = h(x, y) = 4x + y

  4. 现在我有了h(x, y),我需要h(x, y)

    中的多个值
x = 4; y = 3, h(x, y) = 19
x = 1, y = 0, h(x, y) = 4

等等

这可能吗?我试图将它们创建为字符串,添加字符串,然后删除引号来计算和,但这没有起作用。我尝试用这种方式来做我的方法,因为我想优化我的代码。如果我能够在计算之前创建我的最终函数(在本例中是h(x, y)),这将非常有帮助。在

编辑:我在做(e**(x+y))的加法,所以使用矩阵的线性解不起作用:/


Tags: 方法函数字符串代码编辑方式线性矩阵
3条回答

SymPy可以这样做:

import sympy as sym

x, y = sym.symbols('xy')
f = x + 2*y
g = 3*x - y
h = f + g

这表明SymPy简化了表达式:

^{pr2}$

这展示了如何将h作为x和{}的函数来计算:

print(h.subs(dict(x=4, y=3)))
# 19
print(h.subs(dict(x=1, y=0)))
# 4

也可以使用lambda函数。在

f=lambda x,y:x+2*y
g=lambda x,y:3*x-y
h=lambda x,y:f(x,y)+g(x,y)

并计算h(x,y)

如果函数都是变量的线性组合,如示例所示,则不需要解析器或@unutbu建议的sympy解决方案(对于复杂函数,这似乎是绝对正确的答案)。在

对于线性组合,我将使用numpy数组来包含变量的系数,如下所示:

import numpy as np
f = np.array([1,2])
g = np.array([3,-1])
h = f + g
x = np.array([4,3])
sum(h*x)

。。。它给出了答案19,如您的例子所示。在

相关问题 更多 >