Clear Filters
Clear Filters

Plot two equations and find the intersect

2 views (last 30 days)
I want to solve numerically for the intersects, plot the curve and line and show the intersects on the plot . E is the x axis and y is the y axis. We have;
g=9.81;v=1;y1=2;q=v*y1;z=0.9;
Syms E y2
eqn1 = E==2*g*y2^3+y2^2(2*g*z-2*g*y-q^2/y1^2)+q^2 = 0;
eqn2 = E==3;
That is as far as I got.
Thanks in advance.

Accepted Answer

Ameer Hamza
Ameer Hamza on 4 Apr 2020
Try this
g=9.81;v=1;y1=2;q=v*y1;z=0.9;
syms E y2
E1 = 2*g*y2^3+y2^2*(2*g*z-2*g*y1-q^2/y1^2)+q^2;
E2 = 3;
sol = double(solve(E1==E2));
fplot(E1, [-0.5 1.5]) % plot from -5 to 5 on x-axis
hold on;
fplot(E2, [-0.5 1.5])
plot(sol, E2*ones(size(sol)), 'ro');
  8 Comments
Ameer Hamza
Ameer Hamza on 4 Apr 2020
Brian, the function handle E1, has two inputs. fimplicit plot 1st on x and 2nd on y-axis.
John D'Errico
John D'Errico on 4 Apr 2020
Exactly. Had I created the function handle as:
E1 = @(y2,E) 2*g*y2.^3+y2.^2.*(2*g*z-2*g*y1-q^2/y1.^2)+q^2 - E;
then E would be on the y axis.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!