Você está na página 1de 4

Clculo Numrico

Abril Julio 09
Laboratorio 01
Pregunta 1)
Escriba en un archivo llamado psilon_machine.m, una funcin que calcules el psilon
de la maquina. Compare su resultado con el comando psilon.
psilon_machine.m
function [e,iter,err]=epsilon_machine
err=0;
iter=0;
e=1;
while (1+e~=1)
iter=iter+1;
e=e/2;
end
e=2*e; %es el mayor valor 'antes' de que 1+e = e
err=abs(e-eps);

Al ejecutar psilon_machine.m se obtiene:


e =2.2204e-016
iter =53
err = 0
Lo que quiere decir que el psilon de la mquina es eps =2.2204e-016, y
psilon_machine.m halla la solucin exacta en 53 iteraciones.

Pregunta 2)
Escriba un archivo llamado raz_p2.m una funcin que calcule las races de un polinomio
de grado dos usando las formulas usuales.
raz_p2.m
function [x1,x2]=raiz_p2(a,b,c)
delta=b^2-(4*a*c);% delta es el valor del discriminante
if a==0
error('Esta no es una ecuacion cuadratica')
end
if delta>=0
x1=(-b+sqrt(delta))/2*a;
x2=(-b-sqrt(delta))/2*a;
else
disp('discriminante negativo')
x1=(-b/2*a)+((i*sqrt(delta))/2*a);
x2=(-b/2*a)-((i*sqrt(delta))/2*a);
end
end

Escriba una funcin llamada eraiz_p2.m para obtener las races de un polinomio de
grado dos, similar a la anterior pero con la siguiente modificacin:
o Escoja una de las formulas usuales para calcular una de las races (escoja
la ms adecuada y justifique su eleccin). Luego, para calcular la otra raz
use la formula:
Al ejecutar ejercicio2.m se obtiene:

eraiz_p2.m
function [x1,x2]=eraiz_p2(a,b,c)
delta1=b^2-(4*a*c);
if a==0
error('Esta no es una ecuacion cuadratica')
end
% evaluamos que tan cercanos son los valores de b y (b^2-(4*a*c)^(1/2),
% porque si son cercanos al restarse ocacionaran errores de cancelacin
dif1=abs(b-sqrt(delta1));
if delta1>=0
if dif1>1 %si no hay riesgo de cancelacin, se restan
x1=(-b+sqrt(delta1))/2*a;
x2=c/a*x1;
else % si hay riesgo de ancelacin se suman
x2=(-b-sqrt(delta1))/2*a;
x1=c/a*x2;
end
else
disp('discriminante negativo')
if dif1>1 %si no hay riesgo de cancelacin, se restan
x1=(-b/2*a)+((i*sqrt(delta1))/2*a);
x2=c/a*x1;
else % si hay riesgo de ancelacin se suman
x2=(-b/2*a)-((i*sqrt(delta1))/2*a);
x1=c/a*x2;
end
end
end
Polinomio

Mtodo

Raz

Raz encontrada

a=1
b= 1e-4
c=10

raz_p2.m

X1

-0.000050000000000
3.162227659773095i
-0.000050000000000
3.162327659773094i
-0.000050000000000
3.162327659773094i
-0.000050000000000
3.162327659773094i
-0.000000005000000
3.162277665168380i
-0.000000005000000
3.162277655168380i
-0.000000005000000
3.162277665168380i
-0.000000005000000
3.162277665168380i

X2
eraiz_p2.m

X1
X2

a=1
b= 1e-8
c=10

raz_p2.m

X1
X2

eraiz_p2.m

X1
X2

Raz exacta
(Mat roots[a b c])
+
+
+
+
-

-0.000050000000000
3.162277659773095i
-0.000050000000000
3.162277659773095i
-0.000050000000000
3.162277659773095i
-0.000050000000000
3.162277659773095i
-0.000000005000000
3.162277660168380i
-0.000000005000000
3.162277660168380i
-0.000000005000000
3.162277660168380i
-0.000000005000000
3.162277660168380i

Error Absoluto

+
+

c) En los casos anteriores, calcule el error absoluto cometido al evaluar el polinomio en


las races dadas por la funcin. Explique qu observa en el resultado obtenido y explique
a qu se debe.
R)

Pregunta 3)
Escriba una funcin llamada taylorexp.m que calcule
de Taylor de grado n.
taylorexp.m

aproximando con la expansin

function [e,err]=taylorexp(x,n)
e=0;
for i=0:n
e=(x^i)/(factorial(i))+e;
err=(abs(e-exp(x)))/(exp(x));%calculo del error relativo de la aproximacion
end
end

a) Grafique el error relativo dado por la funcin taylorexp.m para todo x


perteneciente al intervalo [-10,0] (escoja 250 puntos igualmente espaciados
en el intervalo) y n=20, 40, 60,80.
b) Use el hecho de que
y repita el paso anterior. Compare los
resultados obtenidos con los obtenidos anteriormente.
Taylorexp2.m
function [e,err]=taylorexp2(x,n)
e=0;
for i=0:n
if x<0
e=1/((x^i)/(factorial(i))+e);
else
e=(x^i)/(factorial(i))+e;
end
err=(abs(e-exp(x)))/(exp(x));%calculo del error relativo de la aproximacion
end
end

R) al ejecutar ejercicio3.m se obtienen los resultados de la aproximacin de


por la funcin taylorexp.m para todo x perteneciente al intervalo [-10,0]
(escoja 250 puntos igualmente espaciados en el intervalo) y n=20, 40, 60,80
con el correspondiente valor absoluto para cada aproximacn. Igualmente,
se expresan estos mismos resultados Usando el hecho de que
haciendo uso de una nueva funcin llamada Taylorexp2.m

Qu puede decir acerca del error de aproximar

para los distintos n.

Qu observa en b y explique a qu se deben estos resultados


Para x > 0 el clculo de la aproximacin de
no resulta incorrecto, excepto
cuando x>>1 tanto para Taylorexp.m y Taylorexp2.m En cambio para
nmeros negativos (con x < 0) en Taylorexp.m pueden ocurrir resultados
errneos debido a cancelaciones en la expresin. Pero Usando el hecho de
que
se evita la cancelacin y Taylorexp2.m arroja resultados
correctos para x positivo y negativo, por lo que se puede decir que ste es un
mtodo mejor.

Você também pode gostar