Graphing a hyperbola and its tangent lines

조회 수: 2 (최근 30일)
mdawg22
mdawg22 2020년 3월 9일
답변: Christopher Creutzig 2020년 3월 9일
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;

답변 (1개)

Christopher Creutzig
Christopher Creutzig 2020년 3월 9일
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;

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by