Programación Específica > Diseño de Algoritmos
Metodo de bisección.
(1/1)
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;
gophlb:
--- 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;
--- Fin de la cita ---
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:
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;
Navegación
Ir a la versión completa