Calculate minimum distance between point and steady but NON differentiable function

1 visualización (últimos 30 días)
Hey,
I could not find any mathematical explanation regarding this topic on the internet and hope for your help. Is there a way to determine the minimum between a point P and a piecewise function, e.g.
syms x
A = piecewise(964<=x<=5007,((2450-10)/(5007-964))*(x-964)+10,x>5007,2450);
P = [4900;3000]
For a straight line this is normally done by finding the vertical to the envelope. But how does it look for a NON differentiable function? Is there only an iterative solution?Mode1_Outer.jpgThanks for your help!

Respuesta aceptada

infinity
infinity el 12 de Jul. de 2019
Hello,
There is two options that you can think
Assume we have a point P(xp, yp) and a function f(x) that we may not have derivative. Then,
1. we can define a distant between P and f by
Now, what we have to do is to find the minimum of d(x).
There are several approaches in Matlab can help you find the minimum of d.
2. We can split piecewise function into several intervals such that in each interval the function has derivative and we can find distance from P to each line and also at the intersection. Then, we can compare these solution to find the global minimum.
  2 comentarios
Dario Walter
Dario Walter el 15 de Jul. de 2019
Editada: Dario Walter el 15 de Jul. de 2019
Thank you Trung.
Regarding 1. Usually you find the minimum by calculating the derivative. However, this is not possible in the present case.
2. This might work
infinity
infinity el 15 de Jul. de 2019
Hello,
If you might want to use gradient based method to find the minimum. The method 1 should not work. However, you could use direct optimization (non - based gradient) to find the minimum of a given function without care about smooth property. For example, genetic algorihtm which you could find in matlab. For this small problem, you might use "fminbnd" in matalb.
Hope it could help you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Optimization en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by