TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Método Bisseção

Trabalho Escolar: Método Bisseção. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  25/11/2014  •  736 Palavras (3 Páginas)  •  207 Visualizações

Página 1 de 3

Bisseção

function r=bissecao(funcao,a,b,n,eps)

echo off;

a(1)=a; % atribuindo valor para a.

b(1)=b; % atribuindo valor para b.

fa(1)=feval(funcao,a(1)); % substituindo valor de a na funcao.

fb(1)=feval(funcao,b(1)); % substituindo valor de b na funcao.

if fa(1)*fb(1)>0 % se fa(a) x fb(a) for maior que zero vai aparecer uma mensagem de erro e vai finalizar o programa.

error('fa e fb tem mesmo sinal');

end

for k=1:n % k vai de 1 ate n. K e o numero de iteracoes.

x(k)=(a(k)+b(k))/2; % dividindo os dois intervalos por 2, achando assim o terceiro intervalo.

y(k)=feval(funcao,x(k)); % calculando o valor da funcao para o intervalo achado acima.

if y(k)==0 % condicao: se valor y(k) for igual a zero,

r=x(k); % então r recebe valor de x(k),

e(k)=0; % o erro vai ser zero.

break

end

e(k)=abs(b(k)-a(k))/2 % calculando o valor do erro.

if e(k)<=eps % condição: se o erro for menor igual ao erro desejado o programa para e r recebe o valor da iteracao, senao o programa continua.

r=x(k); % r recebe x(k) e o programa acaba com o numero de iteracoes.

break

end

if fa(k)*y(k)<0 % condicao: se fa(k) multiplicado por y(k) for menor que zero, o programa continua.

a(k+1)=a(k); % a(k+1) recebe o valor de a(k).

b(k+1)=x(k); % b(k+1) recebe o valor de x(k).

fa(k+1)=fa(k); % novo resultado para funcao fa(k).

fb(k+1)=y(k); % novo resultado para funcao fb(k)

else

a(k+1)=x(k); % caso nao obedeca a condicao a cima, a(k+1) recebe o valor de x(k),

b(k+1)=b(k); % b(k+1) recebe o valor de b(k).

fa(k+1)=y(k); % e sao calculados os novos valores para fa e fb.

fb(k+1)=fb(k);

end

end

if k>n and r=~0 % se k for for maior que o numero de iteracoes escolhido

disp (['nao foi possivel com o erro escolhido']);

end

echo off

m=length(x);

k=1:m;

r=x(m);

a=a(1:m);

b=b(1:m);

disp('iteracao a(k) b(k) x(k) y(k) Erro');

disp('--------------------------------------'); disp([k',a',b',x',y',e']);

Função – bisseção

bissecao

...

Baixar como (para membros premium)  txt (3.2 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com