Sunteți pe pagina 1din 2

METODOS NUMERICOS PARA SOLUCION DE ECUACION NO LINEALES DE UNA

SOLA VARIABLE EN MATLAB


%Metodo de la Biseccion
function y = biseccion(funcion,a,b,error)
u=subs(funcion,a);
v=subs(funcion,b);
if sign(u)==sign(v)
disp('ERROR,NO TIENE SOLUCION PARA ESTE METODO');
return
end
while (b-a)/2>error
c=(a+b)/2;
w=subs(funcion,c);
if sign(u)==sign(w)
a=c;
u=w;
else
b=c;
v=w;
end
end
c

>> %prueba de escritorio


>> biseccion('3*x^2-6*x+3',1,2,0.001)

c =

1.0020

%Metodo de la regla falsa o falsa posicion


function y=falsap(funcion,an,bn,error)
u=subs(funcion,an);
v=subs(funcion,bn);
a=an;
b=bn;
while abs(u)>error
p=a-u*(b-a)/(v-u);
w=subs(funcion,p);
if u*v < 0
a=an;
b=p;
else
a=p;
b=bn;
end
u=subs(funcion,a);
v=subs(funcion,b);
end
p

>> %prueba de escritorio


>> falsap('2*x^2-x-5',1,2,0.001)

p =

1.8508
%Mtodo de Newton Raphson
function y=newtonr(fun,x0,error)
dfun=diff(sym(fun));
f=subs(fun,x0);
df=subs(dfun,x0);
c=1;
while abs(f)>error
a=x0-f/df;
f=subs(fun,a);
df=subs(dfun,a);
x0=a;
c=c+1;
end
c
a
>> %prueba de escritorio
>> newtonr('x^3+2*x^2-x-6',1,0.001)

c =

a =

1.467

%Metodo de la Secante
function y = secante( fun,a,b,error )
u=subs(fun,a);
v=subs(fun,b);
c=2;
x0=a;
x1=b;
while abs(u) > error
p=x0-u*(x1-x0)/(v-u);
x0=p;
x1=b;
u=subs(fun,x0);
v=subs(fun,x1);
c=c+1;
end
c
p

>> %prueba de escritorio


>> secante('x^3+2*x^2-5*x-3',1,2,0.001)

c =
7

p =
1.7733

S-ar putea să vă placă și