Anda di halaman 1dari 4

ALGORITMOS EN MATLAB DE MTODOS NUMRICOS

1.

MTODO DE LA BISECCIN

function x = biseccion(fun,a,b,tol)
% Aproxima por el mtodo de la biseccin una raz de la ecuacin
fun(x)=0
disp('Mtodo de la biseccin');
u=feval(fun,a);
v=feval(fun,b);
n=1;
if sign(u)==sign(v)
disp('Error la funcin debe cambiar de signo en (a,b)');
break;
end
while ((b-a)*0.5>tol)
c=(b+a)/2; w=feval(fun,c);
disp(['n=', num2str(n)]);
disp(['c=', num2str(c)]);
disp(['f(c)=', num2str(w)]);
if sign(u)==sign(w)
a = c; u=w;
else
b=c; v=w;
end
n=n+1;
end;
x=c

2.

MTODO DE RGULA FALSI


function x = regula_falsi(fun,a,b,maxiter)
% Aproxima por el mtodo de la regula falsi una raz de la
ecuacin fun(x)=0
fprintf(1, 'Mtodo de la regula falsi\n');
fprintf(1,'\n');
n=1;
u=feval(fun,a);
v=feval(fun,b);
if sign(u)==sign(v)
disp('ERROR:la funcion debe cambiar signo en a,b');
break;
end;
for n=1:1:maxiter
c=a-(u*(b-a)/(v-u));
w=feval(fun,c);
fprintf(1, 'n= %i, c= %f, f(c)= %e
if sign(u)==sign(w)
a = c; u=w;
else
b=c; v=w;
end
n=n+1;
end;
x=c

\n',n, c,w);

3.

MTODO DEL PUNTO FIJO


function p=pfijo(fun,p0,tol,maxiter)
% Aproxima por el mtodo del punto fijo una raiz de la ecuacion
fun(x)=x
%cercana p0, tomando como criterio de parada abs(fun(x)-x)<tol o la
cota sobre
% el numero de iteraciones dada por maxiter.
%
% Variables de entrada:
%
fun(x): funcion a iterar, se debe introducir con notacin
simbolica (eg. 'g')
%
x0: estimacin inicial para el proceso de iteracin
%
tol: tolerancia en error absoluto para la raiz
%
maxiter: maximo numero de iteraciones permitidas
%
% Variables de salida:
%
p: valor aproximado de la raiz
p(1)=p0;
for n=2:maxiter;
p(n)=feval(fun,p(n-1));
err=abs(p(n)-p(n-1));
if err<tol
break;
end
disp(['n=',num2str(n)]);
disp(['f(x)=',num2str(p(n))]);
disp(['abs(f(x)-x)=',num2str(err)]);
end
if n==maxiter
disp('se ha excedido el nmero de iteraciones')
end
p'

4.

MTODO DE LA SECANTE
function a =secante(fun,x0,x1,tol,maxiter)
% Aproxima por el mtodo de la secante una raiz de la ecuacion
fun(x)=0
%cercana a x0, tomando como criterio de parada abs(fun(x))<tol o la
cota sobre
%el numero de iteraciones dada por maxiter.
%
% Variables de entrada:
%
fun: funcion a calcular la raiz, se introduce en modo
simbolico 'fun'
%
x0, x1: estimaciones iniciales para el proceso de iteracin
%
tol: tolerancia en error absoluto para la raiz
%
maxiter: maximo numero de iteraciones permitidas
%
% Variables de salida:
%
a: valor aproximado de la raiz
fprintf(1, 'Metodo de la secante \n');
f0=subs(fun,x0);
f1=subs(fun,x1);
iter=1;
while(abs(f1)>tol) & (iter<maxiter)

a = x1-f1*((x1-x0)/(f1-f0));
de iteracion
f0=f1; f1=subs(fun,a);
%Actualiza f0 y f1
fprintf(1, 'iter= %i, a= %x0,f= %e \n', iter,a ,f1)
iter = iter + 1;
los pasos
x0=x1; x1=a;
% actualiza x
end
% Salida

5.

MTODO DE HORNER
function [coc,rest]=horner(p,pto)
%
%
%
%
%
%
%
%
%
%
%
%
%
%

************************************************
Esta funcin calcula el cociente y
y el resto obtenidos al dividir un polinomio
por (x-pto) usando el mtodo de
Horner.
El polinomio debe venir dado en forma vectorial.
Las variables de entrada son:
p: Polinomio [an,...,a1,a0]
pto: Punto donde evaluamos
Las variables de salida son:
coc : cociente [bn-1,...,b1,b0]
rest: resto
*************************************************

n=size(p,2)-1;
q(1)=p(1);
for k=2:n+1
q(k)=p(k)+pto*q(k-1);
end
coc=q(1:n)
rest=q(n+1)

6.

MTODO DE LAGRANGE
function [C,L]=lagran(X,Y)
%variables de entrada
%
- X es un vector que contiene las
%
abcisas de los puntos
%
- Y es un vector que contiene las
%
ordenadas de los puntos
%variables de salida
%
- C es una matriz cuyas entradas son
%
los coeficientes del polinomio
%
de interpolacin de Lagrange (VECTOR COLUMNA)
%
- L es una matriz cuyas entradas son
%
los coeficientes del polinomio
%
de interpolacin de Lagrange
w=length(X);
n=w-1;
L=zeros(w,w);
%Formacin de los coeficientes del polinomio
for k=1:n+1

% formula

% Cuenta

V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(:,k)=V;
end
%Clculo de los coeficientes del polinomio
%interpolador de Lagrange
L
C=L*Y'

7.

MTODO DE TRAPECIOS
function area=trapecios(fun,a,b,m)
%Aproxima por la regla de los trapecios compuesta el valor de la
integral
%de una funcin fun(x) en un intervalo de extremos a y b tomando
m+1 puntos equiespaciados.
%Variables de entrada:
%
fun(x): funcion que se quiere integrar y que debe
%
introducirse con notacin simbolica (eg. 'g').
%
a: extremo izquierdo del intervalo
%
b: extremo derecho del intervalo
%
m: nmero de puntos memos uno.
% Variables de salida:
%
area: integral aproximada
h=(b-a)/m;
x=a:h:b;
sum=0;
for i=2:m
sum=sum+feval(fun,x(i));
end
area=(h/2)*(feval(fun,a)+feval(fun,b)+2*sum);

Anda mungkin juga menyukai