Вы находитесь на странице: 1из 18

UNIVERSIDAD JOSE CARLOS MARIATEGUI

CARRERA PROFESIONAL DE INGENIERIA CIVIL

METODO DE BUSQUEDA DE RAICES

1.1.

METODO DE LA BISECCION:
Objetivo:
Aproximacin a una raz de la ecuacin f(x)=0 en el intervalo [a,b]. Puede
usarse solo si f(x) es continua y f(a) y f(b) tienen distinto signo.
Variables de entrada:
f es la funcion, introducida como una cadena de
caracteres 'f'
a y b son el extremo izquierdo y el extremo derecho.
delta es la tolerancia

Variables de salida:
c es el cero
yc=f(c)
err es el error estimado de la aproximacion a c

Variables auxiliares:
ya, yb, max1, (almacenas los valores internos del programa).
Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una funcin f como una cadena de caracteres.
Ingresar los intervalos de la funcin.
Designar el valor para delta que ser la tolerancia al error.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.

INFORME DE METODOS NUMERICOS

Pgina 1

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Programa:
function [ c,err,yc] = bisect(f,a,b,delta)
ya=feval(f,a);
yb=feval(f,b);
if ya*yb>0,break,end
max1=1+round((log(a-b)-log(delta))/log(2));
for k=1:max1
c=(a+b)/2;
yc=feval(f,c);
if yc==0
a=c;
b=c;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
if b-a < delta,break,end
end
c=(a+b)/2;
err=abs(b-a);
yc=feval(f,c);
end

Ejemplo:

INFORME DE METODOS NUMERICOS

Pgina 2

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

1.2.

METODO DE LA REGULA FALSI O DE LA POCICION FALSA:


Objetivo:
Aproximacin a una raz de la ecuacin f(x)=0 en el intervalo [a,b]. puede
usarse solo si f(x) es continua y f(a) y f(b) tienen distinto signo.
Variables de entrada:
f es la funcion, introducida como una cadena de
caracteres 'f'
a y b son el xtremo izquierdo y el estremo derecho.
delta es la tolerancia para el cero.
epcilon es la tolerancia para el valor de f en el cero.
max1 e el nmero mximo de iteraciones.

Variables de salida:
c es el cero
yc=f(c)
err es el error estimado de la aproximacin a c

Variables auxiliares:
ya, yb, dx, c, ac, yc, (almacenas los valores internos del programa).
Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una funcin f como una cadena de caracteres.
Ingresar los intervalos de la funcin.
Designar el valor para delta que ser la tolerancia al error.
Designar un valor para psilon para la tolerancia para el valor de la
funcin f.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.

INFORME DE METODOS NUMERICOS

Pgina 3

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Programa:
function [ c,err,yc] = regula(f,a,b,delta,epsilon,max1)
ya=feval(f,a);
yb=feval(f,b);
if ya*yb>0
disp('note: f(a)*f(b)>0'),
break,
end
for k=1:max1
dx=yb*(b-a)/(yb-ya);
c=d-dx;
ac=c-a;
yc=feval(f,c);
if yc==0,break;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
dx=min(abs(dx),ac);
if abs(dx)<delta,break,end
if abs(yc)<epsilon,break,end
end
c;
err= abs (b-a)/2;
yc=feval(f,c);
end

Ejemplo:

1.3.

METODO DE NEWTON RAPHSON:


Objetivo:
Aproximacin a una raz de f(x)=0 a partir de un valor inicial p 0 mediante la
iteracin
(
)
(
)
Variables de entrada:
f es la funcion introducida como una cadena de
carcteres 'f'
df es la derivada de f, introducida como una cadenma
'df'

INFORME DE METODOS NUMERICOS

Pgina 4

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL
p0 es la aproximacion inicial a un cero de f
delta es la tolerancia para p0
epsilon es la tolerancia para los valores de la funcion
max1 es el numeroi maximo de iteraciones

Variables de salida:
p0 es la aproximacion al cero, obtenida con el metodo
de Newton-Rapson
err es una estimacion al error de p0
k es el numero de iteraciones realizadas
y es el valor de la funcion f(p0)

Variables auxiliares:
p1, (almacena los valores internos del programa).
Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una funcin f como una cadena de caracteres.
Ingresar df que es la derivada de f introducida como una cadena
de caracteres.
designar el valor para delta que ser la tolerancia al error.
Designar un valor para psilon para la olerancia parael valor de la
funcin f.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function [p0,err,k,y] = newton(f,df,p0,delta,epsilon,max1)
for k=1:max1
p1=p0-feval(f,p0)/feval(df,p0);
err=abs(p1-p0);
relerr=2*err/(abs(p1)+delta);
p0=p1;
y=feval(f,p0);
if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break,end
end

