Professional Documents
Culture Documents
PROFESOR
CURSO
ANALISIS NUMERICO
ESCUELA
FSICA
2010
PROGRAMAS MEJORADOS
%METODO DE LA BISECCION function biseccion clear; clc; fprintf('\calculo de la raiz de una ecuacion por mtodo de Biseccin\n\n'); y=input('Dame la funcion:','s'); % Se ingresa la funcin x1=input('Dame el intervalo inferior :'); % Se ingresa el intervalo inferior xu=input('Dame el intervalo superior :'); % Se ingresa el intervalo superior e=input('Dame el porciento del error :'); % Se ingresa el porciento de error xi=0; ea=100; c=1; x=x1; a=eval(y); % Evalua la funcin en el intervalo ingresado x=xu; b=eval(y); % Evalua la funcin en el intervalo ingresado cc=a*b; if cc>0; fprintf('\n\nLos intervalos que ha ingresado para hacer el cculo de la raiz\n\n'); fprintf('\nde la ecuacin no son los adecuados por no existir una raz entre \n\n'); fprintf('\nestos, Ejecute de nuevo el programa, por favor.\n\n'); return end while ea>e % Repite las declaraciones segun el numero definido de veces xr=(x1+xu)/2; x=x1; y1=eval(y); x=xr; yr=eval(y); ea=abs((xr-xi)/xr)*100; % Establece la tolerancia z=y1*yr; if z<0 xu=xr; end if z>0 x1==xr; end if z==0 fprintf('\n\n\n\nLa raiz exacta es: %d',xr); fprintf('\n\nNumero de iteraciones: %d',c); break end xi=xr; c=c+1; end if ea<e fprintf('\n\n\n\nLa raiz exacta es: %d',xr); fprintf('\n\nNumero de iteraciones: %d',c); end %fprintf: Convierte el resultado en una cadena de caracteres que devuelve
%como valor de retorno. % while: Repite las declaraciones un numero definido de veces % if: Es un condicional que sirve apra ejecutar sentencias (es decir, % si se cumple la condicin se realiza el ajuste indicado en la % instruccion, caso contrario no se ejecuta). % abs: valor absoluto
function biseccion1 f=input(' Ingrese la funcion f(x)=','s'); % Se ingresa la funcin a=input(' Ingrese el Limite Inferior del intervalo que contiene a la raiz buscada:'); % Se ingresa el intervalo inferior b=input(' Ingrese el Limite Superior del intervalo que contiene a la raiz buscada:'); % Se ingresa el intervalo superior n=input(' Ingrese el Numero de Iteraciones:'); % Se ingresa el numero de iteraciones xmi=a; xma=b; % define como minimo al limite inferior y maximo al limite superior x=a; fa=eval(f); % Evalua la funcion en en el limite inferior x=b; fb=eval(f); % Evalua la funcion en el limite superior if fa*fb>0 % Evalua si cumple la condicion indicada fprintf('En el intervalo dado no existen raices'); fprintf('\n') else i=1; % contador, i=1 while i<=n r=(a+b)/2; % asgina a la variable r la operacion de biseccion (pto medio) x=a; fa=eval(f); x=b; fb=eval(f); x=r; fr=eval(f); fprintf('\n') % Pasa a la siguiente linea fprintf('%3.0f%10.6f%10.6f%10.6f%10.6f%\n',i,a,b,r); if fr==0; break fprintf('la raiz es:\n'),r else if fa*fr<0 % si el producto de funciones es menor que cero, b=r; % entonces b=r else % caso contrario, a=r; % se evalua para a=r end end i=i+1; % se va iterando de modo consecutivo end fprintf('\nLa raiz es:\n'),r end x=xmi:0.1:xma; % define el intervalo para el domnio (con un paso de 0.1) y=eval(f(x)); % asigna a la variable y la evaluacion de la funcion f(x) plot(x,y); % Grafica la funcion f(x) xlabel('X') % Etiqueta el eje horizontal ylabel('Y') % Etiqueta el eje vertical title(['Grafica f(x)=',f]); % Establece un titulo a la grafica end % finalizar %else : comando que ejecuta las condiciones del if (es decir,"si se cumple
% la condicion se ejecuta, caso contrario se evalua lo siguiente"). % plot : crea un grafico a partir de vectores y/o columnas de matrices, con % escalas lineales sobre ambos ejes. % for : repite las declaraciones un numero determinado de veces.
1- Aplique el mtodo de biseccin Para encontrar soluciones exactas dentro de 10-5 para los siguientes problemas.
(
Solucin: Para Analticamente:
=
Log
> In biseccion at 5 Dame la funcion: 2*x*(cos(2*x))-(x+1).^2 Dame el intervalo inferior :-2 Dame el intervalo superior :1 Dame el porciento del error:2 La raiz exacta es: -5.000000e-001
Ingrese la funcion f(x)=2*x*(cos(2*x))-(x+1).^2 Ingrese el Limite Inferior:-2 Ingrese el Limite Superior:1 Ingrese el Numero de Iteraciones:17 TABLA DE LA BISECCION 1. -2.000000 1.000000 -0.500000 2. -2.000000 -0.500000 -1.250000 3. -1.250000 -0.500000 -0.875000 4. -0.875000 -0.500000 -0.687500 5. -0.875000 -0.687500 -0.781250 6. -0.875000 -0.781250 -0.828125 7. -0.828125 -0.781250 -0.804688 8. -0.804688 -0.781250 -0.792969 9. -0.804688 -0.792969 -0.798828 10. -0.798828 -0.792969 -0.795898 11. -0.798828 -0.795898 -0.797363 12. -0.798828 -0.797363 -0.798096 13. -0.798828 -0.798096 -0.798462 14. -0.798462 -0.798096 -0.798279 15. -0.798279 -0.798096 -0.798187 16. -0.798187 -0.798096 -0.798141 17. -0.798187 -0.798141 -0.798164 La raiz es: r= -0.7982
Grfica de f(x) 3
-1
-2
-3
-4
-5 -2
-1.5
-1
-0.5 X
0.5
Analticamente:
=
Log
Ingrese la funcion f(x)=x-(2.^(-x)) Ingrese el Limite Inferior del intervalo que contiene a la raiz buscada: 0 Ingrese el Limite Superior del intervalo que contiene a la raiz buscada: 1 Ingrese el Numero de Iteraciones: 17 TABLA DE LA BISECCION 1 0.000000 1.000000 0.500000 2 0.500000 1.000000 0.750000
3 0.500000 0.750000 0.625000 4 0.625000 0.750000 0.687500 5 0.625000 0.687500 0.656250 6 0.625000 0.656250 0.640625 7 0.640625 0.656250 0.648438 8 0.640625 0.648438 0.644531 9 0.640625 0.644531 0.642578 10 0.640625 0.642578 0.641602 11 0.640625 0.641602 0.641113 12 0.641113 0.641602 0.641357 13 0.641113 0.641357 0.641235 14 0.641113 0.641235 0.641174 15 0.641174 0.641235 0.641205 16 0.641174 0.641205 0.641190 17 0.641174 0.641190 0.641182 La raiz es: r= 0.6412
Por tanto es necesario hacer 17 iteraciones para obtener una aproximacin exacta dentro de 10-5 :
P17 = 0.641182
Y
-0.5 -1 0
0.1
0.2
0.3
0.4
0.5 X
0.6
0.7
0.8
0.9
2- Aplique el mtodo de biseccin para encontrar las soluciones exactas dentro de 10-2 para en cada intervalo:
10-2
Log
-n log 2 < -2 n >2/0.3 > 6.66 n= 7 Luego aplico el algoritmo del mtodo de biseccin para evaluar la funcin obteniendo: METODO DE LA BISECCION: Ingrese la funcin: (x.^4)-(2*(x.^3))-(4*(x.^2))+4*x+4 Ingrese el lmite inferior del intervalo que contiene a la raz buscada -2
Ingrese el lmite superior del intervalo que contiene a la raz buscada 1 Ingrese el nmero de iteraciones 7 Tabla de la biseccin: 1 2 3 4 5 6 7 -1.500000 -1.250000 -1.375000 -1.437500 -1.406250 -1.421875 -1.414063
Por tanto es necesario hacer 7 iteraciones para obtener una aproximacin exacta dentro de 10-2 :
P7=-1.414063
Grfica de f(x) 12
10
Y
4 2 0 -2 -2
-1.5
-1
-0.5 X
0.5
a. [0,2]
n >2.3/0.3 >7.66 n= 8 METODO DE LA BISECCION: Ingrese la funcin: (x.^4)-(2*(x.^3))-(4*(x.^2))+4*x+4 Ingrese el lmite inferior del intervalo que contiene a la raz buscada 0 Ingrese el lmite superior del intervalo que contiene a la raz buscada 2 Ingrese el nmero de iteraciones 8 TABLA DE LA BISECCIN: 1 2 3 4 5 6 7 8 1.000000 1.500000 1.250000 1.375000 1.437500 1.406250 1.421875 1.414063
Por tanto es necesario hacer 8 iteraciones para obtener una aproximacin exacta dentro de 10-2 :
P8=1.414063
Grfica de f(x) 5 4 3 2 1
Y
0 -1 -2 -3 -4 0
0.2
0.4
0.6
0.8
1 X
1.2
1.4
1.6
1.8
b.
=
log
METODO DE LA BISECCION: Ingrese la funcin: (x.^4)-(2*(x.^3))-(4*(x.^2))+4*x+4 Ingrese el lmite inferior del intervalo que contiene a la raz buscada 2 Ingrese el lmite superior del intervalo que contiene a la raz buscada 3 Ingrese el nmero de iteraciones 7 TABLA DE LA BISECCIN: 1 2 3 4 2.500000 2.750000 2.625000 2.687500
5 6 7
Por tanto es necesario hacer 7 iteraciones para obtener una aproximacin exacta dentro de 10-2 :
P7= 2.726563
Grfica de f(x) 8
Y
0 -2 -4 -6 2
2.1
2.2
2.3
2.4
2.5 X
2.6
2.7
2.8
2.9
c. [-1,0]
=
Log
-n log 2 < -2 n >2/0.3 > 6.66 n= 7 METODO DE LA BISECCION: Ingrese la funcin: (x.^4)-(2*(x.^3))-(4*(x.^2))+4*x+4
Ingrese el lmite inferior del intervalo que contiene a la raz buscada -1 Ingrese el lmite superior del intervalo que contiene a la raz buscada 0 Ingrese el nmero de iteraciones 7 TABLA DE LA BISECCIN: 1 2 3 4 5 6 7 -0.500000 -0.750000 -0.625000 -0.687500 -0.718750 -0.734375 -0.726563
Por tanto es necesario hacer 7 iteraciones para obtener una aproximacin exacta dentro de 10-2 :
P7 = - 0.726563
Grfica de f(x) 4 3.5 3 2.5 2 1.5 1 0.5 0 -0.5 -1 -1
-0.9
-0.8
-0.7
-0.6
-0.5 X
-0.4
-0.3
-0.2
-0.1