Matlab - biseccion

   
Vista:

biseccion

Publicado por will (1 intervención) el 24/06/2008 04:26:27
Hola amigos como estan, me pidieron en la uni que hiciera un varios algoritmos entre ellos el de la biseccion yo hice este:

function x=biseccion(fun,a,b,tol)
%Este programa aproxima la raiz de una funcion f(x)=0 usando el metodo de la biseccion
disp('Metodo de la Biseccion');
u=feval(fun,a);
v=feval(fun,b);
n=1;
while ((b-a)*0.5>tol)
c=(b+a)/2;w=feval(fun,c);
if sign(u)==sign(w)
a=c;u=w
else
b=c;v=w
end
n=n+1;
end;
x=c
las cuestiones son dos
la funcion tengo que hacerla en un archivo .m
supongamos
function y=fun(x)
y=x^2+2x+1

pero el agoritm no corre se detiene en la 4 linea y en la funcion tambien me da problemas cualquier ayuda en verdad la agradecere.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:biseccion

Publicado por Carlos Arriagada (11 intervenciones) el 28/06/2008 10:11:07
primero que nada
u=feval(fun,a); fun debe ser un string un nombre
es decir cuendo la llamas debes escribir :

x=biseccion( 'fun' ,a,b,tol)
lo otro es que

y=x^2+2x+1; esta mal ybe ser 2*x, auque este error es solo de el ejemplo rapido que pusiste para ejemplificar el asunto

yo corri la rutina y me funciona

Saludos
Carlos Arriagada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:biseccion

Publicado por Alexis Sanchez (2 intervenciones) el 05/08/2008 04:48:18
Pues yo tambien ando buscando ayuda con la misma funcion... y tratdo de colocar como dices x=biseccion( 'fun' ,a,b,tol) y corrigiendo lo de x^2+2*x+1 y aun sigue sin funcionar la funcion...

>> y='x^2+2*x+1'

y =

x^2+2*x+1

>> x=biseccion( 'fun' ,0,1,0.1)
Método de la bisección
??? Error using ==> feval
Undefined function or method 'fun' for input arguments of type 'double'.

Error in ==> biseccion at 5
u=feval(fun,a);

>> func

func =

x^2+2*x+1

>> x=biseccion( 'fun' ,0,1,0.1)
Método de la bisección
??? Error using ==> feval
Undefined function or method 'fun' for input arguments of type 'double'.

Error in ==> biseccion at 5
u=feval(fun,a);

>> x=biseccion( 'fun' ,0,1,1)
Método de la bisección
??? Error using ==> feval
Undefined function or method 'fun' for input arguments of type 'double'.

Error in ==> biseccion at 5
u=feval(fun,a);

>>

Por favor podria ser mas especifico en tu respuesta... estoy algo perdido..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:biseccion

Publicado por Alexis Sanchez (2 intervenciones) el 05/08/2008 05:08:50
trato incluso asi

>> biseccion('x*x*x-3*x+x-1',0,2,0.001)
??? Error: File: biseccion.m Line: 9 Column: 4
A BREAK statement appeared outside of a loop. Use RETURN instead.

>> y = biseccion('x*x*x-3*x+x-1',0,2,0.0001)
??? Error: File: biseccion.m Line: 9 Column: 4
A BREAK statement appeared outside of a loop. Use RETURN instead.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:biseccion

Publicado por rutilo (1 intervención) el 16/02/2009 22:36:30
No seas pendejo, el´problema de tu pinche algoritmo es que lo bajaste de internet, yo creo que deberias cambiarle el titulo por eso no funciona, o probarlo en otra computadora por que la tuya valemadre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar