Diffekvation matlab
Hej, jag har under några timmar försökt lösa nedanstående uppgift i matlab men lyckas inte få till den, jag får alltid fel riktningsfält och fel funktion. Hjälp uppskattas! Tack på förhand :) Funktionerna D & S är :
D = @(q)300*exp(-0.02*q.^2);
S = @(q) 20*q.^(1.2) +2*q.^(0.4);
Hur många av oss kan tolka detta:
D = @(q)300*exp(-0.02*q.^2);
S = @(q) 20*q.^(1.2) +2*q.^(0.4);
När du svarar på/skriven en tråd, har du sett rot-tecknet längst uppe till höger i editerings-listen?
Har du provat matlabs inbyggda diffekvationslösare, t.ex ode45(...)? Annars kan du skriva en egen kodsnutt som använder RK4 eller annan metod. Visa hur du har försökt.
Affe: funktionerna är skrivna i matlabkod.
D = @(q)300*exp(-0.02*q.^2);
S = @(q) 20*q.^(1.2) +2*q.^(0.4);
Dr. G skrev:Har du provat matlabs inbyggda diffekvationslösare, t.ex ode45(...)? Annars kan du skriva en egen kodsnutt som använder RK4 eller annan metod. Visa hur du har försökt.
Affe: funktionerna är skrivna i matlabkod.
D = @(q)300*exp(-0.02*q.^2);
S = @(q) 20*q.^(1.2) +2*q.^(0.4);
Jag har gjort på följande sätt på c uppgiften men grafen jag får verkar vara helt fel då den aldrig stabiliseras. K_approx kommer från b uppgiften och slope_field kommer från en m-fil med funktionen.
F = @(t,q) k_approx.*((300*exp(-0.02*q.^2))-(20*q.^(1.2) +2*q.^(0.4)));
t_sf = 0:10:150;
q_sf = q_0-150:15:q_0;
slope_field(F,t_sf,q_sf)
hold on
[tv, qv] = ode45(F,[0 150],q_0)
p_k = plot(tv, qv,'m','LineWidth',2);
grid on, hold on