如何计算多变量方程的输出

How to calculate output of a multivariable equation

我有一个功能,

f(x,y)=4x^2*y+3x+y 

显示为

four_x_squared_y_plus_three_x_plus_y = [(4, 2, 1), (3, 1, 0), (1, 0, 1)]

其中元组的第一项是系数,第二项是x的指数,第三项是y的指数。我正在尝试计算 x 和 y

的特定值的输出

我尝试将术语列表拆分为它们所代表的内容,然后在输入 x 和 y 时输入它们的值,但是我得到了关于 ** 元组的不受支持的操作数类型 - 即使我尝试过在条款

中将它们拆分为单独的值

这是像这样拆分元组的有效方法吗?我错过了什么技巧吗?

def multivariable_output_at(list_of_terms, x_value, y_value):
    coefficient, exponent, intersect = list_of_terms
    calculation =int(coefficient*x_value^exponent*y_value)+int(coefficient*x_value)+int(y_value)
    return calculation


multivariable_output_at(four_x_squared_y_plus_three_x_plus_y, 1, 1) # 8 should be the output

请试试这个:

four_x_squared_y_plus_three_x_plus_y = [(4, 2, 1), (3, 1, 0), (1, 0, 1)]


def multivariable_output_at(list_of_terms, x_value, y_value):
    return sum(coeff*(x_value**x_exp)*(y_value**y_exp) for coeff,x_exp,y_exp in list_of_terms)


print(multivariable_output_at(four_x_squared_y_plus_three_x_plus_y, 1, 1))

注意:

这与您的代码最初处理变量的方式不同,并且是基于我对术语列表含义的直觉,给定您的示例。

如果你有更多输入 -> 输出的例子,你应该检查我的所有答案以确保我做的是正确的。

第一行代码将元组列表解压缩为三个不同的元组:

coefficient, exponent, intersect = list_of_terms
# coefficient = (4, 2, 1)
# exponent = (3, 1, 0)
# intersect = (1, 0, 1)

乘积运算符 * 不受元组支持,您看到问题了吗?