What's wrong with my code for this plot?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
I'm trying to plot drag D against mass M for various values of the ratio R between the inertia I and mass M, i.e. R=I/M but when I plot this I only get the R=0.5 line. How do I fix this?
M=linspace(0,1,50);
I=linspace(0,1,50);
A=0.7;
g=10;
for R=[0.02, 0.1, 0.2, 0.5];
R=I/M;
s=(A-0.5)*M.*g-(A^2)/4;
theta=s./(2*M.*(A-0.5)^2+2*I+(A^2-A+1/3)/2);
D=(A.^2-A+1/3).*theta+0.5*A.^2;
plot(M,D)
axis([0,1,-1,1])
xlabel('M')
ylabel('D')
hold all
grid on
end
legend('R=0.02','R=0.1','R=0.2','R=0.5')
0 Commenti
Risposta accettata
Star Strider
il 25 Ago 2014
One possible problem is that R isn’t used to calculate D (or anything else), and never changes because:
R=I/M;
in every iteration of the loop. D doesn’t change either.
2 Commenti
Star Strider
il 25 Ago 2014
I am still not certain what you are doing, but this gives you three lines, one for each value of Im:
M=linspace(0,1,50);
A=0.7;
g=10;
Im = [0.1 0.2 0.5];
for k1 = 1:length(Im)
I = Im(k1)*M;
s=(A-0.5)*M.*g-(A^2)/4;
theta=s./(2*M.*(A-0.5)^2+2*I+(A^2-A+1/3)/2);
D=(A.^2-A+1/3).*theta+0.5*A.^2;
plot(M,D)
axis([0,1,-1,1])
xlabel('M')
ylabel('D')
hold all
grid on
end
legend('R=0.02','R=0.1','R=0.2','R=0.5')
Più risposte (1)
Yona
il 25 Ago 2014
you change R in the loop to be same each time (R=I/M;) so you get the exactly same graph 4 time.
they are each on other.
by the way, axis, xlabel, ylabel and grin can be after the loop, it not need to be in the loop.
Vedere anche
Categorie
Scopri di più su 2-D and 3-D Plots 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!