ayuda con pequeño error al utilizar while en matlab

Publicado en 'Programación' por CM PUNK, 30 Abr 2011.





  1. CM PUNK

    CM PUNK Miembro maestro

    Registro:
    29 Abr 2007
    Mensajes:
    620
    Likes:
    5




    Hola a todos, este es una parte del segmento de codigo que estoy programando
    Código:
    while abs(funcion(c))>tol && nolter<maxlter
    c=(a+b)/2;
                if f(a)*f(c)<0
    b=c;
    else
    a=c;
    end   
                fprintf('%3.0f %10.10f %10.10f %10.10f %10.10f \n',nolter,a,b,c,f(c));
                nolter=nolter+1;
            end
    al ejecutar el algoritmo me sale este error:

    Recien estoy empezando a programar en matlab :biggrin:

    Saludos! :yeah:
     


  2. folken86

    folken86 Miembro de bronce

    Registro:
    22 Feb 2011
    Mensajes:
    1,334
    Likes:
    207
    mm..amigo ahce tiempo q no agarro el matlab.....pero deberias poner mas info q tipo de error te dice, de sintaxis o capaz no pones la libreria
     
  3. ciganito77

    ciganito77 Miembro nuevo

    Registro:
    9 May 2011
    Mensajes:
    2
    Likes:
    0
    ola bueno desea saber si algunos de usteds pueden darme algunas sugerencias de programas para un negocio ns el k imaginen ...bueno kiero ideas para dessarrollarlos y presentarlo en un trabajo de estudios
     
  4. JOSE CABALLERO

    JOSE CABALLERO Miembro nuevo

    Registro:
    12 May 2011
    Mensajes:
    2
    Likes:
    0
    hola lo que tu estas haciendo es el metodo de biseccion. Es la parte donde halla raices aproximadas. Si justo esta fallando en punto en while tienes varios posibilidades.
    1). Derepente tu funcion no esta evaluando es decir funcion(c) esto quiere decir q tu quieres evaluar la funcion en el punto c. La pregunta seria. ¿Haz creado tu archivo de function para tu funcion?, sino haz creado alli esta el error.
    2). Podria ser que te haz olvidado de definir el valor tol(tolerancia) o nolter o maxter(numero maximo de iteraciones).
    3). Te voy a mejorar este parte de programa, un poco.
    Aqui esta el programa mejorado.

    while abs(funcion(c))>tol && nolter<maxlter
    c=(a+b)/2;
    if f(a)*f(c)<0
    b=c;
    else
    a=c;
    end
    fprintf('%3d %10.6f %10.6f %10.6f %10.6f \n',nolter,a,b,c,f(c));
    nolter=nolter+1;
    end

    Te invito a que hagas tu pregunta en el foro de webdelprogramador.com
    en este foro hay un bloque para preguntas de matlab.
    despues de entrar al pagina. Ubicate en el icono de FOROS DE CONSULTA y haces clic , esta desvajo de CONSULTAS, luego te ubicas en la carpeta de MATLAB, porqu te van a salir un monton de carpetas y luego te ubicas en AGREGAR NOTA y haces clic y haces tu pregunta.
    Aqui te mando un enlace de una preguntas del foro



    Saludos.
    JOSE JEREMIAS CABALLERO
    ASESOR DE PROYECTOS CON MATLAB
    PROFESOR DE METODOS NUMERICOS CON MATLAB
    PROGRAMADOR EN MATLAB