Plotting a polynomial problem
Afficher commentaires plus anciens
Trying to plot this polynomial for different values of A but no luck so far.
M=linspace(-10,10,100);
g=10;
for A=0.1:0.1:0.9
D=-(A^2-A+1/3)*(((A-1/2)*M*g-0.25*A^2)/(2*M*((A-1/2)^2+1)+0.5*(A^2-A+1/3)))-0.5*A^2
plot(M,D)
hold all
end
legend('A=0.1','A=0.2','A=0.3','A=0.4','A=0.5','A=0.6','A=0.7','A=0.8','A=0.9')
Réponse acceptée
Plus de réponses (1)
Star Strider
le 31 Juil 2014
I don’t understand what ‘no luck so far’ means (I can only assume that a plot of several parallel lines of dots wasn’t your desired result), but after ‘vectorising’ your code (the line that assigns ‘D’) it produces a much different plot than the one your code originally produced:
M=linspace(-10,10,100);
g=10;
for A=0.1:0.1:0.9
D=-(A^2-A+1/3).*(((A-1/2).*M.*g-0.25.*A.^2)./(2*M.*((A-1/2).^2+1)+0.5.*(A.^2-A+1/3)))-0.5*A.^2;
plot(M,D)
hold all
end
legend('A=0.1','A=0.2','A=0.3','A=0.4','A=0.5','A=0.6','A=0.7','A=0.8','A=0.9')
‘Vectorising’ produces element-by-element operations, rather than MATLAB’s default matrix operations. It requires using the ‘dot operator’ in front of multiplication, division, and exponentiation operators: (.*), (./), (.^).
(The only exception is the transpose operator ('), where (.') produces a simple transpose rather than the default complex conjugate transpose. I mention that for completeness. It doesn’t relate to your code.)
Catégories
En savoir plus sur Surface and Mesh Plots dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
