Sie sind auf Seite 1von 16

UNIVERSIDAD DE CUENCA

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).

Ilustración 1: Ejercicio de escalera en un pasillo.

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

Inicialización de las variables del análisis


n=0;
er=0;
e=1; %posible error maximo que se puede tener
x=0;

%%Desarrollo del método


if f(a)*f(b)>0
fprintf('No hay raiz')
else
while e>tol
xo=x;
x=(a+b)/2;
if abs(f(x))<=tol
fprintf('x es una raiz')
n=n+1;
break %sale del bucle
else
if f(a)*f(x)>0
a=x;
else
b=x;
end
end
e=abs(x-xo);
er=abs((x-xo)/x)*100;
n=n+1;
end
fprintf('\nLa raiz es %.8f y se consiguió en %d iteraciones',x,n)
end
METODO DE LA CUERDA FLOJA
En cálculo numérico, el método de la cuerda falsa (regla del falso) o falsa posición es
un método iterativo de resolución numérica de ecuaciones no lineales.

Ilustración 2 del Método Cuerda Floja.

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ódigo

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

Inicialización de las variables de análisis


n=0;
e=1;
er=0;
x=0;

Desarrollo del método


if f(a)*f(b)<0
while e>tol
xo=x;
x=(b*f(a)-a*f(b))/(f(a)-f(b));
if abs(f(x))<=tol
fprintf('x es una raiz')
n=n+1;
break
else
if f(a)*f(x)>0
a=x;
else
b=x;
end
end
e=abs(x-xo);
er=abs((x-xo)/x)*100;
n=n+1;
end
fprintf('\nLa raiz es %.8f y se consiguió en %d iteraciones',x,n)
else
fprintf('No hay raiz')

end

Published with MATLAB® R2013a


METODO DE LA TANGENTE O NEWTON RAPSON
En análisis numérico, el método de Newton (conocido también como el método de Newton-
Raphson o el método de la Tangente) es un algoritmo para encontrar aproximaciones de los
ceros o raíces de una función real.

Ilustración 3 del Método de la Tangente.

Formulas: xi+1 = xi - f(xi)/f´(xi).


Datos:
Función: f(x)
Punto de inicio: xi
Tolerancia: tol
# De iteraciones: N
Seudocódigo
1) Fijar el punto de inicio.
2) Evaluar la función f(x) y su derivada f´(x). en el punto xi.
3) Encontrar el punto xi+1 = xi - f(xi)/f´(xi).
4) Calcular el error e=l xi – xi-1 l y lo comparo con la tolerancia:
Si e<tol entonces xi+1 es la raíz.
5) Si e>tol entonces fijar el nuevo punto de inicio:
xi = xi+1
6) Contador de iteraciones n=n+1.
Código

Variables de entrada
clear
clc
syms x
fprintf('METODO DE NEWTON RAPHSON\n')
f=input('Ingrese la funcion: ');
xi=input('Ingrese el valor inicial: ');
tol=input('Ingrese la tolerancia: ');
df=diff(f); % PERMITE OBTENER LA DERIVADA DE LA FUNCION
f=inline(f);
df=inline(df);

Grafica de la función
ezplot(f)
grid on

Inicialización de la Variables para el análisis


N=0;
e=1;
er=0;

Desarrollo del método


while e>tol
xf=xi-(f(xi)/df(xi));
er=abs((xf-xi)/xf)*100;
e=abs(xf-xi);
xi=xf;
N=N+1;
end
fprintf('\nLa raiz es %.8f, y se consigio en %d iteraciones',xi,N)

Published with MATLAB® R2013a

Es un método muy eficiente sin embargo hay situaciones en que se comporta de forma
ineficiente, por ejemplo en el caso de raíces múltiples. Otro aspecto a considerar es cuando
existen raíces simples debido a que la función puede converger lentamente.
METODO DE LA SECANTE
En análisis numérico el método de la secante es un método para encontrar los ceros de una
función de forma iterativa. El método de la secante se puede considerar como una
aproximación en diferencias finitas del método de Newton-Raphson.

Ilustración 4 del Método de la Secante.

