Когда я запускаю свой код, появляется ошибка "UnboundLocalError: локальная переменная 'd', на которую ссылается перед присваиванием", но когда сценарий с Len (L) = 12 не появляется, между прочим, когда len (L) = 180 появляется ошибка, как я могу это исправить?
def objective(x):
sum_obj = 0.0
for i in range(len(L)):
if x[i] >= 0.276:
d= 1.484
elif 0.276 > x[i] >= 0.212:
d= 1.299
elif 0.212 > x[i] >= 0.148:
d= 1.086
elif 0.148 > x[i] >= 0.0975:
d=0.881
elif 0.0975 > x[i] >= 0.079:
d = 0.793
elif 0.079> x[i] >= 0.062:
d = 0.705
elif 0.062 > x[i] >= 0.049:
d= 0.626
elif 0.049 > x[i] >= 0.038:
d= 0.555
elif 0.038 > x[i] >= 0.030:
d=0.494
elif 0.030 > x[i] >= 0.024:
d=0.441
elif 0.024 > x[i] >= 0.0198:
d= 0.397
elif 0.0198 > x[i] >= 0.01565:
d= 0.353
elif 0.01565 > x[i] >= 0.0123:
d= 0.313
elif 0.0123 > x[i] >=0.0097:
d= 0.278
elif 0.0097 > x[i] >= 0.0077:
d=0.247
elif 0.0077 > x[i] >= 0.0061:
d=0.22
elif 0.0061 > x[i] >= 0.0049:
d=0.198
elif 0.0049 > x[i] >= 0.00389:
d=0.176
elif 0.00389 > x[i] >= 0.0032:
d= 0.159
elif 0.0032 > x[i] >= 0.0025 :
d= 0.141
elif 0.0025 > x[i] >= 0:
d= 0.123
K[i] = 10.674*L[i]/(C**1.852*d**4.871)
N[i] = K[i]*x[i]**2.852*J+x[i]*J*h[i]
sum_obj = sum_obj + N[i]
return sum_obj
UnboundLocalError: локальная переменная 'd', на которую ссылается перед присваиванием