Subtracting the two resulting graghs of my ode program
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I have two second order differential equations. I solved them with Ode45, but I want to subtract the two resulting answers from each other and plot the subtraction of the one answer from another one. How can I do that???
function dy=function1(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=sin(t)-y(1);
end
function dy=function2(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=(t^2)-2*y(1)-y(2);
end
[T,Y]=ode45(@function1,[0 10],[0 0]);
[M,X]=ode45(@function2,[0 10],[0 0]);
plot(T,Y(:,1),M,X(:,1))
I want to plot X(:,1)-Y(:,1)???
0 Commenti
Risposta accettata
Kelly Kearney
il 6 Lug 2016
You can either change the second input of both ode45 calls to specify specific time values to output:
tspan = linspace(0,10,100);
[T,Y]=ode45(@function1,tspan,[0 0]);
[M,X]=ode45(@function2,tspan,[0 0]);
(Here, T, M, and tspan will be equal).
Or, you could keep your original input but interpolate both output timeseries to the same grid:
y2 = interp1(T, Y, tspan);
x2 = interp1(M, X, tspan);
plot(tspan, y2(:,1)-x2(:,1));
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Ordinary Differential Equations in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!