MATLAB Answers

multiple graphs are coming but I need only one

1 view (last 30 days)
MINATI
MINATI on 27 Feb 2019
Edited: MINATI on 28 Feb 2019
function main
S = 1; c = -1.25; Pr = 0.7; n = 0.8;
% n=input('n=') %%n=-0.3,-0.5
x = [3 -1];
x1 = fsolve(@solver, x);
function F = solver(x)
[t, u] = ode45(@equation,[0,5], [S, c, x(1), 1, x(2)]);
F = [u(end, 2)-1 u(end, 4)];
figure(1)
plot(t, u(:,4), 'b-');
hold on
end
function dy = equation(t, y)
dy = zeros(5,1);
dy(1) = y(2);
dy(2) = y(3);
dy(3) = y(2)^2 - y(1) * y(3) - 1;
dy(4) = y(5);
dy(5) = Pr * (n * y(2) * y(4) - y(1) * y(5));
end
end
%%The present code gives multiple graphs instead of 1

  2 Comments

Geoff Hayes
Geoff Hayes on 27 Feb 2019
Minati - by multiple graphs do you mean multiple figures or multpile plots?
MINATI
MINATI on 27 Feb 2019
Dear Geoff
- by multiple graphs do you mean multiple figures or multpile plots?
its multiple curves in one fig. but I need only one curve.
If I strike out "hold on" option then only one curve is comming.
But for different inputs of 'n'.,different curves should come into picture,which are not coming.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 27 Feb 2019
Move the plotting out of solver() and put it after the fsolve() call before the definition of the function solver.

  3 Comments

MINATI
MINATI on 27 Feb 2019
Dear Walter
It looks like you are right.
Another help needed is how can we take 'c' in x-axis(continuous range.[-1.3:0.02:-1.1])
with this code.
MINATI
MINATI on 28 Feb 2019
how can we take 'c' in x-axis(continuous range.[-1.3:0.02:-1.1])
with this code.
still unable to draw

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!