Many extraneous tangent lines

Dr. Gerry Wojnar shared this question 6 months ago
Needs Answer

Exploring elliptic curves such as C = ImplicitCurve(x^3 - x - y^2). Then Tangent(C, P) for some point P on C, creates about 6 tangent lines, some of which appear to be duplicates. I desire the tangent line AT P, but the other lines given are tangents to C (passing through P), tangent at other points on C. The collection of lines is a single object, so I can't delete one or more lines without deleting all lines.

IF my curve were the graph of a function f, though it would be a pain since I am considering tangent lines at several points on C, I suspect I could define a new function, g, restricted to x-values within some small distance of the x-coordinate of my point P, and then construct Tangent(g, P). But I'm not sure if I can define a similar restriction of the implicit curve.

Comments (21)

photo
1

Better to hide the no desired lines

or you can do a custom tool

photo
1

Sometimes there are two different but almost indistinguishable lines, only one of which is the true tangent, and it is very difficult, if possible at all, to know which line is which.

Any suggestions on how to go about building a custom tool to create only the true tangent line?

photo
photo
1

UPDATES: I only observe the above issue as follows. See attached file EllipticNxP.ggb .

(1) Begin with point X on the implicit curve eq1. Construct myTan2Eq1_X = Tangent(X, eq1), which works. Intersect eq1 & myTan2Eq1_X, which gave two points, say P & Q, where Q is exactly at the location of X. Construct Tangent(P, eq1), and it is here where it generates five (5) tangent lines [labelled T_1, ..., T_5; colored gray], not just the true local tangent line.

(2) Oh, I tried a thought above in my original post, of restricting the implicit curve:

eq2 = ImplicitCurve((x^3 - x - y^2)/((x - x(F)<epsilon)*(y - y(F)<epsilon)))

This indeed does graph the restricted implicit curve, eq2. BUT SOMETIMES I cannot intersect this restricted curve with another path object, even when I tried setting epsilon = 50, thus obtaining a "complete" picture of the curve.

I constructed a free line h = Line(G, H), Intersecting line h with the restricted eq2, I was able to obtain 3 intersection points, R, S, T on eq2. Trying to construct myTan2Eq2_R = Tangent(R, eq2) produced nothing whatsoever-- no tangent line, no entry in the Algebra listing of constructed objects. On the other hand myTan2Eq1_S = Tangent(S, eq1) did produce 5 tangent lines at S [colored yellow]. Further, I also intersected line h with the unrestricted eq1, producing points I, J, K, with I at the location of R, J at the location of S, K at the location of T. Constructing myTan2Eq1_K produced a single tangent line at K. Attempting to construct myTan2Eq2_I produced nothing whatsoever.

photo
1

El manejo de curvas implícitas tiene los mismos o más requisitos que el manejo de ecuaciones, a veces no es posible manejar todas las ecuaciones luego no es posible manejar todas las curvas implícitas.

Es conveniente no complicar las expresiones de dichas curvas y sobre todo no usar expresiones no derivables o no continuas en ellas. por ejemplo myTan2Eq2_R = Tangent(R, eq2) no es manjable porque la expresion de eq2 no es continua por las comparaciones que tiene su expresion. pero definiendo eq3=implicitcurve(f(x)-y^2) entonces myTan2Eq3_R = Tangent(R, eq3) sí es obtenida. se puede entonces ver si las condiciones se cumplen o no y descartarla segun el resultado.

photo
1

I do not understand how eq3 = implicitcurve(f(x) - y - 2) has anything to do with this question.

I do not understand what You mean by "if the conditions are met or not" (si las condiciones se cumplen o no). What conditions are You referring to?

I do not understand what You mean by "discard it according to the result" (descartarla segun el resultado). What does "it" refer to? If I discard the result, then I am back to the starting point, with nothing gained.

The elliptic curve y^2 = x^3 - x is a very basic & fundamental curve, so shouldn't there be some way to handle it effectively?

I also now tried g(x) = sqrt(x^3 - x), P_g = intersection of g(x) & line h, then Tangent(P_g, g(x) ), which fails.

I also now tried g2 = implicitcurve(f(x) - y^2 +sqrt(x) - sqrt(x) ), p_{g2} = intersection of g2 & line h, then tangent(P_{g2}, g2), which also fails.

