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)的元组,但我不太确定如何去做。谢谢:))
答案 0 :(得分:1)
查看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
,还会阻止打印收敛消息。