7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 1/10
Metodos Numericos
Hua Lun Barrigas
David Gualoto
Departamento de Ciencias ExactasNrcs: 4309
Docente Mgs. Fabian Ordonez
11 de Mayo de 2015
Trabajo Primer Parcial
1. Conocida la funcion f (x) = x2 + x − 23, halle un intervalo [a, b] donde f(a)*f(b)tenga signonegativo, realice como prueba de escritorio las tres primeras iteraciones y encuentre medianteel metodo de la biseccion sus raıces
Prueba de escritorio
Intervalo [3; 5] c1 = 3 + 5
2 = 4
1
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 2/10
f (3) = (3)2 + (3) − 23 = −11f (4) = (4)2 + (4) − 23 = −3
f (3) · f (4) = 33
Intervalo [4; 5]
c2 = 4 + 5
2 = 4,5
f (4,5) = (4,5)2 + (4,5) − 23 = 1,75f (4) = (4)2 + (4) − 23 = −3
f (4) · f (4,5) = −5,25
Intervalo [4;4,5]
c3 = 4 + 4,5
2 = 4,25
f (4,25) = (4,25)2 + (4,25) − 23 = −0,6875f (4) · f (4,25) = 2,0625
Siguiente Intervalo [4,25;4,5]
Codigo del programa
function [raiz] = ejer1biseccion(a,b,fx,delta)
%[raiz] = ejer1biseccion(3,5,’x.^2+x-23’,sqrt(eps))
f=inline(fx);
if((f(a)*f(b))>0)
display (’No hay raices’)
return
end
iter=0;
while abs(a-b)>delta
if((f(a)*f(b))<0)
c=(a+b)/2;
else f(c)==0
x=c;
return
end
if((f(a)*f(c))<0)
b=c;
else
a=c;
end
iter=iter+1;
end
raiz=c;
end
Ejecucion del programa
>> [raiz] = ejer1biseccion(3,5,’x.^2+x-23’,sqrt(eps))
2
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 3/10
raiz =
4.3218
3. Utilizando el metodo de la biseccion para f (x) = 1
x − 1, determine la raız al analizar en el
intervalo [3, 5] y en [0, 4]
Prueba de escritorio
Intervalo [3; 5]f (3) = 1
3−1 = 0,5
f (5) = 1
5−1 = 0,25
f (3) ·
f (5) = 0,125
No existe raız debido a que no hay cambio de signo en el intervalo como lo podemos apreciaren la grafica
Intervalo [0; 4]f (0) = 1
0−1 = −1
f (4) = 1
4−1 = 0,333
f (0) · f (4) = −0,333
El cambio de signo se debe a una asıntota en x=1, pero no existe raız en este intervalo y sepuede comprobar mediante la grafica
Codigo del programa
function [ raiz ] = ejer3(a,b,fx,delta)
f=inline(fx);
if((f(a)*f(b))>0)
display (’No hay raices’)
return
end
while abs(a-b)>deltaif((f(a)*f(b))<0)
c=(a+b)/2;
else f(c)==0
3
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 4/10
x=c;
return
end
if((f(a)*f(c))<0)
b=c;
else
a=c;
endend
raiz=c;
end
Ejecucion del programa
>> [ raiz ] = ejer3(3,5,’(1/(x-1))’,sqrt(eps))
No hay raices
5. Por el metodo de la secante, determine las raıces de la funcion y = x3−
5x2 + 3x + 2
Como podemos observar en la grafica utilizaremos los intervalos: [-2;0] y [3;5] que son losintervalos donde se encuentran las raıces.
Codigo del programa
function [raiz ] = ejer4(x0,x1,fx)
x(1)=x0;
x(2)=x1;
f=inline(fx);
n=1;
while abs(x(n+1)-x(n))>=sqrt(eps)
n = n+1;
x(n+1)=x(n)-f(x(n))*(x(n)-x(n-1))/(f(x(n))-f(x(n-1)));
end
raiz=x(n+1);
end
Ejecucion del programa
4
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 5/10
>> [raiz ] = ejer4(-2,0,’x^3-5*x^2+3*x+2’)
raiz =
-0.3914
>> [raiz ] = ejer4(3,5,’x^3-5*x^2+3*x+2’)
raiz =
4.1642
7. Hallar mediante el metodo de la biseccion, Newton y de la Secante una de las raıces realesde la ecuacion f (x) = x2
− πcos (x) ademas, determine en cada metodo el numero de
iteraciones utilizadas, el tiempo, el error absoluto y presente los valores en una tablacomparativa
Con ayuda de la grafica sabemos que la raiz se encuentra entre el intervalo [0;2] el cualusaremos.
Metodo de Biseccion
Codigo del programa
function [tiempo iter raiz] = ejer7biseccion(a,b,fx,delta)
%[tiempo iter raiz] = ejer7biseccion(0,2,’(x.^2)-pi*cos(x)’,sqrt(eps))
f=inline(fx);
if((f(a)*f(b))>0)
display (’No hay raices’)
return
end
ticiter=0;
while abs(a-b)>delta
if((f(a)*f(b))<0)
5
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 6/10
c=(a+b)/2;
else f(c)==0
x=c;
return
end
if((f(a)*f(c))<0)b=c;
else
a=c;
end
iter=iter+1;
end
raiz=c;
tiempo=toc;
end
Ejecucion del programa
>> [tiempo iter raiz] = ejer7biseccion(0,2,’(x.^2)-pi*cos(x)’,sqrt(eps))
tiempo =
0.037689609047867
iter =
27
raiz =
1.142395988106728
Metodo de Newton
Codigo del programa
function [ n tiempo raiz ] = ejer7newton(x0,fx,gx)
%[ n tiempo raiz ] = ejer7newton(1,’(x.^2)-pi*cos(x)’,’2*x+pi*sin(x)’)
f=inline(fx);
g=inline(gx);
tic
n=1;
if(gx==0)
display (’No hay raices’)
6
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 7/10
return
end
x(1)=x0;
x(2)=x(1)-f(x(1))/g(x(1));
while abs(x(n+1)-x(n))>sqrt(eps)n=n+1;
x(n+1)=x(n)-f(x(n))/g(x(n));
end
raiz=x(n+1);
tiempo=toc;
end
Ejecucion del programa
>> [ n tiempo raiz ] = ejer7newton(1,’(x.^2)-pi*cos(x)’,’2*x+pi*sin(x)’)
n =
4
tiempo =
0.004256582008265
raiz =
1.142395986171875
Metodo de la Secante
Codigo del programa
function [n,tiempo,raiz ] = ejer7Secante(x0,x1,fx)
%[ n,tiempo,raiz ] = ejer7Secante(1,2,’(x.^2)-pi*cos(x)’)x(1)=x0;
x(2)=x1;
f=inline(fx);
tic
n=1;
while abs(x(n+1)-x(n))>=sqrt(eps)
n = n+1;
x(n+1)=x(n)-f(x(n))*(x(n)-x(n-1))/(f(x(n))-f(x(n-1)));
endraiz=x(n+1);
tiempo=toc;
end
7
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 8/10
Ejecucion del programa
>> [ n,tiempo,raiz ] = ejer7Secante(1,2,’(x.^2)-pi*cos(x)’)
n =
7
tiempo =
0.010088963162648
raiz =
1.142395986171875
Tabla comparativaPara el error absoluto se trabajo con 10 decimales y con un valor real de raiz=1.1423959862
Metodo Raiz Tiempo (s) Iteraciones Error absolutoBiseccion 1.1423959881 0.03769 27 −1,9x10−9
Newton 1.1423959862 0.00426 4 0Secante 1.1423959862 0.01009 7 0
9. Aplicar el metodo de Newton para calcular los cortes entre las funciones f (x) = e−x yg (x) = x + 2
Para encontrar donde se cortan las dos funciones se igualas f (x) = g (x) = 0 obteniendo h (x)
f (x) = e−x ; g (x) = x + 2f (x) = g (x)
e−x
= x + 20 = e−x − x − 2
h (x) = e−x − x − 2
8
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 9/10
Codigo del programa
function [ raiz ] = ejer9newton(x0,hx,jx)
%[ raiz ] = ejer9newton(0,’exp(-x)-x-2’,’-exp(-x)-1’)
f=inline(hx);
g=inline(jx);
n=1;
if(jx==0)
display (’No hay raices’)
return
end
x(1)=x0;
x(2)=x(1)-f(x(1))/g(x(1));
while abs(x(n+1)-x(n))>sqrt(eps)
n=n+1;
x(n+1)=x(n)-f(x(n))/g(x(n));
end
raiz=x(n+1);
end
Ejecucion del programa
>> [ raiz ] = ejer9newton(0,’exp(-x)-x-2’,’-exp(-x)-1’)
raiz =
-0.4429
11. En la funcion f (x) = x
1
3. Se puede aplicar el metodo de Newton para localizar sus raıces?Justifique su respuesta
9
7/26/2019 Trabajo Métodos numéricos ESPE
http://slidepdf.com/reader/full/trabajo-metodos-numericos-espe 10/10
Como podemos observar en el grafico de la funcion antes mencionada no se puede aplicar elmetodo de Newton ya que por las tangentes en cualquier punto va a generar una oscilacion deizquierda a derecha sin convergencia alguna a la verdadera raiz.
Codigo del programa
function [ raiz ] = ejer11newton(x0,fx,gx)
%[ raiz ] = ejer11newton(1,’x.^(1/3)’,’(1/3)*x.^(-2/3)’)
f=inline(fx);
g=inline(gx);
n=1;
if(gx==0)
display (’No hay raices’)
return
end
x(1)=x0;
x(2)=x(1)-f(x(1))/g(x(1));
while abs(x(n+1)-x(n))>sqrt(eps)
n=n+1;
x(n+1)=x(n)-f(x(n))/g(x(n));
end
raiz=x(n+1);end
Ejecucion del programa
>> [ raiz ] = ejer11newton(1,’x.^(1/3)’,’(1/3)*x.^(-2/3)’)
raiz =
NaN -3.7838e+294i
10