Thanks again!

photo
1

I also now tried g(x) = sqrt(x^3 - x), P_g = intersection of g(x) & line h, then Tangent(P_g, g(x) ), which fails.

Please post your file

photo
1

Please see my extended note in a textbox in the ggb file. One item from it: when using the Intersection tool, trying to intersect a line with a function graph, it appears to make a difference which object (i.e., line or function) is clicked on first, and which is clicked on secondly. [Either that, or maybe maybe it makes a difference exactly where on the line and/or function I click.]

Thanks!

photo
1

I also now tried g(x) = sqrt(x^3 - x), P_g = intersection of g(x) & line h, then Tangent(P_g, g(x) ), which fails.

Sorry, your file doesn't contain g(x). Please post the correct one

photo
1

Michael, sorry-- it is the correct file but I had renamed the function g to be fNew. The textbox in the ggb file discusses it under this name.

photo
2

Intersect Tool works fine for me with those 2 objects/t0RtzUYiAAAAAElFTkSuQmCC

photo
1

what about next down post and error in tangent?

all tangents at not polynomial implicit functions are wrong

photo
1

ignore this

photo
1

NEW ANALYSIS: Here's a collection of lines based at a point slightly removed from origin (so that attempted intersections with function fNew do not produce the origin) .

(0) Sometimes I experience different behaviour of the Intersect tool versus the Intersect command.


(1) IF I start with a line that crosses fNew above the green point L_1, then the Intersection tool works, SORT OF, producing an actual (visible) point, C_2 using the black line q. BUT then I dragged point B_2 on vertical line n down below the X-axis (and the desired intersection point remained appropriately present until B_2 hit the X-axis), waiting a few seconds there. I now raise B_2 above the X-axis: the intersection point reappeared as it should exactly when B_2 hit & then rose above the X-axis. HOWEVER, upon repeating this pull below the X-axis procedure (perhaps a few times), the desired reappearance of the intersection of line q with fNew does NOT occur. ONCE or twice this procedure did cause a reappearance of the intersection point after waiting 1 second or so.

(2) IF I start with a line, e.g., brown line m or red line l crossing fNew below approximately point L_1, then the Intersection tool fails to produce an actual point (although it does produce a nonexistent named point in the Algebra listing of created objects). In such cases, if I then raise the determining point of the line on vertical line n to a height that would have produced a successful intersection had I started there, disappointingly no intersection appears at such good heights.

photo
1

Please post a simple .ggb file if you think there's a problem. You can generally do what you want using one of the syntaxes here https://wiki.geogebra.org/e...

photo
1

Michael, since your link to the Intersection command page uses "Index of Intersection Point", I hunted for but could not find info on this question: When there are multiple intersection points how does GeoGebra decide in what order to number them?

Thanks.

photo
photo
1

Un ejemplo simple de error en el cálculo de la tangente

Files: foro.ggb
photo
1

Apparently, the problem is not just with the Tangent function. Attempting to intersect any nearly vertical line with your implicit curve x^3 + y^2 +sin(x) - 4 = 0, fails; I found partial failure for slopes from 20 to 23.5, and complete failure for slopes > 23.5 .

photo
1

@mathmagic: thanks, we'll check that bug!

photo
photo
1

More ImplicitCurve trouble: With Neg(x) = - x, f(x) = (x+1)(x)(x-1), and Gold = {1+\sqrt{5})/2, then Neg intersects elliptic curve eq1 = ImplicitCurve(f(x) - y^2) at three points: A = (1- Gold, Gold}-1), B = (0,0), C = (Gold}, - Gold). Create X = Point(eq1). Then SetValue(X, A) and SetValue(X, Point({1 - Gold, Gold - 1})) only place X near the correct location. Repeating the SetValue commands does not push X any closer to the correct coordinates.

How can I get X to move to the correct location on eq1 ?


See attached file.

photo
1

Define eq1 as 2 functions

photo
1

I need to (& I already have) intersect about 30 lines with the entire implicit curve, in a dynamic way, including animating or dragging X around the entire implicit curve.

Is it possible to put your suggested 2 functions into some kind of joint object (e.g., a list), and then intersect lines with the joint object, or place a roaming point on the joint object?

Thanks.

photo
© 2021 International GeoGebra Institute