Ejemplo:
INFORME DE METODOS NUMERICOS

Pgina 5

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

1.4.

METODODE LA SECANTE:
Objetivo:
Aproximacin a una raz de f(x)=0 a partir de un valor inicial p 0 mediante p0
y p la iteracin
( ) (
)
( ) (
)
Variables de entrada:
f la funcion, intrducida como uan cadena de carcteres 'f'
p0 y p1 son las aproximaciones iniciales a un cero de f
delta es la tolerancia para p1
epsilon es la tolerancia para los valores de la funcion
max1 es el numero maximo de iteraciones

Variables de salida:
p1
la
%
%
%

es la aproximacion al cero, obtenida con el metodo de


secante
-err es una estimacion del error de p1
-k es el numero de iteraciones relaizadas
-y es el valor de la funcion f(p1)

Variables auxiliares:
p2, releer, feval, que son las que se utiliza la m
Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una funcin f como una cadena de caracteres.
Ingresar df que es la derivada de f introducida como una cadena
de caracteres.
designar el valor para delta que ser la tolerancia al error.
Designar un valor para psilon para la tolerancia para el valor de la
funcin f.
Ingresar en max1 el nmero mximo de iteraciones.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.

INFORME DE METODOS NUMERICOS

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Este correr de manera ordenada segn los pasos descritos en el


programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function [p1,err,k,y] = secant(f,p0,p1,delta,epsilon,max1)
for k=1:max1
p2=p1-feval(f,p1)*(p1-p0)/(feval(f,p1)-feval(f,p0));
err=abs(p2-p1);
relerr=2*err/(abs(p2)+delta);
p0=p1;
p1=p2;
y= feval (f,p1);
if (err<delta)|(relerr<delta)|(abs(y)<epsilon),break,end
end

Ejemplo:

2. RESOLUCION DE SISTEMAS LINEALES.


2.1.

SUSTITICION REGRESIVA:
Objetivo:
Resolucion de un sistema triangular superior AX=B por el mtodo de
sustitucin regresiva. El mtodo funciona solo si todos los elementos
diagonales on distintos de cero. Primero se calcula XN=bN/aNN yluego se
utiliza la regla:

Variables de entrada:
a es una matriz triangular superior invertible de orden
n*n
b es una matriz de orden n*1

Variables de salida:
x es la solucion del sistema lineal ax=b
calculo de la dimencion de b e inicializacion de x

INFORME DE METODOS NUMERICOS

Pgina 7

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Variables auxiliares:
n, length, variables de almacenamiento para valores del programa.
Uso:
El programa se utiliza de la siguiente manera:
Se ingresa en A una matrix triangular superior invertible de orden
n*n.
En B se ingresa una matriz de orden n*1.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado, adicionando las
variables a las cuales debe jalar para solucionar el programa.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function [ x ] = backsub( a,b )
n=length(b);
x=zeros(n,1);x(n)=b(n)/a(n,n);
for k=n-1:-1:1
x(k)=(b(k)-a(k,k+1:n)*x(k+1:n))/a(k,k);
end

Ejemplo:

2.2.

TRIANGULACION SUPERIOR SEGUIDA DE SUSTITUCION REGRESIVA:


Objetivo:
Calculo de la solucin del sistema lineal AX=B mediante la reduccin a
forma triangular superior de la matriz ampliada [A|B] seguida de la
sustitucin regresiva.
Variables de entrada:
a es una matriz invertible de orden n*n

INFORME DE METODOS NUMERICOS

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL
b es una matriz de orden n*1

Variables de salida:
x es una matriz de orden n*1 que contiene la solucion de
ax=b inicializamos x y una matriz c que sirven de almacen
temporal

Variables auxiliares:
calculo de la matriz ampliada aug=[a|b]
calculo de la matriz ampliada aug=[a|b]

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una matriz A invertible de orden N*N
Ingresar un amatriz B deorden N*1.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Teniendo en cuenta que dentro del programa se utilizan variables
que escapan del clculo del problema pero realizan funciones de
clculo diferentes.
Mas tambin al ya finalizar el programa este llamare a otro descrito
anteriormente para detallar y buscar mejores respuestas.
Programa:
function [ x ] = uptrbk( a,b )
[n n]=size(a);
x=zeros(n,1);
c=zeros(1,n+1);
aug=[a b];
for q=1:n-1
%pivoteo parcial en la columna q-esima
[y,j]=max(abs(aug(q:n,q)));
%intercambio de las filas q-esima y(j+q-1)-esima
c=aug(q,:);

