Неопределенная ошибка имени при сворачивании с помощью scipy
Я пытаюсь свернуть функцию, используя scipy.optimize.minimize()
, Ниже приведен фрагмент кода, который я пытаюсь выполнить.
Когда я выполняю то же самое, я получаю
NameError: имя 'j' не определено
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import minimize
from sklearn.metrics import r2_score
url = 'test_data.txt'
z = pd.read_csv(url)
#
e1 = z['strain'].values
sigx = z['stress'].values
e=np.array(e1)
sig1=np.array(sigx)
#print (sig1)
def sig2(e):
j=[1000,0.2]
return np.mean((sig1-(j[0]*np.power(e,j[1])))*(sig1-(j[0]*np.power(e,j[1]))))
print (sig2(e))
res= minimize(sig2,j)
print(res)
То, что я ожидаю в качестве результата, было значениями j[0] и j[1], чтобы значение функции (sig2) было близко к нулю
1 ответ
Это потому, что вы инициализировалиj
переменная внутри функции. Область действия переменной, определенной внутри функции, будет ограничена самой функцией.