def getMaxDeflection(self):
def func(x): return self.getTotalDeflection(x)
a = s.fmin(lambda x: -func(x), 0)
return a
这返回
>>> b.getMaxDeflection()
Optimization terminated successfully.
Current function value: -0.004343
Iterations: 28
Function evaluations: 56
Out[161]: array([ 2.7473125])
如您所见,我最终得到的当前函数值为-0.004343,数组输出为2.7473。我想以(0.004343,2.7473)的元组结束,但不确定如何去做。谢谢 :)
最佳答案
查看source code和documentation,您需要执行以下操作:
def getMaxDeflection(self):
a = s.fmin(lambda x: -self.getTotalDeflection(x), 0, full_output=1)
return a[1], a[0][0]
如果
fopt, iter, funcalls, warnflag
设置为True,则仅将值full_output
添加到输出中。另外,如果设置disp=0
,还将防止打印收敛消息。关于python - 从fmin scipy优化中解压缩当前函数值和数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34345450/