Вы находитесь на странице: 1из 4

DERIVACIN NUMERICA

Problema : Aproximar numericamente la derivada de f(x):

f(x h) f(x)
h 0
h

f ' (x) lim

Primer Mtodo: (Parece claro): Elegimos una sucesin h k / hk 0


Calculamos el lmite de la sucesin

Dk

f(x h) f(x)
; k 1, 2, 3,
h

Para un nmero finito (n), Tomamos Dn; como respuesta :

D n f ' (x)

(k 1, 2, 3, ..., n)

Ejemplo: f(x) e x ; usaremos : h=1; ; . Aproximar f(x) en (0; 1). Y trazar


la recta tangente:

y y 0 f ' (x)(x x0 ) reemplazam os f ' (x) por D k y 1 Dk (x 0) y Dk x 1


Se construye secantes con los puntos: (0; 1) y (x+h; f(x+h)) =(h; f(h)) ; conforme
h disminuye la secante se aproxima a la recta tangente
Puntos
(0; 1) - (1; e)=(1; 2.7183)
(0; 1) - (1/2; e1/2)=(0.5; 1.6487)
(0; 1) - (1/4; e1/4)=(0.25; 1.2840)

Recta Tangente

y= 1.7183x + 1
y= 1.2974x + 1
y= 1.1361x + 1

Ejemplo 2: f(x) e x ; x=1;. Calcular Dk; usando : hk=10-k; k=1, 2, 3,


(el valor exacto del lmite es f (1)= e1=2.718281828)

f k e1 h k e

hk

1. 0.100000000000000
2.
0.010000000000000
3
0.001000000000000
4
0.000100000000000
5
0.000010000000000
6
0.000001000000000
7
0.000000100000000
8
0.000000010000000
9
0.000000001000000
10
0.000000000100000
11
0.000000000010000
12
0.000000000001000
13
0.000000000000100
14
0.000000000000010
15
0.000000000000001
16
0.000000000000000
17
0.000000000000000
18
0.000000000000000
19
0.000000000000000
20
0.000000000000000

0.285884195487388
0.027319186557871
0.002719641422533
0.000271841774708
0.000027182954199
0.000002718283187
0.000000271828196
0.000000027182818
0.000000002718282
0.000000000271828
0.000000000027183
0.000000000002718
0.000000000000271
0.000000000000027
0.000000000000003
0
0
0
0
0

D k e1 h k e /h k
2.858841954873879
2.731918655787080
2.719641422532781
2.718417747078483
2.718295419912309
2.718283186986525
2.718281963964842
2.718281777447373
2.718281599811689
2.718278935276430
2.718270053492233
2.718270053492233
2.713385072183883
2.664535259100376
2.664535259100376
0
0
0
0
0

Observamos que con el valor h12=10-12, es el que d la mejor aproximacin


D12=2.71827005349
La intencin es determinar la mejor aproximacin antes que los terminos
empiecen alejarce del lmite
Ejemplo:
0.00488498130835=|D13-D12|>|D12-D11|=0.00.044= 4.44x 10-16.
Luego la mejor aproximacin es D12

D12=2.71827005349 f (1)= e1=2.718281828


Luego, este hecho nos sugiere que debemos calcular los D k hasta que :

|Dn+1-Dn|>|Dn-Dn-1|
Segundo Mtodo: FORMULA DE DIFERENCIAS CENTRALES (de orden O(h2))
Supongamos que f C3[a, b] y que x-h, x, x+h [a, b].
Entonces:

f ' ( x)

f(x h) f(x - h)
2h

h 2 f ' ' ' ( )


O( h 2 ); [a, b]
Cuyo error de truncamiento es
6
Ejemplo: Sea f(x)=cos (x); con incremento: hk=10-k+1=101-k; k=1, 2, 3, 4,
(hk=1, 0.1, 0.001, )
Nota: f(x) cos(x) f ' (x) sen( x) f ' (0.8) sen(0.8) 0.717356090899523...

(Asumamoslo como valor verdadero)

D k / D k

f(x h k ) f(x - h k ) cos(0.8 h k ) cos(0.8 h k )

2h k
2h k

hk

D k cos(0.8 hk ) cos(0.8 hk ) /(2 * h k )

1.
2.
3
4
5
6
7
8

1.000000000000000
0.100000000000000
0.010000000000000
0.001000000000000
0.000100000000000
0.000010000000000
0.000001000000000
0.000000100000000

-0.603634336267164
-0.716161095069120
-0.717344135024456
-0.717355971340150
-0.717356089703913
-0.717356090884635
-0.717356090917942
-0.717356090640386

En general: DERIVACIN NUMERICA MEDIANTE LIMITES


Construccin de la aproximacin numrica a f(x), mediante la generacin de
una sucesin

f ' (x) D k

f(x 10 -k h) f(x - 10 -k h)
, para k 0, 1, 2, , n
2 *10 -k h

|Dn+1-Dn|>|Dn-Dn-1| | Dn-Dn-1|<tol. Que es


el criterio con el que se trata de encontrar la mejor aproximacin.
Dn f (x)
Que contina hasta que:

Programa No. 1 Secantes


x=0:0.01:1;
y=exp(x);
plot(x,y);
h=1;
Dk1=exp(h)-exp(0)/h;
z1=Dk1.*x+1;
h=1/2;
Dk2=(exp(h)-exp(0))/h;
z2=Dk2.*x+1;
h=1/4;
Dk3=(exp(h)-exp(0))/h;
z3=Dk3.*x+1;
plot(x,y,'b',1,exp(1),'or',0.5,exp(0.5),'or',0.25,exp(0.25),'or',x,z1,
'r--',x,z2,'m--',x,z3,'k--'), grid on

f(x h k ) f(x) e1 h k e
Programa No. 2. Aproximaciones con D k

hk
hk
clear
clc
format long
for i=1:20
h(i)=10^(-i);
f(i)=exp(1+h(i))-exp(1);
d(i)=(exp(1+h(i))-exp(1))/h(i);
k(i)=i;
end

[k',h',f',d']
Programa No. 3. Aproximaciones con

Dk

f(x h k ) f(x - h k ) cos(0.8 hk ) - cos(0.8 - h k )

2*hk
2*hk

clc;format long
h=1;
H(1)=h;
D(1)=(cos(0.8+h)-cos(0.8-h))/(2*h);
for i=1:2
h=h/10;
H(i+1)=h;
D(i+1)=(cos(0.8+h)-cos(0.8-h))/(2*h);
end
i=2;
%
while(abs(D(i+1)-D(i))<abs(D(i)-D(i-1)))
h=h/10;
H(i+2)=h;
D(i+2)=(cos(0.8+h)-cos(0.8-h))/(2*h);
i=i+1;
end
L=[H', D']

Вам также может понравиться