Hay una ambigüedad en la definición del problema. La diferenciación puede ser simbólica o en un punto.
Por ejemplo, deje que el usuario ingrese f (x) = sin (x). Ahora, ¿deseas encontrar la derivada de la función como un todo? Como en f ‘(x) = cos (x)? (Esto se conoce como diferenciación simbólica). ¿O desea conocer la derivada en algún punto definido por el usuario, digamos en x = 0, y devolver la salida f ‘(0) = 1?
Para la diferenciación simbólica:
No hay un algoritmo estándar. Básicamente, debe hacer alguna coincidencia de patrones y cierta inducción. Aquí hay una descripción general:
1) El caso base es que la función f (x) es un polinomio. Luego, mostrar la derivada es sencillo: simplemente divida la función sobre + y -, y encuentre las derivadas de cada término de la forma [math] ax ^ {b} [/ math].
2) Otros casos base incluyen derivados de funciones trigonométricas, funciones exponenciales, etc.
3) Ahora, cualquier función puede tener una de las siguientes formas:
f (x) + g (x)
f (x) * g (x)
f (x) / g (x)
f (g (x))
Maneje cada caso por separado, dividiendo aproximadamente +, la regla del producto, la regla del cociente y la regla de la cadena, respectivamente.
- ¿La programación lineal admite un algoritmo de tiempo fuertemente polinómico?
- ¿Los mismos algoritmos dan resultados diferentes en diferentes paquetes / idiomas?
- ¿Qué estructura de datos usaría para diseñar un programa de planificación de producción?
- En Facebook, ¿qué determina los ocho amigos que se muestran en esa cuadrícula de imágenes de perfil 4 × 2?
- ¿Cuál es el mejor sitio en línea para aprender estructuras de datos y algoritmos?
Para derivada en un punto:
Uno de los algoritmos más comunes usados aquí se llama diferencia finita. La idea básica es la siguiente:
[matemáticas] \ frac {f (x + h) – f (x)} {h} [/ matemáticas] da la pendiente de la secante a la curva f (x). Cuando h va a cero, la expresión da la pendiente de la tangente en x. Entonces, el problema aquí es evaluar la función en dos puntos muy cercanos y luego evaluar la expresión anterior.
El problema principal aquí es garantizar la estabilidad numérica. Debe asegurarse de que maneja los números de coma flotante con cuidado todo el tiempo, de lo contrario causará una pérdida de precisión, y los resultados que obtendrá serán muy diferentes de la respuesta real.