Академический Документы
Профессиональный Документы
Культура Документы
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.
Pgina 1
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:
Pgina 2
1.2.
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.
Pgina 3
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.
Pgina 4
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
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
%
%
%
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.
Pgina
Ejemplo:
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
Pgina 7
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.
Pgina
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,:);
Pgina
Ejemplo:
2.3.
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.
Pgina
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);
Pgina
Ejemplo:
2.4.
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
Ejemplo:
Objetivo:
Este programa tiene como objetivo la construccion de polinomio
interpolador de lagrange:
INFORME DE METODOS NUMERICOS
13
Pgina
( )
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
Pgina
Ejemplo:
3.2.
)
(
(
)(
)(
)
)
(
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:
Pgina
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.
Pgina
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);
Pgina
Ejemplo:
Pgina