ALGORITMOS EN MATLAB DE MÉTODOS NUMÉRICOS 1.
MÉTODO DE DE LA LA BI BISECCIÓN
function x = biseccion(fun,a,b,tol) biseccion(fun,a,b,tol) % Aproxima por el método de la bisección una raíz de la ecuación fun(x)=0 disp('Método de la bisección') u=fe!al(fun,a) !=fe!al(fun,b) n=" if si#n(u)==si#n(!) disp('$rror la función debe cambiar de si#no en (a,b)') brea end &ile ((ba)0*+tol) ((ba)0*+tol) c=(b-a)./ &=fe!al(fun,c) &=fe!al(fun,c) disp('n=', num/str(n)1) num/str(n)1 ) disp('c=', num/str(c)1) num/str(c)1 ) disp('f(c)=', disp('f(c)=' , num/str(&)1) num/str(&)1) if si#n(u)==si#n(&) a = c u=& else b=c !=& end n=n-" end x=c
2.
MÉTODO DE RÉGULA FA FALSI function x = re#ula2falsi(fun,a,b,ma re#ula2falsi(fun,a,b,maxiter) xiter) % Aproxima Aproxima por el el método de la re#ula re#ula falsi falsi una raíz raíz de la ecuación fun(x)=0 fprintf(", 'Método de la re#ula falsi3n') fprintf(",'3n') n=" u=fe!al(fun,a) !=fe!al(fun,b) if si#n(u)==si#n(!) disp('$44546la funcion debe cambiar si#no en a,b') brea end for n="6"6maxiter c=a(u(ba).(!u)) &=fe!al(fun,c) fprintf(", 'n= %i, c= %f, f(c)= %e if si#n(u)==si#n(&) a = c u=& else b=c !=& end n=n-" end x=c
3n',n, c,&)
3.
MÉTODO DEL PUNTO FIJO function p=pfi7o(fun,p0,tol,maxiter) % Aproxima por el método del punto fi7o una raiz de la ecuacion fun(x)=x %cercana p0, tomando como criterio de parada abs(fun(x)x)8tol o la cota sobre % el numero de iteraciones dada por maxiter* % % 9ariables de entrada6 % fun(x)6 funcion a iterar, se debe introducir con notación simbolica (e#* '#') % x06 estimación inicial para el proceso de iteración % tol6 tolerancia en error absoluto para la raiz % maxiter6 maximo numero de iteraciones permitidas % % 9ariables de salida6 % p6 !alor aproximado de la raiz p(")=p0 for n=/6maxiter p(n)=fe!al(fun,p(n")) err=abs(p(n)p(n")) if err8tol brea end disp('n=',num/str(n)1) disp('f(x)=',num/str(p(n))1) disp('abs(f(x)x)=',num/str(err)1) end if n==maxiter disp('se a excedido el n:mero de iteraciones') end p'
4.
MÉTODO DE LA SECANTE function a =secante(fun,x0,x",tol,maxiter) % Aproxima por el método de la secante una raiz de la ecuacion fun(x)=0 %cercana a x0, tomando como criterio de parada abs(fun(x))8tol o la cota sobre %el numero de iteraciones dada por maxiter* % % 9ariables de entrada6 % fun6 funcion a calcular la raiz, se introduce en modo simbolico 'fun' % x0, x"6 estimaciones iniciales para el proceso de iteración % tol6 tolerancia en error absoluto para la raiz % maxiter6 maximo numero de iteraciones permitidas % % 9ariables de salida6 % a6 !alor aproximado de la raiz fprintf(", 'Metodo de la secante 3n') f0=subs(fun,x0) f"=subs(fun,x") iter=" &ile(abs(f")tol) ; (iter8maxiter)
a = x"f"((x"x0).(f"f0)) de iteracion f0=f" f"=subs(fun,a) %Actualiza f0 < f" fprintf(", 'iter= %i, a= %x0,f= %e 3n', iter,a ,f") iter = iter - " los pasos x0=x" x"=a % actualiza x end % >alida
5.
MÉTODO DE HORNER function coc,rest1=orner(p,pto) % % % % % % % % % % % % % %
$sta función calcula el cociente < < el resto obtenidos al di!idir un polinomio por (xpto) usando el método de ?orner* $l polinomio debe !enir dado en forma !ectorial* @as !ariables de entrada son6 p6 olinomio an,***,a",a01 pto6 unto donde e!aluamos @as !ariables de salida son6 coc 6 cociente bn",***,b",b01 rest6 resto
n=size(p,/)" B(")=p(") for =/6n-" B()=p()-ptoB(") end coc=B("6n) rest=B(n-")
6.
MÉTODO DE LAGRANGE function ,@1=la#ran(C,D) %!ariables de entrada % C es un !ector Bue contiene las % abcisas de los puntos % D es un !ector Bue contiene las % ordenadas de los puntos %!ariables de salida % es una matriz cu
% formula
% uenta
9=" for 7="6n-" if I=7 9=con!(9,pol<(C(7))).(C()C(7)) end end @(6,)=9 end %Jlculo de los coeficientes del polinomio %interpolador de @a#ran#e @ =@D'
7.
MÉTODO DE TRAPECIOS function area=trapecios(fun,a,b,m) %Aproxima por la re#la de los trapecios compuesta el !alor de la inte#ral %de una función fun(x) en un inter!alo de extremos a < b tomando m-" puntos eBuiespaciados* %9ariables de entrada6 % fun(x)6 funcion Bue se Buiere inte#rar < Bue debe % introducirse con notación simbolica (e#* '#')* % a6 extremo izBuierdo del inter!alo % b6 extremo dereco del inter!alo % m6 n:mero de puntos memos uno* % 9ariables de salida6 % area6 inte#ral aproximada =(ba).m x=a66b sum=0 for i=/6m sum=sum-fe!al(fun,x(i)) end area=(./)(fe!al(fun,a)-fe!al(fun,b)-/sum)