【发布时间】:2014-10-01 19:34:38
【问题描述】:
我正在尝试最小化函数,它返回一个值向量, 这是一个错误:
使用序列设置数组元素
代码:
P = np.matrix([[0.3, 0.1, 0.2], [0.01, 0.4, 0.2], [0.0001, 0.3, 0.5]])
Ps = np.array([10,14,5])
def objective(x):
x = np.array([x])
res = np.square(Ps - np.dot(x, P))
return res
def main():
x = np.array([10, 11, 15])
print minimize(objective, x, method='Nelder-Mead')
在这些 P、Ps、x 值处,函数返回 [[ 47.45143225 16.81 44.89 ]]
感谢您的建议
UPD(完整追溯)
Traceback (most recent call last):
File "<ipython-input-125-9649a65940b0>", line 1, in <module>
runfile('C:/Users/Roark/Documents/Python Scripts/optimize.py', wdir='C:/Users/Roark/Documents/Python Scripts')
File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 585, in runfile
execfile(filename, namespace)
File "C:/Users/Roark/Documents/Python Scripts/optimize.py", line 28, in <module>
main()
File "C:/Users/Roark/Documents/Python Scripts/optimize.py", line 24, in main
print minimize(objective, x, method='Nelder-Mead')
File "C:\Anaconda\lib\site-packages\scipy\optimize\_minimize.py", line 413, in minimize
return _minimize_neldermead(fun, x0, args, callback, **options)
File "C:\Anaconda\lib\site-packages\scipy\optimize\optimize.py", line 438, in _minimize_neldermead
fsim[0] = func(x0)
ValueError: setting an array element with a sequence.
UPD2:函数应该被最小化(Ps是一个向量)
【问题讨论】:
-
请发布完整的 Traceback。
-
@miindlek 刚刚更新了我的帖子
标签: python numpy scipy mathematical-optimization