Plotting two variables, getting graph and x intercept

I need to plot the equation :
0 = x^3 + 6x^2 + 4(1 - y^2)
The variable y needs to take values 0, 1, 2, 3, 4. I'm wondering if there is a loop I can do for this.
I would also like to get the x-intercepts as an output.
Is there a way to plot them on single graphs and all on the same graph?

 Accepted Answer

Try this:
xv = linspace(-6, 4, 25);
yv = [1 2 3 4];
for k = 1:numel(yv)
ply = [1 6 0 4*(1-yv(k).^2)];
rts(:,k) = roots(ply);
pv(k,:) = polyval(ply, xv);
end
figure
plot(xv, pv)
grid
The x-intercepts will be the roots, returned column-wise in the ‘rts’ matrix.

2 Comments

This worked beautifully! Thank you!
As always, my pleasure!

Sign in to comment.

More Answers (1)

Here's an alternative
f = @(x,y) x.^3 + 6*x.^2 + 4*(1-y.^2);
coeff = @(y) [1 6 0 4*(1-y.^2)];
y = 0:4;
for i = 1:length(y)
R(:,i) = roots(coeff(y(i)));
end
ezplot(f)

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Tags

Asked:

M K
on 27 Aug 2020

Commented:

on 27 Aug 2020

Community Treasure Hunt

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

Start Hunting!