Documente Academic
Documente Profesional
Documente Cultură
NUMERICOS
DERIVACION
PROFESOR:
LUIS MARCILLO
ING.JOSE
NOMBRE:
Joseline Naranjo
NIVEL:
Cuarto
PERIODO:
JULIO 2013
Metodos Numericos
Aplicar la f
ormula de dos puntos adelantada al calculo de la derivada primera
de f (x) = sin(x) en x = 2,13432. Comprobar que al ir reduciendo h el error se
reduce de manera aproximadamente lineal con h.
El siguiente script en MATLAB aplica la formula de dos puntos adelantada
al c
alculo de la derivada primera de f (x) = sin(x) en x = 2,13432 como solicita
el enunciado, adem
as comprueba la reduccion lineal del error.
Para el desarrollo del script fue necesario:
1. Delimitar los valores que h tomara, y con que intervalos:
As h toma 50 valores entre 1x106 y 1x101 .
2. Conocer el valor real de la derivada:
Se sabe que la derivada del seno es el coseno, por lo tanto:
f 0 (x) = cos(x)
Como se pide evaluar en x = 2,13432, se tiene:
f 0 (2,13432) = cos(2,13432) = 0,5342
3. Graficar el error relativo en escala logartmica.
clear all
clc
f=@(x)(sin(x))
x=2.13432
h=linspace(1E-6,1E-1,50);
for i=1:50
vd(i) = ( f(x+h(i)) - f(x) ) / h(i);
end
vd
t=cos(2.13432);
for i=1:50
er(i)= abs(100*(t-vd(i))/t);
end
loglog(h,er)
As, en la u
ltima iteraci
on se tiene que la derivada de la funcion f (x) = sin(x)
en x = 2,13432 es:
f 0 (x) = 0,5342
Para comprobar que al ir reduciendo h el error se reduce de manera aproximadamente lineal con h se observa la siguiente grafica en escala logartmica que
1
contiene en el eje 0 x0 los valores que tomo h y en el eje 0 y 0 los errores relativos
correspondientes a cada h:
Es evidente que la f
ormula de diferencia retrasada tiene una mejor presicion
3
Supongamos que se conoce el valor de la derivada mediante la formula de diferencia adelantada para tres valores de h diferentes. Es posible estimar el valor
del h
optimo?. Es posible estimar el error que se comete en el calculo en cada
uno de los casos?. Aplicarlo al calculo de la derivada de la funcion f (x) = sin(x)
en x = 0,6 usando h = 0,1, h = 0,01, y h = 0,0000000001.
Como se sabe que:
f 00 (x)h
f1 f0
h
2
Ser
a posible determinar el h optimo.
As mismos se sabe que el error de truncamiento esta dado por M h/2 en donde
M es la frontera de f 00 (t) para un t cercano a x.
Asumiendo que el error de redondeo sea 2/h. Siendo un valor impuesto por
la m
aquina o proceso.
Se tiene que el error total E, esta dado por la suma de los errores de truncamiento
y redondeo:
M h 2
E=
+
2
h
Al derivar E respecto a h e igualando a cero se encontra los puntos crticos, es
decir el valor
optimo de h, as:
f 0 (x) =
M
2
dE
=0=
2
dh
2
h
entonces:
r
h=2
M
Para aplicar la f
ormula del Error es necesario definir M y .
= 0,5x109
M = |f 00 (x)| |cos(x)| 1
por lo tanto M = 1
Aplicando a la funci
on f (x) = sin(x) en x = 0,6 usando h = 0,1, h =
0,01, y h = 0,0000000001. mediante el siguiente script:
f=@(x)(sin(x));
x=0.6;
h(1)=0.1;
h(2)=0.01;
h(3)=0.0000000001;
%c
alculo de la derivada
for i=1:3
d(i) = ( f(x+h(i)) - f(x) ) / h(i);
%c
alculo del eror
E(i) = h(i)/2 + (2*.5E-9)/h(i);
end
5
Se tiene los vectores (d) y (E), que contienen los valores de la primera derivada
y del error respectivamente para cada h:
d=
E=
0,79575
0,05000001
0,82249
0,0050001
0,82533
10,00000000005
Para encontrar el h
optimo se reemplaza los valores de y M en la formula:
r
h=2
M
r
0,5x109
h=2
1
se tiene el valor
optimo para h:
h = 4,4724x105
Consulta: Calcular cotas para el error de truncacion que se comete al aproximar las derivadas de las funciones f (x) = 1/(1 + sin(x)) y g(x) = ln(1 + 2x).
Calcular las cotas teniendo en cuenta el error de redondeo y comprobar que los
errores reales est
an por debajo de lo permitido por la cota.
Sea fk = yk + ek , donde ek es el error que se tiene al calcular f (xk ), incluyendo los errores de medida y el error de redondeo. Entonces podemos escirbir
la f
ormula para calcular la derivada de una funcion como:
f 0 (x) =
f (x + h) f (x h)
+ E(f, h)
2h
f1 f1
+ E(f, h)
2h
Donde el termino del error E(f, h) tendra una parte debida al error de redondeo
y otra debida al error de truncamiento:
f 0 (x) =
E(f, h) =
h2
e1 e1
f 000 (c)
2h
3!
2
M h2
+
2h
3!
|E(f, h)|
M h2
+
h
6
(0,5x109 ) h2
+
h
6
2*h )
2(0,5x109 ) h2
+
h
6
2*h )
por lo tanto M = 1
g=@(x)((5174635971848881*x^4)/216172782113783808 (3374731039133*x^3)/26388279066624 +
(1028874356470605599*x^2)/5404319552844595200 (127423046416981343*x)/1351079888211148800 +
453909699963344279/450359962737049600);
x=[1 1.2 1.4 1.8 2];
h=4.4724E-5;
%c
alculo de la derivada
d(5)=( 3*g(x(5)) -4*g(x(5) -h) +g(x(5) -2*h) ) / ( 2*h );
for i=1:4
d(i) = ( -g(x(i) +2*h) +4*g(x(i)+h) -3*g(x(i))) / 12*h;
end
As con una transposici
on del vector (d) obtenido, se tiene la siguiente tabla:
x
1.0
1.2
1.4
1.8
2.0
g(x)
1.000000
0.997502
0.990025
0.960398
0.940678
g 0 (x)
-4.88224269487247 x1013
-8.14029447381825 x1012
-1.68314873715771 x1011
-3.12025175996116 x1011
-0.101442000252464
11
Hay otra alternativa para cumplir con el enunciado del problema, usar la
funci
on del ejercicio 1, de esta manera:
>> x=[1 1.2 1.4 1.8 2];
>> gx=[1 0.997502 0.990025 0.960398 0.940678];
>> d=derivada_df (x,gx)
As, se obtiene el vector (d) que contiene las derivadas primeras de la funcion
(g(x)) en los puntos (x); al transponer dicho vector y ponerlo en la tabla:
x
1.0
1.2
1.4
1.8
2.0
g(x)
1.000000
0.997502
0.990025
0.960398
0.940678
g 0 (x)
-0.0250
-0.0748
-0.2963
-0.1972
-0.1477
12
Usando la f
ormula de diferencia centrada calcular la derivada primera de la
funci
on f (x) = arctan(x) en el punto x = sqrt(2) ( el valor correcto es 1/3).
Utilizar diferentes valores de h y estudiar los efectos de los errores de redondeo
y de truncaci
on.
Para cumplir con el enunciado, con los mismos principios que en literales anteriores, se desarrolla el siguiente script:
f=@(x)(atan(x));
x=sqrt(2);
t=1/3;
h=linspace(1E-6,1E-1,50);
for i=1:50
%c
alculo de la derivada
d(i) = ( ( f(x+h(i)) -f(x-h(i)) ) / (2*h(i))
%c
alculo del eror
er(i)= abs(100*(t-d(i))/t);
end
loglog(h,er)
);
d
er
As en la u
ltima iteraci
on del script para calcular la derivada de f (x) =
arctan(x) en el punto x = sqrt(2) se tiene que:
f 0 (x) = 0,3333
La siguiente gr
afica que contiene los valores de h - error relativo en escala
logartmica nos ayudar
a en el analisis de los errores de redondeo y truncacion
para el presente c
alculo.
As, se observa que el error es bajo y aceptable (< 5 %) para todos los valores de h, a pesar de que se observa un cambio en la pendiente de la recta, se
dice que esto se debe a que al disminuir h vamos restando valores de f(x) cada
vez m
as pr
oximos y esto se traduce en un mayor error de redondeo; es as que
la mejor presici
on no se consigue con el valor de h mas pequeno posible, sino
con un valor que sin producir un gran error de redondeo disminuya lo suficiente
el error de truncaci
on.
13
A continuaci
on se analizara el porcentaje del error total que representa el
error de truncaci
on y de redondeo.
De la f
ormula para el error total E obtenida en el ejercicio 3:
E=
M h 2
+
2
h
2x
2 2
|
|
|
(x2 + 1)2
9
se tiene que:
1x109
h
Al separar esta f
ormula y calcular y graficar que porcentaje del total representa
cada termino y sus valores, mediante el siguiente script:
E = 0,157h +
f=@(x)(atan(x));
x=sqrt(2);
t=1/3;
h=linspace(1E-1,1E-6,50);
for i=1:50
14
%c
alculo de la derivada
d(i) = ( ( f(x+h(i)) -f(x-h(i)) ) / (2*h(i)) );
%c
alculo del error relativo
erel(i)= abs(100*(t-d(i))/t);
%c
alculo del error de truncamiento
etru(i)=0.157*h(i);
%c
alculo del error de redondeo
ered(i)=(1E-9)/h(i);
%c
alculo del error total (truncamiento + redondeo)
etot(i)=etru(i)+ered(i);
%c
alculo del porcentaje de error de truncamiento
poetru(i)=(100*etru(i)) / etot(i);
%c
alculo del porcentaje de error de redondeo
poered(i)=(100*ered(i)) / etot(i);
end
subplot(1,2,1);plot(h,poetru)
hold on
subplot(1,2,1);plot(h,poered,r)
subplot(1,2,2);plot(h,etru)
hold on
subplot(1,2,2);plot(h,ered,r)
Se tiene el siguiente gr
afico:
En donde la gr
afica de la izquierda representa los valores de h en el eje x y
los del porcentaje del error total correspondientes a cada h en el eje y; y la de la
derecha, de la misma manera los valores de h en el eje x y los valores del error
correspondientes a cada h en el eje y. En ambas de color azul para el error de
truncamiento y de rojo para el de redondeo.
Al analizar los gr
aficos se puede apreciar que al ir cambiando (disminuyendo)
el valor de h, al inicio el error de truncamiento no es representativo en el error
total cuyo valor depende totalmente del error de redondeo, luego el de redondeo
disminuye y el de truncamiento aumenta hasta llegar a un punto de equilibrio,
aproximadamente cuando h = 1x103 en donde cada error representa la mitad
del total; el proceso disminucion-aumento contin
ua respectivamente hasta cuando h = 2x103 en donde los porcentajes son lo contrario que al inicio, es decir
el error total se debe al error de truncamiento y el error de redondeo tiende a 0.
As se concluye repitiendo lo antes ya dicho: la mejor presicion no se consigue
con el valor de h m
as pequeno posible, sino con un valor que sin producir un
gran error de redondeo disminuya lo sifuiciente el error de truncacion.
15
16