0

ich eine Grafik zeigt zwei Variablen zeichnen muß, mit einer zweiten Ordnung ODE mit RK4, bisher habe ich diezweite Ordnung ODE mit RK4

from numpy import arange 
from pylab import plot,xlabel,ylabel,show 
Qger = 400 
K = 20 
T1 = 150 
T2 = 60 
N = 1000 
h = (T2-T1)/N 
rpoints = arange(6.0,8.0,h) 
xpoints = [] 
x = 423 
def df(s,t): 
    dTdt = -Qger*t/(2*K) + 172.8/t 
    return dTdt 

for r in rpoints: 
    xpoints.append(x) 
    k1 = h*df(x,r) 
    k2 = h*df(x+0.5*k1,r+0.5*h) 
    k3 = h*df(x+0.5*k2,r+0.5*h) 
    k4 = h*df(x+k3,r+h) 
    x += (k1+2*k2+2*k3+k4)/6 
pylab.plot(rpoints,xpoints) 
pylab.xlabel("Raio") 
pylab.ylabel("Temperatura") 
pylab.show 
getan

Aber das ist ein RK4 bei Erstbestellung ODE, weil ich nicht wusste und durch hand integriert wurde, aber ich kann das nicht tun und benutze scipy nicht, also kann mir jeder erklären, wie man diese Funktion integriert oder RK4 mit einer ODE zweiter Ordnung benutzt. Die Funktion ist unten.

Dies ist die Funktion, nur T und r Variablen ist, ist der Rest 0

+0

Die [scipy Dokumentation für 'Odeint'] (https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.integrate.odeint.html) hat ein detailliertes Beispiel der Lösung einer ODE zweiter Ordnung. Studiere dieses Beispiel und komm zurück (vielleicht in einer anderen Frage ...), um Hilfe zu bestimmten Themen zu bekommen. Wie ist deine Frage schlecht? – gboffi

Antwort

0

Sie sollten die oben in einer „halb diskreten“ Form, dT zu sagen, das ist zu setzen in der Lage/dt in Bezug auf nur partielle Ableitungen in Bezug auf r. Wenn Sie dann eine numerische oder andere Annäherung an die äquivalenten Ausdrücke dT/dt finden können, d. H. Die RHS von dT/dt = df (r, ...), dann kann expliziter RK4 anwendbar sein.

Bei diesem Ansatz wird Ihre Zeitschrittmethode (RK4) nur auf die Temperaturableitung erster Ordnung in Bezug auf die Zeit angewendet.

Verwandte Themen