How to define which variable is x and which variable is y axis?

5 vues (au cours des 30 derniers jours)
John
John le 7 Oct 2014
Modifié(e) : Matt J le 7 Oct 2014
I have an equation like "2*c^2 - 4*b = 0" with b ranging from 0 to 10. I want to plot a graph of b verses c with b on the x axis. How would I tell the program to plot b on the x axis and c on the y axis?

Réponses (4)

Mischa Kim
Mischa Kim le 7 Oct 2014
Modifié(e) : Mischa Kim le 7 Oct 2014
John, simply use
plot(b,c)
The first argument is the x the second the y axis. Or, if you want to show both solution branches
b = 0:0.1:10;
c = sqrt(2*b);
plot(b,c,b,-c)

Star Strider
Star Strider le 7 Oct 2014
First, a bit of algebra to create ‘c’ as a function of ‘b’, then it’s simply another plot:
b = linspace(0,10);
c = [-sqrt(2*b); sqrt(2*b)];
figure(1)
plot(b, c)
grid
  4 commentaires
Star Strider
Star Strider le 7 Oct 2014
My pleasure!
The sincerest expression of appreciation here on MATLAB Answers is to Accept the Answer that most closely solves your problem.
Andrew Reibold
Andrew Reibold le 7 Oct 2014
Modifié(e) : Andrew Reibold le 7 Oct 2014
Alternatively, PayPal is accepted too xD

Connectez-vous pour commenter.


John
John le 7 Oct 2014
Thanks that clears up a lot however if I can't separate b into one term is there a way to plot it. This is the actual equation:
V=[pi+arctan(b/(1-b))^(1/2)+arctan((b+2)(1-b))^(1/2)]/(1-b)^(1/2)
I want V to be the x axis from 0 to 15. I want to solve for b and plot the results on the y axis.

Matt J
Matt J le 7 Oct 2014
Modifié(e) : Matt J le 7 Oct 2014
f = @(V,b)V-(pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
ezplot(f,[0,1.1,15,100]);
  3 commentaires
Mohammad Abouali
Mohammad Abouali le 7 Oct 2014
Modifié(e) : Mohammad Abouali le 7 Oct 2014
Yes, with x being V and y being b. so xmin=0 xmax=15
and again put b=1.1 and check what your V turns out to be.
ff=@(b) (pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
V would be a complex number
He wants 0<V<15 on x axis
Matt J
Matt J le 7 Oct 2014
Modifié(e) : Matt J le 7 Oct 2014
Right you are (although I think it is the real part and not the norm that is being plotted). Here's a modification that fixes that issue,
function doPlot
ezplot(@(V,b) f(V,b),[0,15,0,1]);
function fval = f(V,b)
fval = V-(pi+atan(b./(1-b)).^(1./2)+atan((b+2).*(1-b)).^(1./2))./(1-b).^(1./2);
fval=fval/(imag(fval)==0);
end
end

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by