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

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