Formulas: xi+1 = xi – (f(xi)(xi - xi-1)/f(xi) – f(xi-1)).


Datos:
Función: f(x)
Punto: xi
Punto: xi-1
Tolerancia: tol
# De iteraciones: N
Seudocódigo
1) Fijar los puntos xi, xi-1 y la tolerancia.
2)
3) Evaluar la función f(x) en los puntos xi y xi-1
4) Encontrar el punto xi+1 = xi – (f(xi)(xi - xi-1)/f(xi) – f(xi-1)).
5) Calcular el error e=l xi+1 - xi l y lo comparo con la tolerancia:
Si e<tol entonces xi+1 es la raíz.
6) Si e>tol entonces fijamos los nuevos puntos:
xi-1 = xi
xi = xi+1
7) Contador de iteraciones n=n+1.
Código

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

Inicialización de variables usadas para el análisis


er=0; %error relativo
xi=0;
e=1; %error, inicia con el valor maximo que este puede tener
n=0; % # de iteraciones

Desarrollo del método


while e>tol
xi=x2-(f(x2)*(x1-x2))/(f(x1)-f(x2))
er=abs((xi-x2)/xi)*100;
e=abs(xi-x2);
x1=x2
x2=xi
n=n+1;
end
fprintf('\nLa raiz es %.8f, y se consigio en %d iteraciones',xi,n)

Published with MATLAB® R2013a

Resuelve el problema del metodo de Newton-Raphson el cual requiere evaluarla derivada de la


funcion, devido a que existen funciones cuyas derivadas son dificiles de calcular. En algunos casos el
metodo puede divergir, es similar al metodo de la cuarda falsan y cuando el metodo converge lo hace
mas rapido que el metodo de la cuerda falsa.
METODO DEL PUNTO FIJO
El método del punto fijo es un método iterativo que permite resolver sistemas de
ecuaciones no necesariamente lineales. En particular se puede utilizar para determinar raíces
de una función de la forma f(x), siempre y cuando se cumplan los criterios de convergencia. El
método del punto medio requiere volver a escribir la ecuación f´(x)=0 en la forma x=g(x).

Ilustración 5 del Método Punto Fijo.

Formulas: f(x)=0 y x=g(x).


Datos:
Función igualada a x
Punto inicial: xi
Tolerancia: tol
# De iteraciones: N
Seudocódigo
1) Igualar la función a x: x=g(x).
2) Fijar el punto inicial y la tolerancia.
3) Evaluar x=g(x) en el punto inicial: xi =g(x0).
4) Calcular el error e=l xi – x0 l y lo compararlo con la tolerancia:
Si e<tol entonces xi es una raíz.
5) Si e>tol entonces x0=xi.
6) Contador de iteraciones n=n+1.
Código
%% VARIABLES DE ENTRADA
clear;
clc;
syms x
fprintf('METODO DEL PUNTO FIJO\ n')
g=input('Ingrese la funcion igualada a x: '); %FUNCION IGUALADA A X
xo=input('Ingrese el valor inicial: '); %VALOR INICIAL
tol=input('Ingrese la tolerancia: '); %TOLERANCIA
g=inline(g);

%% INICIALIZACION DE LAS VARIABLES USADAS PARA EL ANÁLISIS


er=0; %error relativo
e=100; %error
n=0; %numero de iteraciones

%% DESARROLLO DEL METODO


while e>tol
xi=g(xo);
er=abs((xi-xo)/xi)*100;
e=abs(xi-xo);
xo=xi;
n=n+1;
end
fprintf('La raiz es: %.8f, calculada en %d iteraciones',xi,n)
METODO DE MULLER
Este método es utilizado para encontrar raíces de ecuaciones con raíces múltiples, y consiste
en obtener los coeficientes de la parábola que pasa por tres puntos elegidos.

Ilustración 6 del Método de Müller.

Formulas: f2(x) = (x2 – rx – s)


Datos:
Función fn(x)
Punto inicial: r0
Tolerancia: tol
# De iteraciones: N

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/

Das könnte Ihnen auch gefallen