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 codedocumentation,您需要执行以下操作:

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/

10-10 07:12