You are on page 1of 3

http://www.isa.cie.uva.es/~jesusm/Cienti/index.

html % Script para calcular la solucin de un sistema de ecuaciones % En primer lugar, utilizando las facilidades de Matlab A = input ('Matriz de coeficientes: '); b = input ('Vector de trminos independientes: '); disp ('Solucin') x = A\b % Ahora utilizando la regla de Cramer para matriz de 3 x 3 if det(A)==0 disp ('No es posible obtener la solucin'); else for i=1:3 for j=1:3 for k=1:3 if j==i d(k,j)=b(k,1); else d(k,j)=A(k,j); end end end detd=det(d); xc(i,1)=detd/det(A) end end

secante http://es.scribd.com/doc/38428907/Metodos-numericos-Metodo-de-la-secante-en-matlab

f= input(Ingresar funcin:\n,s); f=inline(f) x0=input(Ingrese el primer punto inicial:\n); x1= input(Ingrese el segundo punto inicial:\n); xra=0, xr=0; tol=0.01; i=1; eror_aprox=1; error=0; fx1=f(x1);

fx0=f(x0); xr0x1-((x1-x0)/(fx1-fx0))*fx1; fprintf(It. x0 x1 xr Error aprox \n); fprintf(%2d \t %11.7f \t.%11.7f \t %11.7f \t %11.7f \n,i,x0,x1,xr,error); while error_aprox >= tol, xra=xr; x1=xr; fx1=f(x1); fx0=f(x0); xr=x1-((x1-x0)/(fx1-fx0))*fx1; error =abs((xr-xra)/xr); error_aprox=error; i=i+1; fprontf() fprintf(%2d \t %11.7f \t.%11.7f \t %11.7f \t %11.7f \n,i,x0,x1,xr,error); end
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)); % formula 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; pasos x0=x1; x1=a; end % Salida % actualiza x

% Cuenta los

function secante global fun fprintf('Metodo de la secante:\n'); fun=input('Ingrese la funcion:\n','s'); x0=input('Ingrese el primer punto inicial:\n'); x1=input('Ingrese el segundo punto inicial:\n'); tol=input('Ingrese la tol:\n'); it=0; fprintf('it x0 x1 x2 x1-x2'); while(it<50) it="it+1;" x="x0;" f0="eval(fun);" x="x1;" f1="eval(fun);" x2="(x0*f1-x1*f0)/(f1f0);"> fprintf('el procedimiento se completo satisfactoriamente:\n'); break end x0=x1; x1=x2; end fprintf('la raiz buscada es=%15.9f\n',x2); ezplot(fun), grid on

You might also like