
Duda con mi código del método de Bisección
Publicado por Miguel (1 intervención) el 20/05/2014 01:16:40
Disculpen tengo una duda con mi código cuando trato de evaluar en una función simple se repiten los pasos y no cambian los datos. aquí el código:
Los resultados en matlab:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
clc;
fun=input('Introduzca la funcion: F(x)=','s');
i=input('Introduzca el número de iteraciones : ');
a=input('Introduzca a : ');
b=input('Introduzca b : ');
e=input('Introduzca la tolerancia : ');
n=1;
f=inline(fun);
fprintf('\n %6s %7s %8s %10s %8s %8s %8s \n ','A','B','C','F(a)','F(b)','F(c)','|c-a|');
while n<=i
c=(a+b)/2;
fprintf('\n %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f %8.4f \n',a,b,c,f(a),f(b),f(c),abs(c-a));
if f(c)==0
fprintf('La raiz exacta es: \n %8.4f \n',c);
break;
elseif (b-a)/(2^n)<e
fprintf('La raiz aproximada es: \n %8.4f \n',c);
break;
elseif f(a)*f(c)<=0
c=b;
else
c=a;
end
n=n+1;
end
Los resultados en matlab:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Introduzca la funcion: F(x)=x^3-x^2+x-6
Introduzca el número de iteraciones : 5
Introduzca a : -1
Introduzca b : 3
Introduzca la tolerancia : 0.005
A B C F(a) F(b) F(c) |c-a|
-1.0000 3.0000 1.0000 -9.0000 15.0000 -5.0000 2.0000
-1.0000 3.0000 1.0000 -9.0000 15.0000 -5.0000 2.0000
-1.0000 3.0000 1.0000 -9.0000 15.0000 -5.0000 2.0000
-1.0000 3.0000 1.0000 -9.0000 15.0000 -5.0000 2.0000
-1.0000 3.0000 1.0000 -9.0000 15.0000 -5.0000 2.0000
Valora esta pregunta


0