Shortest distance from a point to this curve

前端 未结 2 2020
广开言路
广开言路 2021-01-12 20:19

I need to find the distance of multiple points to a curve of the form: f(x) = a^(k^(bx))

My first option was using its derivative, using a line of the f

2条回答
  •  醉梦人生
    2021-01-12 20:39

    The distance between a point (c,d) and your curve is the minimum of the function

    sqrt((c-x)^2 + (d-a^(k^(bx)))^2)
    

    To find its minimum, we can forget about the sqrt and look at the first derivative. Find out where it's 0 (it has to be the minimal distance, as there's no maximum distance). That gives you the x coordinate of the nearest point on the curve. To get the distance you need to calculate the y coordinate, and then calculate the distance to the point (you can just calculate the distance function at that x, it's the same thing).

    Repeat for each of your points.

    The first derivative of the distance function, is, unfortunately, a kind of bitch. Using Wolfram's derivator, the result is hopefully (if I haven't made any copying errors):

    dist(x)/dx = 2(b * lna * lnk * k^(bx) * a^(k^(bx)) * (a^(k^(bx)) - d) - c + x)
    

提交回复
热议问题