Beruflich Dokumente
Kultur Dokumente
FACULTAD DE INGENIERÍA
MÉTODOS NUMÉRICOS
NOMBRE:
Fabricio Edison Maxi Morocho
DOCENTE:
Ing. Gerardo Arbito
TEMA:
“Implementación de Métodos en un ejercicio y evaluar que método es el mejor
para el mismo”
CURSO:
Grupo 1
FECHA:
02 – Mayo -2019
El presente trabajo consta en la aplicación de los 6 métodos (Método
Bisección, Método de la Cuerda, Método de la tangente o Newton Rapson,
Método de la secante, Método del Punto Fijo y EL Método de Müller)
aprendidos en clases, y ver que método es el mejor que se implementa
para la resolución del ejercicio.
Ejercicio: Calcular la longitud máxima de una escalera que pase por un
pasillo (ilustración 1).
Lmax=(L2/sen (B))+(L1/sen(180-ɣ- β)) ecuación en función de los ángulos y ancho de los pasillos (L1, L2).
METODO DE BISECCION
La función del método de bisección es encontrar la raíz de una ecuación y
consiste en elegir un intervalo y luego ir dividiendo ese intervalo en
mitades hasta dar con la raíz.
Formulas: x = (a+b)/2; f(a)*(b) < 0; Ea = l (valorexacto-
valormedido)/valorexacto l*100%
Datos:
Función: f(x)
Intervalo: [a, b]
Tolerancia: tol
# De iteraciones: N
Seudocódigo
1) Fijar el intervalo [a, b] y comprobar que exista raíz (esto se
comprueba verificando cambio de signo, es decir, f(a)*(b)<0 si
verdadero entonces existe raíz, si falso no existe raíz en el
intervalo.)
2) Encontrar: x= (a+b)/2.
3) Evaluar la función en x y comprobarlo con la tolerancia: l f(X) l<=tol.
4) Si l f(x) l<=tol entonces x es raíz.
5) Si no se cumple la condición 4), se procede a fijar un nuevo
intervalo.
Si f(a)*(x)>0 entonces a=x de lo contrario b=x.
6) Calcule e y er, si e>tol entonces regresar al paso 2, de lo contrario x
es la raíz.
er = (l (xi – xi-1)/xi l)*100% e = l xi – xi-1 l
7) Contador de iteraciones n=n+1.
Código
VARIABLES DE ENTRADA
clear %Limpia las variables
clc %borra la pantalla
syms x
f=input('Ingrese la funcion: ');
a=input('Ingrese el valor de a: ');
b=input('Ingrese el valor de b: ');
tol=input('Ingrese la toleranacia: ');
f=inline(f); %permite evaluar la funcion en la variable x
Grafica la función
ezplot(f)
grid on
Formulas: x = (b*f(a)-a*f(b))/(f(a)-f(b)).
Datos:
Función: f(x)
Intervalo: [a, b]
Tolerancia: tol
# De iteraciones: N
Seudocódigo
1) Fijar el intervalo [a, b] y comprobar que exista cambio de signo,
f(a)*(b)<0 si verdadero entonces existe raíz, si falso no existe raíz.
2) Una vez comprobado el cambio de signo, encontrar: x= (b*f(a)-
a*f(b))/(f(a)-f(b)).
3) Evaluar la raíz en el punto x y comprobarlo:
Si l f(X) l<=tol entonces x es un cero.
4) Si no cumple lo anterior fijar el nuevo intervalo:
Si f(a)*f(x)l>0 entonces a=x, de lo contrario b=x.
5) Calcule e y er, si e>tol, entonces regresar al paso 2, de lo contrario x
es la raíz.
e = l xi – xi-1 l er = (l (xi – xi-1)/xil )*100%
6) Contador de iteraciones n=n+1.
Códig
VARIABLES DE ENTRADA
clear
clc
syms x
fprintf('METODO DE LA CUERDA FALSA\n')
f=input('Ingrese la funcion: ','s');
a=input('Ingrese el valor de a: ');
b=input('Ingrese el valor de b: ');
tol=input('Ingrese la tolerancia: ');
f=inline(f);
GRAFICA DE LA FUNCION
ezplot(f)
grid on
end
Grafica de la función
ezplot(f)
grid on
Variables de entrada
clear
clc
syms x
fprintf('MÉTODO DE LA SECANTE\n')
f=input('Ingrese la funcion: '); %funcion
x1=input('Ingrese el punto xi-1: '); %Punto 1
x2=input('Ingrese el punto xi: '); %Punto 2
tol=input('Ingrese la tolerancia: '); %tolerancia
f=inline(f);
Grafica de la función
ezplot(f)
grid on
Seudocódigo
1) Dado fn(x) y r0 y s0.
2) Utilizando el método de Newton Raphson se calcula f2(x) = (x2 – rx – s)
y fn-2(x), tal que, el residuo de fn(x)/f2(x), sea igual a cero.
3) Se determinan las raíces f2(x), utilizando la formula general.
4) Se calcula fn-2(x) = fn(x)/f2(x)
5) Se hace fn(x) = fn-2(x).
6) Si el polinomio es mayor que tres se regresa al paso 2.
7) Si no se termina
Código
Function P=metodoMuller(fun,x,N)
l=0
f=0;
c=fun(x(3))
b=(((((x(1)-x(3))^2)*(fun(x(2))-fun(x(3))))-((x(2)-x(3))^2)*(fun(x(1))-fun(x(3)))))/((x(1)-
x(3))*(x(2)-x(3))*(x(1)-x(2)))
a=(((((x(2)-x(3)))*(fun(x(1))-fun(x(3))))-((x(1)-x(3)))*(fun(x(2))-fun(x(3)))))/((x(1)-
x(3))*(x(2)-x(3))*(x(1)-x(2)))
x4=(x(3)-((2*c)/((b)+((b/abs(b))*sqrt((b^2)-(4*a*c))))))
%Scienceprocedures.blogspot.mx
x0=min(x)-1:0.09:max(x)+1
hold on
grid on
plot (x(1),fun(x(1)),'Ok')
hold on
plot (x(2),fun(x(2)),'Ok')
hold on
plot (x(3),fun(x(3)),'Ok')
hold on
plot(x0,fun(x0),'b')
hold on
for i=1:1:N
if i==N
plot (x0,R(x0),'+r')
hold on
end
c=fun(x(3))
b=(((((x(1)-x(3))^2)*(fun(x(2))-fun(x(3))))-((x(2)-x(3))^2)*(fun(x(1))-fun(x(3)))))/((x(1)-
x(3))*(x(2)-x(3))*(x(1)-x(2)))
a=(((((x(2)-x(3)))*(fun(x(1))-fun(x(3))))-((x(1)-x(3)))*(fun(x(2))-fun(x(3)))))/((x(1)-
x(3))*(x(2)-x(3))*(x(1)-x(2)))
x4=(x(3)-((2*c)/((b)+((b/abs(b))*sqrt((b^2)-(4*a*c))))))
x(1)=x(2)
x(2)=x(3)
x(3)=x4;
x0=min(x)-1:0.09:max(x)+1
R=@(x0)((a*((x0-x(3)).^2))+(b*(x0-x(3)))+c)
C=['k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r',
'm','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r','m','k','b','y','g','r',
'm',]
plot (x0,R(x0),C(i))
hold on
end
P=x(3)
plot (P,R(P),'*r')
end
Resultados y conclusiones
Al probar nuestra función en cada método, el método que brinda mejor
resolución es el método de Newton-Raphson, con un número de
iteraciones de 7, hasta llegar a una solución.
Los otros métodos se aproximan con las iteraciones pero no son
satisfactorias para nuestro ejercicio.
El método de newton es muy eficiente ya que la función converge
adecuadamente a comparación con el método de Punto fijo que converge
lentamente.
Referencias
Prawda Witenberg, Juan, Métodos y Modelos de Investigación de Operaciones, Edit. Limusa, 1976
Nakamura, Métodos numéricos Carrasco Venegas, Luis, Editorial América, Lima Perú, 1era. Edic. 2002
Grcar, Joseph F. John von Neumann's Analysis of Gaussian Elimination and the Origins of
Modern Numerical Analysis. SIAM Review, 53(4), pp. 607–682, 2011.
https://scholar.google.com/