【发布时间】:2013-02-03 01:17:16
【问题描述】:
我正在寻找一种在为方程中的变量分配数值之前将多个数学函数相加的方法。
我这样做是因为我需要优化我的代码,并且我想每次都为变量分配不同的值。我正在尝试做的一个例子:
f(x, y) = x + 2yg(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
等等
这可能吗?我试图将它们创建为字符串,添加字符串,然后删除引号以评估总和,但这不起作用。我正在尝试以这种方式执行我的方法,因为我想优化我的代码。如果我能够在评估它之前创建我的最终函数(在这种情况下是h(x, y)),那将非常有帮助。
编辑:我正在添加 (e ** (x + y)),因此使用矩阵的线性解决方案不起作用:/
【问题讨论】:
-
您基本上是在寻找解析器。查看PLY - python 的 lex 和 yacc 版本
-
即使使用 e**(x+y),矩阵解决方案也可能适用于可以适当转换指数的情况。例如e**(x+y) == ex * ey 因此,如果每个项都是向量,则可以将这两个向量相乘,从而提供比我预期的更快的解决方案@ 987654331@可以给。不过,对于没有适当转换的一般情况,@unutbu 的解决方案非常有吸引力。
-
我将如何使用矩阵来做到这一点?我正在处理可能看起来像...的方程... e^ipi(4x - 2y) + e^ipi(10x + 3y) + e^ipi(x + 24y)...
标签: python function unassigned-variable