INFORME DE METODOS NUMERICOS

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL
aug(q,:)=aug(j+q-1,:);
aug(j+q-1,:)=c;
if aug(q,q)==0
'a es singular. No hay solucion o no es unica'
break
end
%proceso de eliminacion en la columna q-esima
for k=q+1:n
m=aug(k,q)/aug(q,q);
aug(k,q:n+1)=aug(k,q:n+1)-m*aug(q,q:n+1);
end
end
%sustitucion regresiva en [u|y] usando el programa 3.1
x=backsub(aug(1:n,1:n),aug(1:n,n+1));

Ejemplo:

2.3.

PA=LU FACTORIZACION CON PIVOTEO:


Objetivo:
El objetivo de este programa es el clculo de la solucin de u sistema lineal
AX=B cuando la matriz A es invertible.
Variables de entrada:
A es una matriz de orden N*N
B es una matriz de orden N*1

Variables de salida:
X es la matriz de orden N*1 solucion de AX=B
Inicializamos X, Y, la matriz de almacenamiento temporal
C y la matriz fila R donde se registran los intercambios

Variables auxiliares:
Dentro de la matriz encontramos variables auxiliares como zeros, mult,
break como tambin variables c, R, A que son las que contienen los valores
de operaciones a lo largo de la resolucin del problema planteado.
Cuyos valores van siendo utilizados continuamente.

INFORME DE METODOS NUMERICOS


10

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una matriz de orden N*N en A.
Se ingresa una matriz de orden N*1 en B.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado agregndole las
variables de los nombres de las matrices con las que se trabajara.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function [ X ] = lufact(A,B)
[N,N]= size(A);
X=zeros(N,1);
Y=zeros(N,1);
C=zeros(N,1);
R=1:N;
for q=1:N-1
%
[max1,j]=max(abs(A(q:N,q)));
%
C=A(q,:);
A(q,:)=A(j+q-1,:);
A(j+q-1,:)=C;
d=R(q);
R(q)=R(j+q-1);
R(j+q-1)=d;
if A(q,q)==0
'A es singular, no hay solucion o no es unica'
break
end
%
%
for k=q+1:N
mult=A(k,q)/A(q,q);
A(k,q)=mult;
A(k,q+1:N)=A(k,q+1:N)-mult*A(q,q+1:N);
end
end
%
Y(1)=B(R(1));
for k=2:N
Y(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);
end
%
X(N)=Y(N)/A(N,N);

INFORME DE METODOS NUMERICOS


11

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL
for k=N-1:-1:1
X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);
end

Ejemplo:

2.4.

METODO ITERATIVO DE GAUSS SEIDEL:


Objetivo:
Resolucin de un sistema lineal AX=B mediante la generacin de una
sucesin {Pk} que converge a la solucin, a partir de un punto inicial P 0. Una
condicin suficiente para que el mtodo sea aplicable es que A sea de
diagonal estrictamente dominante.
Variables de entrada:
A es una matriz invertible de orden N*N
B es una matriz de orden N*1
P es una matriz de orden N*1: el punto inicial
delta esla tolerancia para P
max1 es el numero maximo de iteraciones

Variables de salida:
X es un matriz de orden N*1: la proximacion de la
solucion de AX=B generada por el metodo iterativo de
Gauss-Seidel

Variables auxiliares:

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa una matriz de orden N*N en A.
Se ingresa una matriz de orden N*1 en B.
En P se ingresa un matriz de orden N*1: el punto inicial
En delta se almacenara la tolerancia para P.
INFORME DE METODOS NUMERICOS
12

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Max1 se colocara el nmero mximo de iteraciones a realizarse.


Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function X=gseid(A,B,P,delta,max1)
N=length(B);
for k=1:max1
for j=1:N
if j==1
X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1);
elseif j==N
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);
else
% X contiene la aproximacion k-enecima
% y P la (k-1)-esima
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if (err<delta)|(relerr<delta)
break
end
end
X=X';

Ejemplo:

3. INTERPOLACION Y APROXIMACION POLINOMIAL.


3.1.

POLINOMIO INTERPOLADOR DE LAGRANGE:

