【发布时间】:2017-05-26 17:50:48
【问题描述】:
我编写了一个从文件中读取数组的简单 Python 代码。所有数组元素都包含基本的代数运算(例如y*w+2*(w+y))。这些被读入,然后使用eval 命令评估所有数组元素(我知道使用eval 的安全问题,但这个脚本只会被我使用,我希望不会做任何事情愚蠢的)。
然后使用这些数组来解决一般特征值问题并获得特征值和向量。我的问题是如何通过改变矩阵中的某些参数来最小化(优化)特定的特征值?这是一个基本示例:
import numpy as np
from scipy.linalg import eig
y=10
w=3.45
x = np.array([[y+w,-2],[-2,w-2*(w+y)]])
eigenVal,eigenVec=eig(x)
print eigenVal[0]
矩阵不是最好的例子,而只是一个最小的例子。这个想法是改变两个参数 y 和 w 以最小化特定的特征值(例如第一个特征值,eigenVal[0])。之前在C++写过一些基本的优化算法,但是想探索一下Python优化库。这些矩阵可以变得非常大,那么解决这个问题的最佳方法是什么?
【问题讨论】:
标签: python matrix optimization eigenvalue