Documentos de Académico
Documentos de Profesional
Documentos de Cultura
function raiz=biseccion(funct,a,b,tol)
fa=feval(funct,a);
fb=feval(funct,b);
if (fb*fa>0)
error('La funcion tiene el mismo signo en ambos extremos.')
end
while (abs(b-a)>tol)
if (fa*fb==0)
if (fa==0)
raiz=a;
else
raiz=b;
end
else
raiz=(a+b)/2;
fraiz=feval(funct,raiz);
fprintf('%4.8f %4.8f %4.8f %0.8e %0.8e %0.8e\n',a,b,raiz,fa,fb,fraiz)
if fraiz==0;
disp('El punto medio es la raiz!')
break
elseif (fa*fraiz>0)
a=raiz;
fa=fraiz;
else
b=raiz;
fb=fraiz;
end
end
end
Para encontrar la raiz de f (x) = x sin(x) − 1 en [0, 2] debemos introducir primero la función f con el
comnado inline:
mif=inline('x*sin(x)-1')
obtenemos la salida
mif =
Inline function:
mif(x) = x*sin(x)-1
luego llamamos la función biseccion
biseccion(mif,0,2,10^-3)
ans =
1.1143
La raiz en formato corto es 1,1143. La tabla es producto del siguiente comando que incluimos en el
programa:
Podemos apreciar que la primera columna corresponde al extremo izquyierdo del intervalo a, la segunda
columna es el extremo derecho b, la tercera corresponde a c = (a+b)/2 y las siguientes son las evaluaciones
de la funcion en esos puntos respectivamente. De acuerdo a eso, nuestras aproximaciones estan en la tercera
columna y en la ultima columna se debe verificar que ese valor evaluado en la función es cero. En este
caso la raiz es 1,11425781 y el valor evaluado es 1,39813102e − 04. Como nosotros solicitamos que el error
fuera menor a a 10−3 y este valor es del orden de 10−4 , se considera 0.
Comparemos estos resultados usando el método Regula Falsi cuyo programa es
function raiz=regula(funct,a,b,tol)
fa=feval(funct,a);
fb=feval(funct,b);
if (fb*fa>0)
error('La funcion tiene el mismo signo en ambos extremos.')
end
while (abs(b-a)>tol)
if (fa*fb==0)
if (fa==0)
raiz=a;
else
raiz=b;
end
else
raiz=(a*fb-b*fa)/(fb-fa);
fraiz=feval(funct,raiz);
fprintf('%4.8f %4.8f %4.8f %0.8e %0.8e %0.8e\n',a,b,raiz,fa,fb,fraiz)
if fraiz==0;
disp('El punto medio es la raiz!')
break
elseif (fa*fraiz>0)
a=raiz;
fa=fraiz;
else
b=raiz;
fb=fraiz;
end
end
end
mif=inline('x*sin(x)-1')
regula(mif,0,2,10^-3)
y obtenemos
ans =
1.1142
1. Para cada una de las siguientes funciones compruebe que hay un cero de f (x) en el intervalo indicado
y encuentre el número mínimo de iteraciones, N , necesarias para lograr una precisión de = 10−3
utilizando el método de bisección. Realice N iteraciones y presente los resultados como en la tabla ??.
1 f (x) = x3 − 1 en [0, 2]
2 f (x) = x2 − 4 sen x en [1, 3]
3 f (x) = x3 − 7x + 6 en [0, 1,5]
√
4 f (x) = cos x − x en [0, 1]
5 f (x) = x − tan x en [4, 4,5]
6 f (x) = e−x − x en [0, 1]
x2
7 f (x) = ex − 1 − x − 2 en [−1, 1]
x −x
8 f (x) = e + 2 − 5 en [1, 2].
9 f (x) = x − cos(x) en [0, 2π].
10 f (x) = ex + 2−x + 2 cos(x) − 6 en [1, 2].
11 f (x) = 2x cos(x) − (x − 2)2 en [2, 3].
12 f (x) = (x − 2)2 − ln(x) en [e, 4].
13 f (x) = ex − 3x2 en [0, 1].
14 f (x) = sin(x) − e−x en [0, 1].
2. Para cada una de las siguientes funciones compruebe que hay un cero de f (x) en el intervalo indicado
y encuentre el número mínimo de iteraciones, N , necesarias para lograr una precisión de = 10−3
utilizando el método de Regula Falsi. Realice N iteraciones y presente los resultados como en la tabla
??.
1 f (x) = x3 − 1 en [0, 2]
2 f (x) = x2 − 4 sen x en [1, 3]
3 f (x) = x3 − 7x + 6 en [0, 1,5]
√
4 f (x) = cos x − x en [0, 1]
5 f (x) = x − tan x en [4, 4,5]
6 f (x) = e−x − x en [0, 1]
x2
7 f (x) = ex − 1 − x − 2 en [−1, 1]
x −x
8 f (x) = e + 2 − 5 en [1, 2].
9 f (x) = x − cos(x) en [0, 2π].
10 f (x) = ex + 2−x + 2 cos(x) − 6 en [1, 2].
11 f (x) = 2x cos(x) − (x − 2)2 en [2, 3].
12 f (x) = (x − 2)2 − ln(x) en [e, 4].
13 f (x) = ex − 3x2 en [0, 1].
14 f (x) = sin(x) − e−x en [0, 1].