MATLAB Answers

Graphing a hyperbola and its tangent lines

조회 수: 5(최근 30일)
mdawg22
mdawg22 9 Mar 2020
Hello I am trying to graph a hyperbola along with a tangent line.
The tangent line must have an x value of x=(8.9) I want matlab to calculate the y value at this point, and than i want to plot it.
Here is my code so far, note that the first value is just a test tangent line.
Everytime I attempt to graph at the point x = 8.9 i simply just get the same graph, nothing changes.
Any suggestions?
syms x y;
F(x,y) = 2*y-3*x-3*x*y+x^2+y^2-6; %This is my hyperbola
F(1.948,1.063) %This is my test tangent line
Fx(x,y) =diff(F,x); Fy(x,y) = diff(F,y);
m1 = Fx(1.948,1.063); m2 = Fy(1.948,1.063);
fimplicit(m1*(x-1.948) + m2*(y-1.063) == 0, [-10,10], '-b', 'LineWidth', 3);
hold on;
fimplicit(F == -11.005, [-100,100], '-r', 'LineWidth', 3);
hold off;
assume(y, 'real');
xPt = 8.9; %This is the point i would like to graph a tangent line at
yPts = double(solve(F(xPt, y) == -11.005, y))
yPt1 = yPts(1); yPt2 = yPts(2)
mx1 = double(Fx(xPt, yPt1)); my1 = double(Fy(xPt, yPt1)); mx2 = double(Fx(xPt, yPt2)); my2 = double(Fy(xPt, yPt2));
fimplicit(m1*(x-1.948) + m2*(y-1.603) == 0, [-10,10], '-b', 'LineWidth', 3);
hold on;
fimplicit(mx1*(x-xPt) + my1*(y-yPt1) == 0, [xPt - 0.1, xPt+0.1, yPt1 - 0.5, yPt1+0.1], '-r', 'LineWidth', 3);
fimplicit(mx2*(x-xPt) + my2*(y-yPt2) == 0, [xPt - 0.1, xPt+0.1, yPt2 - 0.5, yPt2+0.1], '-g', 'LineWidth', 3);
fimplicit(F == -11.005, [-100,100], '-k', 'LineWidth', 3);
hold off;

  댓글 수: 0

댓글을 달려면 로그인하십시오.

답변(1개)

Christopher Creutzig
Your tangent lines are very short, and you plot the hyperbola right on top of them. Change the order, increase the size, and they become visible:
fimplicit(m1*(x-1.948) + m2*(y-1.603) == 0, [-10,10], '-b', 'LineWidth', 3);
hold on;
fimplicit(F == -11.005, [-100,100], '-k', 'LineWidth', 3);
fimplicit(mx1*(x-xPt) + my1*(y-yPt1) == 0, [xPt - 10, xPt+10, yPt1 - 10, yPt1+10], '-r', 'LineWidth', 3);
fimplicit(mx2*(x-xPt) + my2*(y-yPt2) == 0, [xPt - 10, xPt+10, yPt2 - 10, yPt2+10], '-g', 'LineWidth', 3);
hold off;

  댓글 수: 0

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by