function falsaposicion
global fun
fprintf('\n metodo de la falsa posicion\n');
fun=input('\nIngrese la funcion:\n','s');
x0=input('\nIngrese el valor inferior del intervalo\n');
x1=input('\nIngrese el valor superior del intervalo\n');
tol=input('\nIngrese la tolerancia\n')
fprintf('\n it x0 x1 x2 f0 f1 f2 abs(f2)\n');
f2=1;
it=0;
x=x0;
f0=eval(fun);
x=x1;
f1=eval(fun);
if(f0*f1>0)
fprintf('\n En este intervalo no hay raices\n');
fprintf('\n Buscar otro intervalo \n');
return
end
while abs(f2)>tol
it=it+1;
x2=(x0*f1-x1*f0)/(f1-f0);
x=x2;
f2=eval(fun);
fprintf('\n%3.0f%12.7f%12.7f%12.7f%12.7f%12.7f%12.7f%12.7f\n',it,x0,x1,x2,f0,f1,f2,abs(f2));
if(f0*f2<0) x1="x2;f1=" x0="x2;f0=" es =" %10.7f\n',x2);" face="arial" color="#cc0000">
Ejemplo:
metodo de la falsa posicion
Ingrese la funcion:
3*x-2+exp(x)-x^2
Ingrese el valor inferior del intervalo
0
Ingrese el valor superior del intervalo
1
Ingrese la tolerancia
10^(-5)
tol =
1.0000e-005
it | x0 | x1 | x2 | f0 | f1 | f2 | abs(f2) | |
1 | 0.0000000 | 1.0000000 | 0.2689414 | -1.0000000 | 2.7182818 | 0.0430733 | 0.0430733 | |
2 | 0.0000000 | 0.2689414 | 0.2578356 | -1.0000000 | 0.0430733 | 0.0011537 | 0.0011537 | |
3 | 0.0000000 | 0.2578356 | 0.2575385 | -1.0000000 | 0.0011537 | 0.0000310 | 0.0000310 | |
4 | 0.0000000 | 0.2575385 | 0.2575305 | -1.0000000 | 0.0000310 | 0.0000008 | 0.0000008 |
La raiz buscada es = 0.2575305
2 comentarios:
hola disculpa no me funcionan me salen muchos errores me podrias pasar los archivo gracias
Esta segura q fubciona a mi no me sale
Publicar un comentario