Método Bisseção
Trabalho Escolar: Método Bisseção. Pesquise 862.000+ trabalhos acadêmicosPor: rodolfophl • 25/11/2014 • 736 Palavras (3 Páginas) • 207 Visualizações
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
...