Supongamos que tengo alguna función y quiero encontrar tal que . Puede ser que utilice el método de Newton-Raphson. Pero esto requiere que sé que el derivado de la función . Una expresión analítica para puede no estar disponible. Por ejemplo, puede definirse mediante un código informático complicado que consulta una base de datos de valores experimentales.x f ( x ) ≈ 0 f ′ ( x ) f f
Pero incluso si se complica, puedo aproximar para cualquier particular, por la elección de un número pequeño y calculting .f ' ( un ) un ε f ' ( un ) ≈ f ( un + ε ) - f ( a )
He escuchado que hay distintos inconvenientes en este enfoque, pero no sé cuáles son. consejos de Wikipedia que "Usando esta aproximación podría resultar en algo así como el método de la secante cuya convergencia es más lenta que la del método de Newton".
¿Alguien puede dar más detalles sobre esto y proporcionar una referencia que discuta particularmente los problemas con esta técnica?
fuente
Respuestas:
En aras de la notación, supongamos que (es decir, que es una función vectorial que toma un vector como entrada y salida a un vector del mismo tamaño). Hay dos preocupaciones: coste computacional y la precisión numérica.F: Rnorte→ Rnorte
Calculando la derivada (la matriz jacobiana, J ( x ) , o ( ∇ f ( x ) ) T , o lo que se prefiere) usando diferencias finitas va a requerir n evaluaciones de la función. Si pudiera calcular la derivada usando la aritmética de coma flotante directamente desde la definición, tendría que calcular el cociente de diferenciaD f(x ) J( x ) ( ∇ f( x ) )T norte
para cada , suponiendo que no hace ningún tipo de "finito inteligente diferenciación" (como Curtis-Powell-Reid), porque usted sabe (o puede detectar) el patrón de escasez de D f . Si n es grande, que podría ser una gran cantidad de evaluaciones de la función. Si tiene una expresión analítica para D f , entonces calcularla podría ser más barato. Automático (también conocido como algorítmico) métodos de diferenciación también se puede utilizar en algunos casos para calcular D f en aproximadamente 3 a 5 veces el coste de una evaluación de la función.i = 1 , ... , n D f norte D f re f
También hay preocupaciones numéricas. Obviamente, en una computadora, no podemos tomar el límite de un escalar a medida que va a cero, por lo que cuando aproximamos , realmente estamos eligiendo ε para que sea "pequeño" y calculandore f ε
donde significa que es una aproximación, y esperamos que sea una muy buena aproximación. Calcular esta aproximación en aritmética de coma flotante es difícil porque si elige ε demasiado grande, su aproximación podría ser mala, pero si elige ε demasiado pequeña, podría haber un error de redondeo significativo. Estos efectos se tratan en el artículo de Wikipedia sobre la diferenciación numérica en detalle superficial; más referencias detalladas se pueden encontrar dentro del artículo.≈ ε ε
Si el error en el Jacobiano matriz no es demasiado grande, iteraciones de Newton-Raphson se convergen. Para un análisis teórico detallado, véase el capítulo 25 de precisión y estabilidad de Numerical Algoritmos por Nick Higham , o el artículo de Françoise Tisseur sobre la que se basa.re f
Las bibliotecas suelen tener cuidado de estos detalles algorítmicos para usted, y por lo general, las implementaciones de la biblioteca del algoritmo de Newton-Raphson (o sus variantes) convergerán bastante bien, pero de vez en cuando, no será un problema que causa algunos problemas debido a los inconvenientes encima. En el caso escalar , que haría uso de método de Brent , debido a su robustez y buena velocidad de convergencia en la práctica.( n = 1 )
fuente