相关疑难解决方法(0)

为什么scipy.optimize.minimize(默认)在不使用Skyfield的情况下报告成功?

scipy.optimize.minimize使用默认方法将返回初始值作为结果,而不会出现任何错误或警告消息。在使用此答案建议的Nelder-Mead方法解决问题时,我想了解:

为什么默认方法会在不警告起点的情况下返回错误答案作为答案-并且 在这种情况下,有什么方法可以防止“没有警告就错误回答”避免这种情况?

请注意,该函数separation使用python软件包Skyfield生成无法保证平滑的最小化值,这可能就是为什么Simplex在此处更好的原因。

结果:

测试结果:[ 2.14159739 ]'正确': 2.14159265359初始值:0.0

默认结果:[ 10000。 ]“正确”:13054初始值: 10000

Nelder-Mead结果:[ 13053.81011963 ]'正确': 13054初始值:10000

FULL OUTPUT using DEFAULT METHOD:
   status: 0
  success: True
     njev: 1
     nfev: 3
 hess_inv: array([[1]])
      fun: 1694.98753895812
        x: array([ 10000.])
  message: 'Optimization terminated successfully.'
      jac: array([ 0.])
      nit: 0

FULL OUTPUT using Nelder-Mead METHOD:
  status: 0
    nfev: 63
 success: True
     fun: 3.2179306044608054
       x: array([ 13053.81011963])
 message: 'Optimization terminated …
Run Code Online (Sandbox Code Playgroud)

python minimize scipy skyfield

4
推荐指数
1
解决办法
2636
查看次数

标签 统计

minimize ×1

python ×1

scipy ×1

skyfield ×1