# Tangent to curve through outside point

PGvdVeen shared this question 12 years ago

Since it is part of the math program in the Netherlands I want to demonstrate that also tangents to curves exists through an outside point. (Not on the curve)

The Tangent command seems to allow this straightforward since it asks for a point and a curve. But it does not result in the real tangents.

I do not succeed in finding a general approach. :( For example, in the attached file, not all tangents are found when the point is moved.

Is there a general approach possible? :confused:

Paul van de Veen

https://ggbm.at/544125

1

Hi,

The on-line 'Help' says

Tangents

Tangents to a conic section can be produced in several ways (also see command Tangent):

· Selecting a point A and a conic c produces all tangents through A to c.

· Selecting a line g and a conic c produces all tangents to c that are parallel to line g.

· Selecting a point A and a function f produces the tangent line to f in x = x(A).

Note: x(A) represents the x-coordinate of point A. If point A lies on the function graph, the tangent runs through point A.

That isn't what you would expect from the name of the tool!

... and Tangent[point,curve] gives the tangent to the curve where the normal from the point to the curve meets the curve!

Kathryn

1

Hi,

That isn't what you would expect from the name of the tool!

Kathryn

Hello Kathryn,

Yes, the name of the tool is confusing/misleading.

Of course there is a theoretical perfect approach.

Given function f and point P we can derive for the tangent Segment(P,Q) with y(Q)=f(x(Q))and with x(Q) following as the roots of the equation: f'(x)- (y(P)-f(x)) / (x(P)-x) = 0

Unfortunately, the Zero function does not gives all the correct Roots/Nulstelle/Nulpunten of this equation.

Also the intersect with y=0 does not give the correct roots. At least not all of them.

So there is also not an easy tool to create for this job.

Paul

1

Tricky one!

Here's my attempt. You can adjust 'n' and 'h' if you want. Hopefully someone will be along in a minute with a nicer solution :)

https://ggbm.at/544135

1

Tricky one!

My compliments! I considered such using a list of the intersecting points but I could not get it running.

I have to comtemplate your Union[list2, {}] :o

1

Union[list2, {}]

That's to remove duplicates :)

I'm sure there's a simpler way to do that too but I can't recall it ATM :)

1

Hi Kathryn

You clarified a lot of points, unfortunately I could not understand this notation

and Tangent[point,curve] gives the tangent to the curve where the normal from the point to the curve meets the curve!

regards

1

Hi Kathryn

You clarified a lot of points, unfortunately I could not understand this notation

and Tangent[point,curve] gives the tangent to the curve where the normal from the point to the curve meets the curve!

regards

This is indeed not clear. (worse, it is not true)

The idea of Markus makes sense but instead of g(x) = (f(x) - b) / (x - a) - f'(x) and finding its roots by stepwise Intersection it proves to work much better when we consider the function h(x)=g(x) = (f(x)-b)- (x-a)f'(x) since this is a more regular function.

Intersect gves now all roots immediately.

1

Hi,

Sorry - I think it's my poor English!

The tangent tool appears to give three different types of tangent:

1) with a conic, we get what we expect - the tangent to a curve from a point

2) with a function, we get the tangent to the curve at the point on the curve where x = x(A)

3) with a parametric function (Curve), we get another interpretation, as you can see in the attached file (I hope!)

Kathryn

https://ggbm.at/544137

1

The idea of Markus makes sense but instead of g(x) = (f(x) - b) / (x - a) - f'(x) and finding its roots by stepwise Intersection it proves to work much better when we consider the function h(x)=g(x) = (f(x)-b)- (x-a)f'(x) since this is a more regular function.

Yes of course, that's much better :flushed:

BTW, Root[g] is better than using Intersect[ ]

https://ggbm.at/544139

1

:anguished: WAOW! I'm impressed. :anguished:

Regards, jtico

1

In fact, by increasing the polynomial points of the given worksheet, point F should be provided of new lines through itself in order to fullfill all solutions of tangency.

It can be done automatically without the root-seeking approach of Markus.

Lijst={Intersect[g, b]}

This gives in a list all zero's and adding tangential lines to each of them (x,f(x)) is easy. Works excellent! :D

Until I saved and re-opened again. :imp: Above statement is then causes an error! See screenprint. What a pity since the possibility of finding roots and adding them to a list would be a wonderful possibility.

Hope that this can be repaired!

https://ggbm.at/544141

1

Hi Kathryn

thanks for clarifying your ideas . :laughing:

1

Lijst={Intersect[g, b]}

Try:

Lijst={Root[g]}

1

Lijst={Intersect[g, b]}

Try:

Lijst={Root[g]}

Yes, this works better. In the attached .ggb I get all tangents to a polynoom. This is a nice compact approach.

Curious, I can not redefine the function.

https://ggbm.at/544145

1

Nice work there :)

Regards, jtico

1

hello

Curious, I can not redefine the function.

you can open protocol of worksheet and move the function above another objects

if an objects is dependnt of function and the redefined function is down GG says you the redefinition is not possible

saludos

1

Curious, I can not redefine the function.

It has nothing to do with the order.

I have used the command Root[f] but this requires the function to be a polynome.

As soon as I add for example a sin(x) to this polynomial, the message "can nor redefine the function" appears.

As long as I make "polynomial" changes, I can redefine the function.

The underlaying problem is that there is no safe as well as fast method to find the roots of an arbitrarily function. There will be always a function where any root seeking method fails.

Therefore, finding tangents from an outside point to an arbitrarily function is still an unresolved question. For polynomials, this approach works fine.

Paul