У меня есть функция одной переменной, для которой я хотел бы найти минимальное значение, а также значение переменной, для которой достигается минимум. В настоящее время я достигаю этого с помощью следующего скрипта 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 значения для распаковки». Кто-нибудь знает, как предотвратить эту ошибку и назначить эти два выхода?