У меня есть следующий скрипт:
guess = np.linspace(0,20/1000, num = 21)
def calc_U_LC_a(t)-> "U_LC_a":
alpha_c = calc_alpha_c(t)
S_p = calc_S_p(t)
M_p = calc_M_p(t)
p_b_LC = calc_p_b(t, min(fy,fu/1.15))
Y_p = calc_Y_p(t)
p_c_LC = calc_p_c(t)
if pl_net_LC >= 0:
U_P = (Y_p * pl_net_LC) / (alpha_c * p_b_LC)
else:
U_P = 1.02 * 2 * (- pl_net_LC / p_c_LC)
M_Sd_a = 500e3
S_Sd_a = 500e4
U_M = (1.02 * 2 / alpha_c) * (abs(M_Sd_a)/M_p)
U_S = (1.02 * 2 / alpha_c) * (S_Sd_a/S_p)
U_LC_a = ((U_M + U_S ** 2) ** 2) + U_P ** 2
return U_LC_a
def fun_LC_a(t):
return calc_U_LC_a(t) - 1
def calc_iter(fun,guess):
for i in range(0,len(guess)):
try:
tmin = optimize.newton(fun,guess[i]) #, disp = False)
except RuntimeError:
print('guess = ', guess[i],' failed to converge.')
else:
break
return tmin
tmin_X = calc_iter(fun_LC_a,guess)
Все переменные, которые здесь не определены, являются постоянными значениями.
Когда я запускаю этот скрипт, я получаю сообщение об ошибке "UnboundLocalError: локальная переменная 'Y_p', на которую ссылается перед присваиванием"
, и я не уверен, почему.