Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: Derivada de una función lineal de una variable en Excel

Veremos una manera de obtener la ecuación derivada a partir de una función linea de una sola variable...
Obviamente las restricciones son altas, y por ese motivo nos limitaremos a una sola variable.

El ejemplo se basa en el concepto de Newton de función derivada (leer más aquí)

En nuestro desarrollo veremos el ejemplo sobre la función:
f(x) = 2x2-1x

(que para los principiantes, su función derivada deberá ser f'(x)= 4x-1


amplia la imagen


Comenzaremos generando con programación nuestras funciones personalizadas.

Una de ellas ya se explicó en este blog (leer aquí).

La UDF 'FuncionesLineales' permite tratar una ecuación escrita como texto en una celda como una ecuación 'de verdad'... y es la base del cálculo diferencial que veremos a continuación.


La segunda de las UDF programadas (llamada 'Derivada') replica el límite o cociente de Newton:

límite cuando h tiende a cero de (f(a+h)-f(a))/ h


Insertaremos las siguientes funciones en un módulo estándar:

Function Derivada(ecuacion As String, punto As Double)
Dim h As Double
Dim fa As Double, fah As Double
h = 0.000000000001

'reoplicaremos el cálculo del límiete cuadno se tiende a cero
'nos aprovecharemos de nuestra UDF qeu convierte en funciones operables
'ecuaciones escritas en una celda
fa = FuncionesLineales(ecuacion, punto)
fah = FuncionesLineales(ecuacion, punto + h)

'y ua vea calculado los valores en los puntos 'a+h' y en 'a'
'devolvemos el dato a la función
Derivada = (fah - fa) / h

End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function FuncionesLineales(fx As String, valor_x As Double) As Double
'http://excelforo.blogspot.com/2018/05/vba-una-funcion-para-gobernarlas-todas.html

'aplicamos dos reemplazamientos
'1- para cambiar la variable por el valor concreto asignado
'2- tenemos en cuenta el cambio de configuración de los separadores decimales
'(recuerda que en el entorno del editor de VB el separador decimal es el punto, y no la coma!!)

func = Replace(Replace(fx, "x1", valor_x), ",", ".")

'retornamos el valor a la función creada
FuncionesLineales = Application.Evaluate(func)

End Function


Trabajemos con nuestras funciones.
En A12:A32 añadimos valores desde -5 a 5 en intervalos de 0,5.
En B12:B32 añadimos el valor de f(x), es decir, insertamos nuestra función:
=FuncionesLineales($B$9;$A12)

Y en C12:C32 el valor en cada punto de la derivada f'(x) insertando nuestra función UDF:
=Derivada($B$9;A12)

recuerda que en B9 tenemos escrita nuestra función f(x)=(2*x1^2)-1*x1


Con los valores de la función derivada para cada punto conseguidos y conocidos esos puntos (la x de nuestra equciación), podemos sabe y componer nuestra ecuación derivada, lo que haremos aplicando la función ESTIMACION.LINEAL

Así pues seleccionamos las celdas E13:F13 y escribimos:
=REDONDEAR(ESTIMACION.LINEAL(C12:C32;A12:A32;VERDADERO);2)

es decir, indicamos como argumento de 'conocidas_y' el rango con los valores de la derivada (C12:C32)
y como 'conocido_x' al de las equis (A12:A32)

Redondearemos el resultado para no arrastrar decimales innecesarios a la ecuación derivada..

Validamos matricialmente!!! (presionamos Ctrñ+Mayusc+Enter).



Con ese resultado ya sabemos la pendiente y constante de nuestra recta derivada (f'(x) = m x + b)
Siendo 4 la pendiente y -1 la constante, y por tanto nuestra ecuación derivada buscada será:

f'(x)=4x-1

Lo que buscábamos...

Componiéndola con fórmulas en la celda F15 será:
=CONCATENAR(TEXTO(E13;"0,00");"x";SI(F13>0;"+"&TEXTO(F13;"0,00");SI(F13


Recuerda que este proceso no es extrapolable a todo tipo de funciones!!


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: Derivada de una función lineal de una variable en Excel

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×