ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Metodos Numericos


Enviado por   •  10 de Febrero de 2013  •  1.494 Palabras (6 Páginas)  •  478 Visitas

Página 1 de 6

SESION4: “Método de la Bisección”

(15 Noviembre del 2010)

ALUMNO : MARÍN RENGIFO, KELMAN

PROFESOR : MACO VASQUEZ, WILSON

CURSO : ANALISIS NUMERICO

ESCUELA : FÍSICA

2010

PROGRAMAS MEJORADOS

%METODO DE LA BISECCION

function biseccion

clear;

clc;

fprintf('\calculo de la raiz de una ecuacion por método de Bisección\n\n');

y=input('Dame la funcion:','s'); % Se ingresa la función

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 función en el intervalo ingresado

x=xu;

b=eval(y); % Evalua la función en el intervalo ingresado

cc=a*b;

if cc>0;

fprintf('\n\nLos intervalos que ha ingresado para hacer el cáculo de la raiz\n\n');

fprintf('\nde la ecuación no son los adecuados por no existir una raíz 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 condición 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 función

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,

...

Descargar como (para miembros actualizados)  txt (7.6 Kb)  
Leer 5 páginas más »
Disponible sólo en Clubensayos.com