Как выполнить оператор if, если половина графика станет пустой, замените его на возвращаемое число, ожидаемая ошибка 2 получила 0 - PullRequest
0 голосов
/ 07 апреля 2019

Я создал код, который вычисляет максимальные показатели Ляпунова по двум параметрам a и b. Это хорошо, но есть часть графика белого цвета, где график разрушается из-за того, что мои значения x и y равны нулю. Поэтому мне нужно установить их равными, скажем, 100 или аналогичным, чтобы не допустить этого и создать полностью окрашенную сетку.

Я уже пробовал операторы if, но я получаю либо синтаксическую ошибку, либо другую ошибку

#diff values of a and b looping 
a=np.linspace(0,6,80)
b=np.linspace(0,5,80)

def lyapunov(a,b):
    #initial conditions
    a,b = np.meshgrid(a,b)
    d = 0.1
    xold = 0.5
    yold = 0.01

    #xnew and ynew values
   for k in range(1000):
    xnew=f(a,b,xold,yold)
    ynew=g(b,d,xold,yold)
    xold = xnew
    yold = ynew

if np.any(xnew<ee) and np.any(ynew<ee):
    return 2.

elif np.any(xnew>ee) and np.any(ynew<ee):
    return 5.

else:
    xold = xnew            
    yold = ynew

    ml=0   
    for l in range(100):
        ydash=1
        ml = ml + np.log(abs(e(a,b,xold,yold,ydash)))

        ydash = yz(a,b,xold,yold,ydash) 
        xold=f(a,b,xold,yold)
        yold=g(b,d,xold,yold)


    ml = (ml/(2*100))
    return  ml

z = lyapunov(a,b)
ax.set_title('Lyapunov Exponent')
c = ax.pcolormesh(z)
fig.colorbar(c)
plt.show()

Я ожидаю, что законченная сетка сетки без белого цвета показывает крах системы и ошибки времени выполнения. В настоящее время только половина сюжета окрашена. ERROR возвращает 'ValueError: недостаточно значений для распаковки (ожидается 2, получено 0)'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...