• Viernes 8 de Noviembre de 2024, 21:48

Autor Tema:  Metodo de bisección.  (Leído 2168 veces)

like

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Metodo de bisección.
« en: Miércoles 21 de Octubre de 2009, 20:42 »
0
Soy nuevo en esto y necesito una ayuda, tengo un problema con ese código me manda un error de hace falta variable o funcion, no se que hacer, si me pueden ayudar se los agradezco.. saludos
Este es el código:

%Algoritmo del método de bisección
%Métodos Numéricos
clear
clc
I=0
fprintf ('nntt Método de bisección de ecuaciones no lineales: nn')
a=input('Introducir intervalo de a:''a','b','t')
b=input('Introducir intervalo de b:')
t=input('Introducir la tolerancia:')
f=input('Introducir función a ejecutar:','s')
eval (f)
while I=0
    I=1
    xm=(a+b)/2
    if f(a), f(xm) < 0
        b=xm
    else
        a=xm
    end
    if I=1
        xprevio=xm
        I=I+1
    else
        tol=abs(xm-xprevio/xm)*100
        if tol >=1
            fprintf ('La raiz es:',xm)
        else I=1
            xprevio=xm
        end
    end
end;

gophlb

  • Visitante
Re: Metodo de bisección.
« Respuesta #1 en: Jueves 22 de Octubre de 2009, 12:12 »
0
Cita de: "like"
Soy nuevo en esto y necesito una ayuda, tengo un problema con ese código me manda un error de hace falta variable o funcion, no se que hacer, si me pueden ayudar se los agradezco.. saludos
Este es el código:

%Algoritmo del método de bisección
%Métodos Numéricos
clear
clc
I=0
fprintf ('nntt Método de bisección de ecuaciones no lineales: nn')
a=input('Introducir intervalo de a:''a','b','t')
b=input('Introducir intervalo de b:')
t=input('Introducir la tolerancia:')
f=input('Introducir función a ejecutar:','s')
eval (f)
while I=0
    I=1
    xm=(a+b)/2
    if f(a), f(xm) < 0
        b=xm
    else
        a=xm
    end
    if I=1
        xprevio=xm
        I=I+1
    else
        tol=abs(xm-xprevio/xm)*100
        if tol >=1
            fprintf ('La raiz es:',xm)
        else I=1
            xprevio=xm
        end
    end
end;
no te puedo ayudar porque no tengo ni idea de que lenguaje es este ni acabo de entender muy bien el algoritmo, pero te hago una pregunta por pura curiosidad:
tienes puesto:
while I=0
I=1
¿como se diferencia una asignacion de una igualdad?

y esto, que hace?
if f(a), f(xm) < 0
que es f() ?


y finalmente
a=input('Introducir intervalo de a:''a','b','t')
abusando de mi ignorancia, no faltaria una coma en los parametros? es decir
a=input('Introducir intervalo de a:'    ,    'a','b','t')

like

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Metodo de bisección.
« Respuesta #2 en: Jueves 22 de Octubre de 2009, 22:22 »
0
Disculpa tienes razón, tiene un monton de errores, el lenguaje es en matlab, aqui lo copio otra vez, mi problema es que manda un error que hace falta la funcion o variable.

%Algoritmo del método de Bisección
clc
disp('nntt Método de bisección de ecuaciones no lineales: nn');
%Introducir la funcion a utilizar f(x)
f=input('Introduzca la función:','s');
%Hacemos peticion al usuario de introducir los valores de los intervalos
intervaloa=input('Introducir valor de a:');
intervalob=input('Introducir valor de b:');
%Petición de la tolerancia
e=input('Introducir valor de la tolerancia:');
%Valores iniciales
I=0;
%Asignamos para ver si la funcion es valida o no
x=intervaloa;
a=eval (f);
x=intervalob;
b=eval (f);
while I=0
 I=1;
 xm=(a+b)/2
  if
  %f(a) f(Xm) >0 entonces  
  f(a);f(xm) > 0
  b=xm  
  else
  a=xm  
  %FinSi
 end
%Si I=1
 if I=1
 xprevio=xm
 I= I+1
  %Sino
  else
  e=abs(xm-xprevio/xm)*100
  disp('El error aproximado es:','e');
 %Si  Tol<valor entonces
 if e < 1
 %Imprimir “la raíz es:”,xm
 disp('La raiz es:','xm');
  %Sino I=1
 else I=1
 xprevio=xm
 %FinSi
 end
 %Fin hacer
 end
 %Fin
 end;