使用scipy最小化时出现未定义的名称错误

x759pob2  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(143)

我试图使用scipy.optimize.minimize()最小化一个函数。下面是我试图执行的代码片段。
当我执行相同的命令时
名称错误:未定义名称“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)接近零

n3schb8v

n3schb8v1#

这是因为你已经在一个函数中初始化了'j'。在函数中定义的变量的作用域将被限制在函数中。

相关问题