Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Métodos Abiertos de Búsqueda de Raíces
Métodos Abiertos de Búsqueda de Raíces
Nombre:
Grupo:
4MV13
Materia:
Métodos numéricos
Profesores:
REPORTE DE CLASE
Vídeo 1. Búsqueda de raíces y método gráfico.
Donde nos sirve para conocer raíces en funciones no lineales.
Raíces en funciones. - Son el valor de x en cualquier f(x)=0. Donde
gráficamente una raíz es el valor en x en el cual la función cruza con el eje
x.
Donde los métodos cerrados se nombran:
• Método gráfico
• Método de la bisección.
2
𝑓(𝑥) = 𝑒 −𝑥 − 0.1𝑥
Código
clc; clear; close all
%Ejercicio 1 de la clase de búsqueda de raíces y met grafico
%4MV3
x= -10:0.1:10;
f=exp(-x.^2)-0.1*x;
plot(x,f)
hold on
grid on
y=zeros(size(x));
plot(x,y)
Gráfica
Ejemplo 2.
Encontrar la raíz de la siguiente función con el método gráfico con 3 cifras
de precisión.
𝑓(𝑥) = 𝐼𝑛(𝑥) − 10
No puede tener valores negativos porque sino sería imaginaria por lo tanto
no se podría graficar.
Código
x= 5000:0.1:50000;
y=log(x)-10;
%Logaritmo natural es log
plot(x,y)
hold on
grid on
y=zeros(size(x));
plot(x,y)
Gráfica
Graficas
1. Sustitución directa
clc; colear; close all;
x= 0:0.1:5*pi
y=cos(x)
plot(x,y)
x= 0:0.1:5*pi
f=inline('cos(x)');
y=f(x);
plot(x,y)
3. Función anónima
clc; clear; close all;
x= 0:0.1:5*pi
f=inline('cos(x)');
f=@(x)cos(x)
y=f(x);
plot(x,y)
4. Variable simbólica
clc; clear; close all;
syms x
f=cos(x);
fplot(f,[0,5*pi])
Ejemplo:
Graficar la función en el intervalo [-5,5]
2
𝑓(𝑥) = 2𝑒 −𝑥 + 1
Código
clc; clear; close all;
x= -5:0.1:5;
y=2*exp(-x.^2)+1;
plot(x,y)
Gráfica
Se encontró una
diferencia en el
ejemplo al utilizar
variable simbólica,
donde el programa
no marca algún error
si al operador ^ no se
le coloca (.)
Vídeo 3. Introducción el método de la bisección.
El método de bisección sirva para búsqueda de raíces, donde el primer paso
de todos los pasos es la gráfica, por lo tanto, es importante es saber
implementar nuestra grafica de forma adecuada, lo cual cabe destacar
que el intervalo es la clave de este método, porque sino lo empleamos bien
puede haber discontinuidades, por consiguiente, tendríamos problemas
con el ejercicio. Cabe mencionar que cuando hay un cambio de signo
significa que existe una raíz.
Pasos para el método de la bisección:
1. Graficar la función en un valor apropiado.
2. Definir un intervalo de trabajo [a, b]
3. Calcular el punto medio, donde será mi primera aproximación de la
raíz (Xi) y el error.
𝑎+𝑏
𝑥𝑖 =
2
𝑏−𝑎
𝑒=
2
4. Si el error es menor o igual a la tolerancia determinada en el problema,
entonces ya acabamos la raíz aproximada es xi, por el contrario,
realizar lo siguiente.
• Si 𝑓(𝑎)𝑓(𝑥𝑖) < 0, entonces redefinir b como xi
• Si 𝑓(𝑥𝑖 )𝑓(𝑏) < 0, entonces redefinir a como xi.
log(𝑡𝑜𝑙) − log(𝑏 − 𝑎)
≤𝑛
− log(2)
log(𝑏 − 𝑎) − log(𝑡𝑜𝑙)
𝑛≥
log(2)
Vídeo 5. Método del punto fijo.
𝒇(𝒓𝒂í𝒛) = 𝟎
Ejemplo 1.
Encontrar la raíz de la siguiente función utilizando el método del punto
fijo con una tolerancia de 0.001
𝒇(𝒙) = 𝟓𝒙 + 𝟑 𝒄𝒐𝒔 (𝒙)
5𝑥 + 3 cos(𝑥) = 0
%Iteración 2
CÓDIGO x2=g(x1)
e2=abs(x2-x1)
clc; clear; close all
%EJEMPLO 1 CLASE ASINCRONA %Iteración 3
%PUNTO FIJO x3=g(x2)
%4MV3 e3=abs(x3-x2)
%Paso 1 graficar y definir
intervalo %Iteración 4
x=-5:0.1:5; x4=g(x3)
f=inline('5*x+3*cos(x)'); e4=abs(x4-x3)
y=f(x);
plot(x,y) %Iteración 5
grid on x5=g(x4)
e5=abs(x5-x4)
%Paso 2 descomponer f(x) en
f(x)=x-g(x) %Iteración 6
% x1=-3/5cos(x) x6=g(x5)
% x2=arcos(-5/3*x) e6=abs(x6-x5)
g=inline('-3/5*cos(x)'); %Iteración 7
x0=2; x7=g(x6)
e7=abs(x7-x6)
%Iteración 1
x1=g(x0)
e1=abs(x1-x0)
TABLA DE ITERACIONES
GRÁFICA
RESULTADO
Ejemplo 2.
Encontrar la raíz de la siguiente función utilizando el método del punto
fijo con una tolerancia de 0.001
𝟏𝟓
𝒇(𝒙) = 𝒙 −
𝒆𝟐 − 𝟐𝒙𝟐 + 𝟒
CÓDIGO
clc; clear; close all
%EJEMPLO 2 CLASE ASINCRONA
%PUNTO FIJO
%4MV3
%Paso 1 graficar y definir intervalo
x=-5:0.1:5;
f=inline('x-15./(exp(x)-2*x.^2+4)');
y=f(x);
%plot(x,y)
%grid on
g=inline('15./(exp(x)-2*x.^2+4)');
x0=-0.5;
%Iteración 1
x1=g(x0)
e1=abs(x1-x0)
%Iteración 2
x2=g(x1)
e2=abs(x2-x1)
%Iteración 3
x3=g(x2)
e3=abs(x3-x2)
%Iteración 4
x4=g(x3)
e4=abs(x4-x3)
%Iteración 5
x5=g(x4)
e5=abs(x5-x4)
%Iteración 6
x6=g(x5)
e6=abs(x6-x5)
%Iteración 7
x7=g(x6)
e7=abs(x7-x6)
TABLA DE ITERACIONES
GRÁFICA
RESULTADO
Δ𝑦 𝑦1 − 𝑦0
𝑓 ′ (𝑥0 ) = 𝑚 = =
Δ𝑥 𝑥1 − 𝑥0
−𝑓(𝑥0 )
𝑓 ′ (𝑥0 ) = → Mi aproximación x0 es mi aproximación. Y la función lo
𝑥1 −𝑥0
mismo. El único problema sería x1, pero quedaría despejado.
𝑓(𝑥0 )
𝑥1 = 𝑥0 −
𝑓 ′ (𝑥0 )
Se necesita un valor previo para calcular el valor actual es por ello sirve
esta fórmula para calcular iteraciones:
f(𝑥𝑖−1 )
𝑥𝑖 = 𝑥𝑖 − 1 −
f ′ (𝑥𝑖−1 )
Pasos para seguir de método analítico:
1. Graficar la función en un intervalo apropiado.
2. Elegir un valor inicial xo cercano a la raíz.
2.5 VERIFICAR QUE SE CUMPLA EL CRITERIO
3. Calcular la siguiente iteración (aproximación a la raíz) y el error
iterativo de la siguiente forma:
𝒙𝒊 = 𝒈(𝒙𝒊−𝟏 )
𝒆 = |𝒙𝒊 − 𝒙𝒊−𝟏 |
4. Repetir el paso anterior hasta que el error obtenido sea menor o igual
a la tolerancia determinada del problema.
Ejemplo 1.
Encontrar la raíz de la siguiente función utilizando el método del
punto fijo con una tolerancia de 0.0001
𝒇(𝒙) = 𝟓𝒙 + 𝟑 𝒄𝒐𝒔 (𝒙)
Aproximadamente son 5 o 6 iteraciones, debemos verificar si
llegamos a una iteración 10, porque quiere decir que estamos
haciendo algo mal.
CÓDIGO
x0=2;
%Encontramos la derivada
syms x
f1=diff(f(x));
f1=inline(f1);
tol=0.0001
% Iteración 1
x1=x0-(f(x0)/f1(x0))
e1=abs(x1-x0)
% Iteración 2
x2=x1-(f(x1)/f1(x1))
e2=abs(x2-x1)
% Iteración 3
x3=x2-(f(x2)/f1(x2))
e3=abs(x3-x2)
% Iteración 4
x4=x3-(f(x3)/f1(x3))
e4=abs(x4-x3)
% Iteración 5
x5=x4-(f(x4)/f1(x4))
e5=abs(x5-x4)
GRÁFICA
TABLA DE ITERACIONES
RESULTADO
Ejemplo 2.
Encontrar la intersección de las siguientes funciones utilizando el método
de Newton-Raphson con una tolerancia de 0.001
2
𝑓(𝑥) = 𝑒 −𝑥 − 0.43𝑥
1
𝑔(𝑥) = −8.3𝑥 +
2
Para encontrar la intersección las funciones se van a igualar para después
igualarla a cero y que sea una sola función.
1 2
−8.3𝑥 + = 𝑒 −𝑥 − 0.43𝑥
2
2 1
𝑒 −𝑥 − 0.43𝑥 + 8.3𝑥 − =0
2
La cual representara la función con la que encontraremos la intersección.
Para la solución de este problema debemos la última iteración tenemos el
resultado de la coordenada en el eje x, por lo tanto para encontrar la
intersección en el eje y, debemos evaluar en cualquier función para saber
el resultado.
CÓDIGO
clc; clear; close all
x=-5:0.1:5;
f=inline('exp(-x.^2)-0.43*x');
g=inline('-8.3*x+1/2');
plot(x,f(x))
hold on
grid on
plot(x,g(x))
%Función de ambas
F=inline('exp(-x.^2)-0.43*x+8.3*x-1/2');
syms x
F1=diff(F(x));
F1=inline(F1);
x0=1;
%Iteracion 1
x1=x0-F(x0)/F1(x0)
e1=abs(x1-x0)
%Iteracion 2
x2=x1-F(x1)/F1(x1)
e2=abs(x2-x1)
%Iteracion 3
x3=x2-F(x2)/F1(x2)
e3=abs(x3-x2)
GRÁFICA
TABLA DE ITERACIONES
RESULTADO
Primer ejercicio
Código a).
x=0:0.1:2;
f=inline('0.8.*exp(x./2)-sin(x)');
y=f(x);
plot(x,y,'g')
grid on
hold on
y=zeros(size(x));
plot(x,y,'r')
g=inline('exp(x./2.0).*(2.0./5.0)-cos(x)');
x0=1;
%LEYENDAS DE GRAFICA
title('PUNTO FIJO TO:0.01 x0=0.5');
xlabel('Eje X');
ylabel('Eje Y');
legend('Función original','X')
%Iteración 1
x1=g(x0)
e1=abs(x1-x0)
%Iteración 2
x2=g(x1)
e2=abs(x2-x1)
%Iteración 3
x3=g(x2)
e3=abs(x3-x2)
%Iteración 4
x4=g(x3)
e4=abs(x4-x3)
%Iteración 5
x5=g(x4)
e5=abs(x5-x4)
%Iteración 6
x6=g(x5)
e6=abs(x6-x5)
%Iteración 7
x7=g(x6)
e7=abs(x7-x6)
Gráfica
Tabla de iteraciones
i xi e
1 0.1192 0.8808
2 -0.5683 0.6875
3 -0.5417 0.0266
4 -0.5517 0.01
5 -0.5481 0.0037
6 -0.5494 0.0014
7 -0.5489 0.0005032
Resultado
La raíz no converge en intervalo x>0 pero raíz de la
función es -0.5489 con un error de 0.0005032 utilzarno
criterios
Codigo b).
clc;
clear;
close all;
f=inline('log(2+z)-z.^2');
z=-2:0.1:2;
y=f(z);
plot(z,y)
grid on
hold on
g=inline('sqrt(log(2+z))');
z0=1;
y=zeros(size(z));
plot(z,y)
>> z1=g(z0)
>> e=abs(z1-z0)
>> z2=g(z1)
>> e=abs(z2-z1)
>> z3=g(z2)
>> e=abs(z3-z2)
>> z4=g(z3)
>> e=abs(z4-z3)
z5=g(z4)
>> e=(z5-z4)
Grafica
Tabla de iteraciones
Resultados
La raiz es de 1.0571 con un error de 0.000028109
CÓDIGO
clc; clear; close all
%EJERCICIO 2 TAREA
%INTERSECCIÓN DE DOS FUNCIONES
%4MV3
x=-5:0.1:5;
f=inline('-3*x.^2+3');
g=inline('exp(-x.^2)');
plot(x,f(x),'c')
hold on
grid on
plot(x,g(x),'y')
title('Ejercicio 2')
xlabel('Eje x')
ylabel ('Eje y')
%Función de ambas
F=inline('exp(-x.^2)-(-3*x.^2+3)');
syms x
F1=diff(F(x));
F1=inline(F1);
x0=1;
%Iteracion 1
x1=x0-F(x0)/F1(x0)
e1=abs(x1-x0)
%Iteracion 2
x2=x1-F(x1)/F1(x1)
e2=abs(x2-x1)
%Iteracion 3
x3=x2-F(x2)/F1(x2)
e3=abs(x3-x2)
GRÁFICA
TABLA DE ITERACIONES
RESULTADO
CÓDIGO
clc; clear; close all
%EJERCICIO 3 TAREA
%MÉTODO DE NEWTON RAPSHON
%4MV3
x=0:0.01:1;
f=inline('((1-x).*(3+x).^1./2)./(x.*(x+1).^1/2*4*1/2)-2.86');
y=f(x);
plot(x,y,'r')
grid on
title('Ejercicio 3')
xlabel('Eje x')
ylabel ('Eje y')
syms x
f1=diff(f(x));
f1=inline(f1);
x0=0.5;
%Iteración 1
x1=x0-1./f1(x0)*f(x0)
e1=abs(x1-x0)
%Iteracion 2
x2=x1-1./f1(x1)*f(x1)
e2=abs(x2-x1)
%Iteracion 3
x3=x2-1./f1(x2)*f(x2)
e3=abs(x3-x2)
%Iteracion 4
x4=x3-1./f1(x3)*f(x3)
e4=abs(x4-x3)
%Iteracion 5
x5=x4-1./f1(x4)*f(x4)
e5=abs(x5-x4)
%Iteracion 6
x6=x5-1./f1(x5)*f(x5)
e6=abs(x6-x5)
%Iteracion 7
x7=x6-1/f1(x6)*f(x6)
e7=abs(x7-x6)
GRÁFICA
TABLA DE ITERACIONES
RESULTADO
Para este programa se utilizaron los datos del problema 1.b) funcionando
también como una forma de comprobar si el ejercicio esta correcto
Código
clc
clear
fprintf('METODO PUNTO FIJO\n\n\n');
f=inline(Fun);
g=inline(G);
Error=Tol+1;
while Error>Tol & Iter
Xn=g(Xo);
Error=abs((Xn-Xo)/Xn);
Xo=Xn;
end
if Error<Tol
fprintf('\n\nSOLUCION:\n')
fprintf('%g es una aproximacion con un tolerancia de %g\n\n',Xo,Tol);
else
fprintf('\n\nSOLUCION:\n')
fprintf('Fracaso en %g iteraciones\n\n',Iter);
end
ezplot(f);
grid on
Command Window
Grafica
SOLUCION:
1.0571 es una aproximación con una tolerancia de 0.0001
Para este programa de igual manera se utilizaron los datos del problema
1.b)
Código
clc
clear
fprintf(' METODO DE NEWTON-RAPHSON\n\n\n');
f=inline(Fun);
g=inline(G);
Error=Tol+1;
while Error>Tol & Iter
Xn=g(Xo);
Error=abs((Xn-Xo)/Xn);
Xo=Xn;
end
if Error<Tol
fprintf('\n\nSOLUCION:\n')
fprintf('%g es una aproximacion con un tolerancia de %g\n\n',Xo,Tol);
else
fprintf('\n\nSOLUCION:\n')
fprintf('Fracaso en %g iteraciones\n\n',Iter);
end
Command window
Gráfica
Solución
1.0571 es una aproximación con una tolerancia de 0.0001
Bibliografía
Chapra, Steven C; Canale Raymond P; Métodos numéricos para
ingenieros; Mc Graw Hill; México; 2005; P126.