Ayuda Cual es el error
Publicado por Andres (1 intervención) el 21/10/2010 19:56:23
El profesor me envio este ejercicio como ejemplo para desarrollar otros el problema es que arroja el siguiente error:
METODO DE BISECCION
??? Error using ==> run
Undefined function or variable 'func'.
¿Se tiene que definir alguna función, si es asi donde? o el programa tiene que pedirla, y si ees asi cuales son los comandos para que el programa la pida? (mi conocimiento de matlab es nulo) Tuve nada mas 2 clases. Porfa es para mañana.
Este es el algoritmo:
% Se encuentra un cero de la función "func" en el intervalo [a,b] por el Método de Bisección
clc
clear
fprintf('\n METODO DE BISECCION \n\n');
% eps=input('Tolerancia: ');
% N=input(''Número máximo de iteraciones: ');
eps=10^-8;
N=100;
n=1;
a=0;
b=10;
error=b-a;
fa=func(a);
fb=func(b);
if sign(fa)==sign(fb) % chequeo inicial
fprintf('No se cumple condición f(a)*f(b)<0 \n\n');
break;
end
% Búsqueda iterativa
while (error>eps & n < N)
c = (a+b)/2
fc = func(c)
mat(n,1)=a;
mat(n,2)=c;
mat(n,3)=b;
mat(n,4)=fc;
if (fc==0)
error=0;
break;
end
if (sign(fa)~= sign(fc))
b = c; fb = fc;
else
a = c; fa = fc;
end
error=abs((a-b)/2);
n = n + 1;
end
disp(['La raíz calculada es ',num2str(c)]);
disp(['El número de iteraciones es ',num2str(n)]);
disp(['El error es ',num2str(error)]);
METODO DE BISECCION
??? Error using ==> run
Undefined function or variable 'func'.
¿Se tiene que definir alguna función, si es asi donde? o el programa tiene que pedirla, y si ees asi cuales son los comandos para que el programa la pida? (mi conocimiento de matlab es nulo) Tuve nada mas 2 clases. Porfa es para mañana.
Este es el algoritmo:
% Se encuentra un cero de la función "func" en el intervalo [a,b] por el Método de Bisección
clc
clear
fprintf('\n METODO DE BISECCION \n\n');
% eps=input('Tolerancia: ');
% N=input(''Número máximo de iteraciones: ');
eps=10^-8;
N=100;
n=1;
a=0;
b=10;
error=b-a;
fa=func(a);
fb=func(b);
if sign(fa)==sign(fb) % chequeo inicial
fprintf('No se cumple condición f(a)*f(b)<0 \n\n');
break;
end
% Búsqueda iterativa
while (error>eps & n < N)
c = (a+b)/2
fc = func(c)
mat(n,1)=a;
mat(n,2)=c;
mat(n,3)=b;
mat(n,4)=fc;
if (fc==0)
error=0;
break;
end
if (sign(fa)~= sign(fc))
b = c; fb = fc;
else
a = c; fa = fc;
end
error=abs((a-b)/2);
n = n + 1;
end
disp(['La raíz calculada es ',num2str(c)]);
disp(['El número de iteraciones es ',num2str(n)]);
disp(['El error es ',num2str(error)]);
Valora esta pregunta
0