gpt4 book ai didi

python - 在 scipy.optimize 中分配 fmin 的输出

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:15 28 4
gpt4 key购买 nike

我有一个单一变量的函数,我想找到它的最小值,以及达到最小值的变量的值。目前,我通过以下 Python 脚本实现了这一点:

import numpy as np
from scipy.optimize import fmin
import math

x1=0.
y1=800.
x2=1100.
y2=-800.

v1=2000.
v2=4000.

def T(xi):
time=sqrt((x1-xi)**2+y1**2)/v1+sqrt((x2-xi)**2+y2**2)/v2
return time

fmin(T,0)

运行此脚本会产生以下回显:

import numpy as np
from scipy.optimize import fmin
import math

x1=0.
y1=800.
x2=1100.
y2=-800.

v1=2000.
v2=4000.

def T(xi):
time=sqrt((x1-xi)**2+y1**2)/v1+sqrt((x2-xi)**2+y2**2)/v2
return time

fmin(T,0)
Optimization terminated successfully.
Current function value: 0.710042
Iterations: 41
Function evaluations: 82
Out[24]: array([ 301.9498125])

因此函数的最小值是 ~0.71,并且是通过 ~302 的参数值获得的。但是,我想按如下方式分配这些值:

(Tmin,xmin)=fmin(T,0)
Optimization terminated successfully.
Current function value: 0.710042
Iterations: 41
Function evaluations: 82
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
C:\Users\Kurt.Peek\<ipython-input-25-aec613726d59> in <module>()
----> 1 (Tmin,xmin)=fmin(T,0)

ValueError: need more than 1 value to unpack

所以我得到一个错误“ValueError:需要超过 1 个值来解包”。有人知道如何防止此错误并分配这两个输出吗?

最佳答案

fmin has a full_output=True parameter :

xopt, fopt, iter, funcalls, warnflag = fmin(T,0, full_output=True, disp=False)
print(xopt, fopt)
# (array([ 301.9498125]), 0.71004171552448025)

关于python - 在 scipy.optimize 中分配 fmin 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23311776/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com