2016-02-09 1 views
1

Я пытаюсь построить уравнение рунды кутта, но оно показывает пустое значение. Где я ошибался в логике?Plot python показывает пустое значение

for n in xrange(0,10):  
    k1 = R*T[n] + g*h[n] 
    l1 = -1*r*h[n] - a*b*T[n] 


    k2 = R*(T[n]+k1*not_dt/2) + g*(h[n]+l1*not_dt/2) 
    l2 = -1*r*(h[n]+l1*not_dt/2) - a*b*(T[n]+k1*not_dt/2) 


    k3 = R*(T[n]+k2*not_dt/2) + g*(h[n]+l2*not_dt/2) 
    l3 = -1*r*(h[n]+l2*not_dt/2) - a*b*(T[n]+k2*not_dt/2) 


    k4 = R*(T[n]+k3*not_dt) + g*(h[n]+l3*not_dt)   
    l4 = -1*r*(h[n]+l3*not_dt) - a*b*(T[n]+k3*not_dt)   


    T[n+1] = T[n] + not_dt/6 *(k1+2*k2+2*k3+k4) 
    h[n+1] = h[n] + not_dt/6 *(l1+2*l2+2*l3+l4) 


plt.plot(T[n+i],h[n+i]) 

Возможно, я пытаюсь упростить чуток

T[0] = 11 
h[0] = 0 

for test in xrange(0, 10): 
    k1 = T[test] + h[test] 
    k2 = 2*k1 
    k3 = 2*k2 

    T[test+1] = T[test]+k3 
    h[test+1] = h[test]+k2 
    print T[test+1], h[test+1] 

plt.plot(T[test+1],h[test+1]) 

Я попытался запустить упрощенный сценарий выше, и это дает значение для печати, но это как раз не появился в сюжете. Таким образом, вопрос, возможно, в конце концов не связан с ружейкой куттой, а всего лишь некоторой логикой в ​​построении. Извини за это.

+0

Это невозможно прочитать. Можете ли вы отступать ваши строки с 4 пробелами, чтобы получить текст в виде моноширинного кода? Если это не похоже на Python, когда вы закончите, продолжайте редактировать его до тех пор, пока это не произойдет. – kwinkunks

+0

Я отредактировал его. Надеюсь, это более читаемо. –

+0

Не могли бы вы предоставить все данные, необходимые для построения, пожалуйста? Таким образом, полное [MCVE] (http://stackoverflow.com/help/mcve) было бы хорошо, так как люди, которые не знают, что вы вычисляете, могли бы знать, что с вашим кодом не так. – albert

ответ

1

Вы используете текущий индекс цикла вне цикла, где он не определен.

Вы пытаетесь построить ровно одну точку, а не массивы. Использовать

plt.plot(T,h) 

При условии, что оба списка имеют одинаковую длину.

+0

Да! Оно работает! Так вот объяснение. Спасибо. И спасибо, что люди отвечают на мой вопрос. –

 Смежные вопросы

  • Нет связанных вопросов^_^