简化或优化Lambda表达式计算,以便在Python中广泛使用

简化或优化Lambda表达式计算,以便在Python中广泛使用,python,optimization,time,lambda,simplify,Python,Optimization,Time,Lambda,Simplify,我得到的lambda表达式是一个1变量(x)的表达式,但包含许多矩阵乘法和矩阵幂 此外,我在嵌套循环中使用大量迭代调用了这个lambda表达式 下面是我的lambda表达式。 M是矩阵,bk是向量 func = lambda x: bk.T.dot(matrix_power(M-x*eye(dim), -2)).dot(bk)[0,0] - 1 我的问题是,是否有一种方法可以通过执行一次乘法和幂运算来简化表达式本身,并根据一个变量(x)达到简化表达式 然后多次使用这个简化表达式,只需替换其中的

我得到的lambda表达式是一个1变量(x)的表达式,但包含许多矩阵乘法和矩阵幂

此外,我在嵌套循环中使用大量迭代调用了这个lambda表达式

下面是我的lambda表达式。 M是矩阵,bk是向量

func = lambda x: bk.T.dot(matrix_power(M-x*eye(dim), -2)).dot(bk)[0,0] - 1
我的问题是,是否有一种方法可以通过执行一次乘法和幂运算来简化表达式本身,并根据一个变量(x)达到简化表达式


然后多次使用这个简化表达式,只需替换其中的x值

问题是
x
在表达式中嵌入得很深,所以很难简化。也许可以创建一个临时变量来存储转置后的
bk
的结果,但这并不是很多优化。难道不可能通过Symphy简化此表达式,然后计算简化的表达式吗?@C.LECLERC请解释更多您需要的内容meaan@Jean-弗朗索瓦·法布是的,我做了这个改动,但不知怎么的,改动很小。我想我应该在一个单独的lambda表达式中分离inv(M-x*eye),然后计算一次,然后求平方。最重要的是,如果不是压缩成一行,这看起来可能更清楚。问题是
x
在表达式中嵌入得很深,因此很难简化。也许可以创建一个临时变量来存储转置后的
bk
的结果,但这并不是很多优化。难道不可能通过Symphy简化此表达式,然后计算简化的表达式吗?@C.LECLERC请解释更多您需要的内容meaan@Jean-弗朗索瓦·法布是的,我做了这个改动,但不知怎么的,改动很小。我想我应该在一个单独的lambda表达式中分离inv(M-x*eye),然后计算一次,然后求平方。最重要的是,如果不是浓缩成一行,这可能看起来更清晰。