Objetivo:
Este programa tiene como objetivo la construccion de polinomio
interpolador de lagrange:
INFORME DE METODOS NUMERICOS
13

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

( )

Que pasa por los nodos N+1 puntos (xk, yk) para k = 0,1,2,3,.N.
Variables de entrada:
X es un vector que contiene la lista de las abscisas
Y es un vector que contiene la lista de las ordenadas

Variables de salida:
C de la matriz que contiene los coeficientes polinomio
interpolador de LaGrange
L es la matriz que contiene los coeficientes de los
polinomios coeficientes de LaGrange

Variables auxiliares:

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa un vector que contenga la lista de los valores que irn en
la recta de las abscisas almacenado en X.
Se ingresa un vector que contenga la lista de los valores que irn en
la recta de las ordenadas almacenado en Y.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function [ C,L ] = lagran( X,Y )
w=length(X);
n=w-1;
L=zeros(w,w);
%formacion de los polinomios coeficioentes de lagrange
for k=1:n+1
V=1;
for j=1:n+1

INFORME DE METODOS NUMERICOS


14

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%calculo de los coeficientes del polinomio
%interpolador de lagrange
C=Y*L;
end
%coeficie

Ejemplo:

3.2.

POLINOMIO INTERPOLADOR DE NEWTON:


Objetivo:
El objetivo de este programa es la construccin del polinomio interpolador
de Newton de grado menor o igual que N que pase por los puntos (xk,yk) =
(xk,f(xk)) para k= 0, 1, ., N:
(

)
(

(
)(

)(
)

)
(

Siendo:

Variables de entrada:
X es un vector de la lista de las absisas
Y es un vector con la lista de las ordenadas

Variables de salida:
C es uj vector que contiene los coeficientes del polinomio
interpolador de newton escritos de forma habitual, en
potencias decrecientes de x
D es la tabla de diferencias divididas

Variables auxiliares:

INFORME DE METODOS NUMERICOS


15

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa en X un vector con la lista de las abscisas.
Se ingresa en Y un vector con la lista de las ordenadas.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command window.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
El programa almacenara en C un vector que contiene los
coeficientes del polinomio interpolador de newton.
D ser la tabla de diferencias divididas.
Programa:
function [C,D] = newpoly(X,Y)
n=length(X);
D=zeros(n,n);
D(:,1)=Y;
% usamos la formula 20) para hallar
%la tabl de diferencias divididas
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
% calculo del vector que contiene los coeficientes
% del polinomio interpolador de Newton, escrito
%de forma habitual, en potencias decrecientes de x
C=D(n,n);
for k=(n-1):-1:1
C=conv(C, poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end

Ejemplo:

3.3.

POLINOMIO OPTIMO DE MINIMOS CUADRADOS:


Objetivo:
El objetivo del programa es construir el polinomio de grado Mdado por
( )

INFORME DE METODOS NUMERICOS


16

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Que mejor se ajusta en el sentido de los minimos cuadrados a las N parejas


de datos {(Xk, Yk)}k=1N
Variables de entrada:
X es el vector de orden 1*n de las abscisas
Y es el vector de orden 1*n de las ordenadas
M es el grado del polinomio optimo

Variables de salida:
C es el vector de coeficientes del polinomio en potencias
decrecientes de x

Variables auxiliares:

Uso:
El programa se utiliza de la siguiente manera:
Se ingresa los datos en X del vector de orden 1*N de las abscisas.
En Y ingresar un vector de orden 1*N de las ordenadas.
Y en M se ingresa el grado del polinomio ptimo.
Una vez ingresados los datos anteriormente mencionados en la
ventana de command Windows.
Llamar a la funcin por el nombre asignado.
Este correr de manera ordenada segn los pasos descritos en el
programa, haciendo uso de las variables auxiliares que almacenaran
nuevos valores hasta las variables de salida.
Programa:
function C=lspoly(X,Y,M)
n=length(X);
B=zeros(1:M+1);
F=zeros(n,M+1);
% se rellenan las columnas de F con las potencias de X
for k=1:M+1
F(:,k)=X'.^(k-1);
end
% resolucion de las ecuaciones normales
A=F'*F;
B=F'*Y';
C=A/B;
C=flipud(C);

INFORME DE METODOS NUMERICOS


17

Pgina

UNIVERSIDAD JOSE CARLOS MARIATEGUI


CARRERA PROFESIONAL DE INGENIERIA CIVIL

Ejemplo:

INFORME DE METODOS NUMERICOS


18

Pgina

Вам также может понравиться