domingo, 3 de março de 2024

Método da Bisseção no Scilab®

  Olá! É um grande prestígio a sua visita.

Para tirar o máximo de proveito do nosso conteúdo, tenha papel e caneta em mãos. Faça anotações dos principais pontos e, depois, formule pequenos parágrafos sobre o que tiver anotado. Em seguida, revise o texto, dessa vez, formulando perguntas para que você mesmo responda ao final. Por último, ensine o que aprendeu a alguém. Isso tornará seu processo de aprendizagem mais efetivo.

Desejo a você uma excelente aprendizagem!

Nesta publicação, mostrarei a você a essência do método da bisseção, fornecendo um pequeno script do Scilab para que você possa experimentar aplicar o método a diferentes equações.

Métodos Numéricos para Determinar Raízes de Equações

Os métodos numéricos para determinar raízes de equações não lineares se dividem em métodos intervalares e métodos abertos. Os métodos abertos são aplicados a partir de um ponto sem a necessidade de esse ponto pertencer a um intervalo específico. Por seu turno, os métodos intervalares são altamente dependentes de um intervalo, podendo inclusive não convergir para uma raiz se o intervalo for mal definido.

Ambas as categorias apresentam vantagens e dificuldades, sendo a escolha por um ou outro método feita de acordo com as características do problema.

O método da bisseção é um método intervalar. Sua principal vantagem é a garantia de convergência quando há uma raiz no intervalo definido. Por outro lado, sua convergência pode ser mais lenta do que a de outros métodos, a depender de alguns fatores, como o intervalo escolhido.

A implementação do método da bisseção é bastante simples, uma vez que se compreenda seu algoritmo. A ideia por trás do método é também simples, consistindo em dividir um intervalo ao meio, testar o lado que possui a raiz e dividir esse novo intervalo novamente, repetindo o processo até que um critério de parada seja atingido.

Pseudocódigo do Método da Bisseção

O algoritmo requer a definição de um intervalo e da função da qual se deseja calcular as raízes, além do tamanho limite do intervalo como critério de parada. No pseudocódigo abaixo, f(x) representa a função, a e b são os extremos do intervalo, e eps é o tamanho limite do intervalo.

Receba f(x), a, b, eps;

Faça r = (a+b)/2;

Enquanto |a-b| > eps Faça

Se f(a) x f(r) < 0

Então b = r;

Se não a = r;

Fim Se

r = (a+b)/2; 

Fim Enquanto

Mostre r;

Script no Scilab

Vejamos um script do Scilab para determinar uma raiz de um polinômio:

function [y] = f(x)

y =  x^2 - 3*x + 2 = 0;

endfunction

a = 0;

b = 3;

eps = 0.001;

while abs(a - b) > eps

r = (a+b)/2;

if f(a)*f(r) < 0

b = r;

else

a = r;

end

end

disp(r); 

 No script acima, o método devolverá a raiz obtida na última iteração que não atendeu ao critério de parada. No entanto, sabemos que há duas raízes no intervalo passado. Então, responda às questões:

  1. Sabendo que a função f(x) deve ser contínua, o que significa testar o sinal do produto f(a)*f(r)?
  2. Qual raiz foi determinada pelo método nas condições dadas no script?
  3. Por que o método não determinou as duas raízes?
  4. O que poderia ser feito para que o método encontrasse a outra raiz?
Deixe suas respostas nos comentários.

Caso queira aprender também o método usando uma planilha (Excel, Google ou Calc), clique aqui

Siga-me no Instagram e visite o meu canal no YouTube.

Conheça o idealizador do Letionare.

* Publicação 100% humana (pode ter erros de digitação : ),.

Nenhum comentário:

Postar um comentário

A moderação é para garantir sua segurança.
Farei isso o mais breve possível. Muito obrigado por comentar.

Uma Análise Crítica do Conceito de Inteligência em Máquinas

Uma Análise Crítica do Conceito de Inteligência em Máquinas Uma Análise Crítica do Conceito de Intelig...