Está en la página 1de 6

DIFERENCIACIÓN NUMÉRICA

Objetivo

El alumno será capaz de aproximar el valor de las derivadas de diferente orden de


una función. o con valores tabulares mediante diferencias finitas divididas hacia
adelante, atrás y central.

Ejemplo 1

Encontrar la primera derivada hacia adelante, atrás y central evaluada en x0=1,


para la función:
3
f ( x)= x + x

comparar los resultados con la solución analítica obteniendo el error relativo para
h=0.5 y h=0.1

Diferencias f ’( x )

Valor
Aproximación Error
Verdadero
4 h=0.5 h=0.1 h=0.5 h=0.1
Adelante 5.7500 4.3100 0.4375 0.0775
Atrás 2.7500 3.7100 0.3125 0.0725
Centrada 4.2500 4.0100 0.0625 0.0025
Código

clc, clear, close all


%Derivación Numérica
%Ejemplo 1
%Solución analítica
syms x
f=x^3+x;
x0=1
d=diff(f,1)
vv=subs(d,x0) %Valor Verdadero
f=inline(f)
%Cuando h=0.5
disp('Cuando h=0.5')
h=0.5;
%Primera derivada
%Adelante
pdad=(f(x0+h)-f(x0))/h
er=abs((vv-pdad)/vv);
er=vpa(er,6)
%atras
pdat=(f(x0)-f(x0-h))/h
er=abs((vv-pdat)/vv);
er=vpa(er,6)
%Centrada
pdce=(f(x0+h)-f(x0-h))/(2*h)
er=abs((vv-pdce)/vv);
er=vpa(er,6)

%Derivación Numérica
%Ejemplo 1
%Solución analítica
syms x
f=x^3+x;
x0=1
d=diff(f,1)
vv=subs(d,x0) %Valor Verdadero
f=inline(f)
%Cuando h=0.1
disp('Cuando h=0.1')
h=0.1;
%Primera derivada
%Adelante
pdad=(f(x0+h)-f(x0))/h
er=abs((vv-pdad)/vv);
er=vpa(er,6)
%atras
pdat=(f(x0)-f(x0-h))/h
er=abs((vv-pdat)/vv);
er=vpa(er,6)
%Centrada
pdce=(f(x0+h)-f(x0-h))/(2*h)
er=abs((vv-pdce)/vv);
er=vpa(er,6)

Ejemplo 2

Encontrar la segunda derivada hacia adelante, atrás y central evaluada en x0=1,


para la función:

( 3 x−1 )2
f ( x )= 2
( x2 +3 )
comparar los resultados con la solución analítica obteniendo el error relativo para
h=0.1.

Diferencias f ’’( x )

Valor
h=0.1
Verdadero
-0.25 Aproximación Error
Adelante -0.4017 0.606748
Atrás -0.0250 0.900168
Centrada -0.2447 0.0211843

clc, clear, close all

%Derivación Numérica
%Ejemplo 2
%Solución analítica
syms x
f=(3*x-1)^2/(x^2+3)^2
x0=1;
d=diff(f,2)
vv=vpa(subs(d,x0),6) %Valor Verdadero
f=inline(f)

%Segunda derivada numérica


%Adelante
h=0.1;
sdad=(f(x0)-2*f(x0+h)+f(x0+2*h))/h^2
er=abs((vv-sdad)/vv);
er=vpa(er,6)
%Atras
sdat=(f(x0-2*h)-2*f(x0-h)+f(x0))/h^2
er=abs((vv-sdat)/vv);
er=vpa(er,6)
%Centrada
sdce=(f(x0-h)-2*f(x0)+f(x0+h))/h^2
er=abs((vv-sdce)/vv);
er=vpa(er,6)

Ejemplo 3

Dada la siguiente tabla, estimar f’(x) para cada “x”

x 2 4 6 8 10
f(x) 1.3466 1.2747 1.1733 1.1277 1.1116
f’(x) -0.0360 -0.0433 -0.0368 -0.0154 -0.0081
h=2

X0=2=> X0=4,6,8
ADELANTE CENTRADA
F(x0+h)= X0=10=>
1.2747 ATRAS
F(x0)=
1.3466
f’(x)

clc, clear, close all


%Drivación numérica
%Ejemplo 3
xi=[2 4 6 8 10];
fxi=[1.3466 1.2747 1.1733 1.1277 1.1116];
h=2;
%Cuando x0=2
%Adelante
x02=(fxi(2)-fxi(1))/h

%Cuando x0=4
%Centrada
x04=(fxi(3)-fxi(1))/(2*h)

%Cuando x0=6
%Centrada
x06=(fxi(4)-fxi(2))/(2*h)

%Cuando x0=8
%Centrada
x08=(fxi(5)-fxi(3))/(2*h)

%Cuando x0=10
%Atrás
x010=(fxi(5)-fxi(4))/h
Ejemplo 4

Se tomó la posición de un avión caza sobre un portaviones durante el aterrizaje:

t (s) 0 0.51 1.03 1.48 1.74 2.36 2.45 3.24 3.82 4.15
x 154 174 187 205 220 235 237 253 286 296
(m)
Use la fórmula de diferenciación numérica de mayor precisión posible para
determinar:

a). La velocidad (dx/dt) en t = 1.74 s.

h=0.71

Velocidad=35.2113 m/s

t (s) 0 0.51 1.03 1.48 1.74 2.36 2.45 3.24 3.82 4.15
x 154 174 187 205 220 235 237 253 286 296
(m)
Use la fórmula de diferenciación numérica de mayor precisión posible para
determinar:

b). La aceleración (dv/dt) en t = 2.36 s.

Aceleración=−15.4959 m/s 2

Código

clc, clear, close all


%Drivación numérica
%Ejemplo 3
xi=[1.03 1.74 2.45];
fxi=[187 220 237];
% a). La velocidad (dx/dt) en t = 1.74 s.
h=0.71;
%Primera derivada centrada
v=(fxi(3)-fxi(1))/(2*h)

xi=[1.48 2.36 3.24];


fxi=[205 235 253];
% b). La aceleración (dv/dt) en t = 2.36 s.
%Segunda derivada centrada
h=0.88;
a=(fxi(1)-2*fxi(2)+fxi(3))/h^2
Utiliza aproximaciones por diferencias centradas, para estimar la segunda
derivada:

2 −x
f ( x )=x −e

En x0 = 0.5 para h = 0.25. Compara el resultado con el valor exacto.

Valor
h=0.1
Verdadero
1.39347 Aproximación Error
Centrada 1.3903 0.00227174

Código

clc, clear, close all


%Derivación Numérica
%Solución analítica
syms x
f=x^2-exp(-x);
x0=0.5
d=diff(f,2)
vv=vpa(subs(d,x0),6) %Valor Verdadero
f=inline(f)
%Cuando h=0.25
disp('Cuando h=0.25')
h=0.25;
%Seguna derivada
%Centrada
pdce=((f(x0-h)-2*f(x0))+f(x0+h))/h^2
er=abs((vv-pdce)/vv);
er=vpa(er,6)

También podría gustarte