You are on page 1of 3

ALGORITMO PARA LA SOLUCION DE ECUACIONES NO LINEALES EN MATLAB

1. PASOS A SEGUIR
a
2. BISECCIION
function biseccion
fprintf('\n');
nombre_f=input('ingrese la funcion asociada f(x)= ','s');
a=input('ingrese el limite inferior: ');
b=input('ingrese el limite superior: ');
fprintf('\n');
fprintf('it
a
b
aprox error\n');
i=1; e=1; r=0;
while e>=3E-6 & i<=15 %(cambiar para generar mas iteraciones)
va=r;
r=(a+b)/2;
x=a;fa=eval(nombre_f);
x=b;fb=eval(nombre_f);
x=r;fr=eval(nombre_f);
fprintf('%3.0f %10.6f %10.6f %10.6f',i,a,b,r);
if fa*fr<=0
b=r; e=abs((r-va)/r);
fprintf('%10.6f\n',e);
else
a=r; e=abs((r-va)/r);
fprintf('%10.6f\n',e);
end
i=i+1;
end
fprintf('\n');
fprintf('la raiz es:

%10.9f\n',r);

3. REGULA FALSI
function R_falsa
fprintf('\n');
nombre_f=input('ingrese la funcion asociada f(x)= ','s');
a=input('ingrese el limite inferior: ');
b=input('ingrese el limite superior: ');
fprintf('\n');
fprintf('it
a
b
aprox error\n');
i=1; e=1; r=0;
while e>=3E-6 & i<=10
va=r;
r=(a+b)/2;
x=a;fa=eval(nombre_f);
x=b;fb=eval(nombre_f);
r=a-fa*(b-a)/(fb-fa);
x=r;fr=eval(nombre_f);
fprintf('%3.0f

%10.6f

%10.6f %10.6f',i,a,b,r);

if fa*fr<=0
b=r; e=abs((r-va)/r);
fprintf('%10.6f\n',e);
else
a=r; e=abs((r-va)/r);
fprintf('%10.6f\n',e);
end
i=i+1;
end
%fprintf('\n');
fprintf('la raiz es:

%10.9f\n',r);

4. MILLER
function muller
fprintf('\n');
nombre_f=input('ingrese la funcion asociada f(x)= ','s');
x0=input('ingrese x0: ');
x1=input('ingrese x1: ');
x2=input('ingrese x2: ');
fprintf('\n');
x=[x0 x1 x2];
y=eval(nombre_f);
x0=x(1); x1=x(2); x2=x(3);
%calculo de los coeficientes del polinomio p(x)
p=polyfit(x,y,2);
A=p(1); B=p(2); C=p(3);
%calculo de las raices de P(x)
r=roots(p);
r1=r(1); r2=r(2);
fprintf(' la aproximacion 1 es: %10.9f\n',r1);
fprintf(' la aproximacion 2 es: %10.9f\n',r2);

5. PUNTO FIJO
function Ptofijo
fprintf('ingrese la funcion asociada\n');
nombre_f=input('al punto fijo g(x)= ','s');
x0=input('ingrese el valor inicial: ');
fprintf('\n');
fprintf('it
aprox g(x)
error\n');
i=1; e=1;
while e>=3E-6 & i<=10
x=x0;
r=eval(nombre_f);
e=abs((r-x0)/r);
fprintf('%3.0f %10.6f %10.6f %10.6f',i,x0,r,e);
x0=r;
i=i+1;
end
fprintf('la raiz es: %10.9f\n',x0);

6. METODO DE NEWTON
function newton
%-----------------------Metodo NewtonR----------------------nombre_f=input('ingrese la funcion asociada f(x)= ','s');
x0=input('ingrese valor inicial: ');
fprintf('\n');
fprintf('it
aprox
g(x)
error\n');
i=1; e=1; delta=0.001;
while e>=3E-12 & i<=18 %(cambiar para generar mas iteraciones)
x=x0;
fx0=eval(nombre_f);
x=x0-delta;
df1=eval(nombre_f);
x=x0+delta;
df2=eval(nombre_f);
dfx0=(df2-df1)/(2*delta);
r=x0-(fx0/dfx0);
e=abs((r-x0)/r);
fprintf('%3.0f %10.6f %10.6f %10.6f',i,x0,r,e);
fprintf('%10.6f\n',e);
x0=r;
i=i+1;
end
fprintf('\n');
fprintf('la raiz es: %10.9f\n',x0);

You might also like