Derivadas en Matlab

 

Derivación numérica

 

El operador de la derivada, tiene la siguiente sintaxis:

 

• diff(x): x es un vector (x1, x2, . . . , xn), entonces esta orden crea o vector de n − 1 coordenadas

(x2 − x1, x3 − x2, . . . , xn − xn−1). Si x es una matriz, el operador de diferencias se aplica a cada vector columna.

Si se conocen los valores y1, y2, . . . , yn de una función y = f(x) los puntos x1, x2, . . . , xn, entonces se puede obtener una aproximación “grosera” de los valores de la derivada de f de los puntos x1, x2, . . . , xn−1 mediante un cociente de diferencias:

f0(xi) = yi+1 − yi

xi+1 − xi

, i = 1, 2, . . . , n − 1.

Utilizando la orden diff, se obtiene mediante:

diff(y)./diff(x)

donde x = (x1, x2, . . . , xn) e y = (y1, y2, . . . , yn).

 

Ejemplo. De una función y = f(x) conociéndose la tabla de valores:

 

x 0 1 2 3 4 5

y 1.5 0.8 1.7 4.7 7.2 15

 

Calcular numéricamente la derivada de la función f con los puntos especificados, utilizando la orden diff(f).

Solución:

 

clear, clc

x=0:5; y=[1.5 0.8 1.7 4.7 7.2 15];

der=diff(y)/diff(x)

 

 

Integración numérica

 

Matlab dispone de las órdenes trapz, quad e quad8 para el cálculo de integrales de funciones de una variable.

 

• trapz(x , y): Calcula la integral de f(x)dx que va desde a hasta b, donde x = (a = x1, x2, . . . , xn = b) es un vector dado e

y = (f(x0), f(x1), . . . , f(xn)). También puede ser x un vector columna e y una matriz con tantas

filas como x, dando como resultado un vector fila.

 

• trapz(y): No es lo mismo que el caso anterior pero a separación de los nodos del vector es unitaria.

 

• quad(’funci´on’,a,b): Calcula la integral de la función especificada, entre a e b, utilizando una

regla de Simpson adaptativa. El argumento función debe ser una función predefinida en

Matlab o definida en un fichero .m de función.

 

• quad8(’funci´on’,a,b): es lo mismo que la orden anterior pero calcula a integral con un algoritmo

basándose en una formula de Newton-Cotes de orden ocho.

 

Ejemplo. Calcula a integral

3

1

x3 + 1

lnx + senx

dx

utilizando las ordenes trapz, quad e quad8.

Solución:

En primer lugar, creamos a fichero ff.m donde se define la función subintegral:

función y=ff(x)

y =(x.3+1)./(Log(x)+sin(x));

despues escribimos:

 

quad(’ff’,1,3)

quad8(’ff’,1,3)

x=1:.1:3; y=ff(x);

trapz(x,y)

Derivadas en Matlab
Valoración de los usuarios
¿Tienes dudas? Mándanos un correo al email: derivadas@derivadas.es e intentaremos resolvértelas.