Este código en MATLAB utiliza el Método de la Bisección. Este código es una herramienta útil para calcular aproximaciones de raíces en ecuaciones no lineales. Usaremos como el método de la bisección funciona a través de iteraciones que reducen gradualmente el intervalo de búsqueda.
xai=input('Ingrese limite inferior: ');
xbi=input('Ingrese limite superior: ');
tol=input('Ingrese el porcentaje de Error: ');
syms x;
f=input('Ingrese la Funcion: ');
f1=subs(f,x,xai);
f2=subs(f,x,xbi);
i=1;
ea(1)=100;
if f1*f2 < 0
xa(1)=xai;f1=subs(f,x,xa(1));
xb(1)=xbi;f2=subs(f,x,xb(1));
xr(1)=xa(1)-f1*(xb(1)-xa(1))/(f2-f1); f3=subs(f,x,xr(1));
fprintf('It. Xa Xr Xb Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i))>=tol,
if f1*f3 < 0
xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
end
if f1*f3> 0
xa(1)=xr(i);
xb(1)=xb(i);
end
xr(i+1)=xa(i+1)-f1*(xb(i+1)-xa(i+1))/(f2-f1);
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)))*100;
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raíz en ese intervalo');
end
no corre perrrroooooa
para ingresar funciones como: x^4+x^3-7x+14 que necesito solo me corre con logaritmos y trigonometricas
Hola, si se tiene un polinomio de grado 5 como x^5-15x^4+7x^3….124=0, el cual tiene una raiz real y dos raices complejas conjugadas, como pueden hallarse las raices complejas con este metodo?
ey vale gracias x el codigo, me funciono al 100….
te corre con funciones polinomiales?
Me gustaría que incluyeras a tu tabla de salida, las columnas correspondientes a: f(xai) y f(xbi); pues la idea es verificar que efectivamente una ordenada proporciona una valor negativo y la otra un valor positivo.
Saludos
xque pone i=1
Inicializa el contador
no coree putos
no corree
corre el programa
como meto la funcion?
corre elprograma
muy buen programa casi lo tenia pero me faltaba unos pasos,,, a y si me corrio luego luego