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)
Hola man, muy buen aporte tengo un trabajo sobre metodos de integracion numerica, no se si tienes mas info o si tienes esos algoritmos programados en algun lenguaje para que los compartas, gracias.
Hola! quiero hacer curso de acceso en la UNED, pero necesito apuntes de matemáticas que me ayuden a superar el curso, etoy muy mal en la parte de derivadas e integrales