
Método de la Interpolación lineal
Publicado por Jaime Martínez (4 intervenciones) el 22/11/2014 13:00:57
Hola.
Tengo un problema a la hora de programar distintos métodos para el cálculo de raíces de una función.
En un procedimiento concreto llamado método de la biseccción me gustaría que la función me devolviese el número de iteraciones, así como poder dibujar las sucesivas gráficas en cada iteración.
Mi código es el siguiente:
function [x,it]=bisecc(f,a,b)
%Cómo expresar el número de iteraciones it y la utilización del fprint
tol=input('Tolerancia:');
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>=0
disp('No se puede encontrar raíz con este método')
else
c=(a+b)/2;
fc=feval(f,c);
it=0;
while abs(fc)>tol
if fa*fc<0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
it=it+1;
fprintf('\n %i %f %f',it,c,fc);
c=(a+b)/2;
fc=feval(f,c);
end
x=c;
end
Gracias y un saludo.
Tengo un problema a la hora de programar distintos métodos para el cálculo de raíces de una función.
En un procedimiento concreto llamado método de la biseccción me gustaría que la función me devolviese el número de iteraciones, así como poder dibujar las sucesivas gráficas en cada iteración.
Mi código es el siguiente:
function [x,it]=bisecc(f,a,b)
%Cómo expresar el número de iteraciones it y la utilización del fprint
tol=input('Tolerancia:');
fa=feval(f,a);
fb=feval(f,b);
if fa*fb>=0
disp('No se puede encontrar raíz con este método')
else
c=(a+b)/2;
fc=feval(f,c);
it=0;
while abs(fc)>tol
if fa*fc<0
b=c;
fb=fc;
else
a=c;
fa=fc;
end
it=it+1;
fprintf('\n %i %f %f',it,c,fc);
c=(a+b)/2;
fc=feval(f,c);
end
x=c;
end
Gracias y un saludo.
Valora esta pregunta


0