Projeto: Bissecção
Método da bissecção na presença de erros
Vamos lá?
Tendo visto o método da bissecção, neste projeto vamos explorar um caso de uso onde a função de interesse esteja contaminada por erros, de avaliação ou de medição.
Neste projeto queremos estimar $x^*$ tal que $f(x^*) = 0$, onde $f$ é uma função contínua. Quando a função $f$ puder ser avaliada exatamente, podemos aplicar o método da bissecção, como descrito na aula passada.
Considere a situação em que a função seja avaliada com erro. Isso pode acontecer, por exemplo, quando a avaliação da função é feita experimentalmente, como resultado de um ensaio em laboratório ou da coleta de dados de campo. Imagine a situação em que a função $f$ mede uma quantidade física, como temperatura, pH, velocidade, entre outras. A acurácia dessas medidas depende da perícia do experimentalista e da qualidade e acurácia dos equipamentos de medição. Esses fatores comprometem a acurácia na avaliação da função $f$.
Sabendo que âmago do método da bissecção é identificar intervalos onde há alternância de sinal no valor da função, neste projeto uma implementação do método deve ser feita, tomando o cuidado de identificar com confiabilidade os intervalos de alternância.
Considere, por exemplo, a função $\hat{f}(x) = f(x) + \epsilon(x)$, onde $f(x) = \sin(x)$, $\epsilon(x)$ retorna um valor aleatório limitado, ou seja, $|\epsilon(x)| \lt 0.1$ . Abaixo vemos o gráfico de $\hat{f}$ no intervalo $[0,2\pi]$. Porém, como o $\epsilon(x)$ retorna um valor aletório a cada momento, se tentarmos exibir novamente o gráfico de $\hat{f}$ obteremos outros erros.
Observando as figuras acima, perceba que nem sempre é possível afirmar com segurança qual o sinal da função $f$, conhecendo o sinal de $\hat{f}.$
Para o desenvolvimento deste projeto, siga o roteiro, no menu lateral.
Estamos interessados estimar $x^*$ tal que $f(x^*)=0$, para $f,$ uma função contínua. Suponha que a avaliação de $f$ esteja invariavelmente contaminada com algum erro uniformente distribuído no intervalo $[-\epsilon_f,\epsilon_f].$ Para simular isto numericamente, considere que $$\hat{f}(x) = f(x) + \epsilon(x),$$ com $|\epsilon(x)| \le \epsilon_f,$ para algum valor $\epsilon_f$ fixo e conhecido.
- Teoricamente, seria possível iterar indefinidamente o método da bissecção aplicado à $\hat{f}(x),$ obtendo um intervalo de tamanho arbitrariamente pequeno contendo um zero de $f?$ Justifique sua resposta.
- Sob que condição, os sinais de $\hat{f}(x)$ e $f(x)$ coincidem?
- Seja $\hat{f}$, descrita no Octave como
ef = 1e-1; # Função f: f = @(x) x.^3 - 4*x.^2 + 9*x + 4; # Função f experimental (com erro aleatório): ff = @(x) f(x) + 2 * ef * (rand(size(x))-0.5);
Faça o gráfico de $\hat{f}$ (algumas vezes). Identifique um intervalo, de extremos inteiros, onde seguramente $\hat{f}$ troca de sinal. (Cuidado! Se você redefinir o valor deef
, isso não alterará automaticamente a definição deff
, implementação de $\hat{f}$, que deverá ser reexecutada para tornar-se ciente do novo valor.) - Supondo conhecido $\epsilon_f,$ escreva um algoritmo para o método de bissecção e discuta qual seria um critério de parada adequado para este problema.
- Implemente seu algoritmo como uma função do
Octave. Aplique-o ao problema de determinar o zero de $\hat{f},$
como definida por
ff
em (c). - O que acontece quando valores menores de
ef
são usados? Verifique isto com experimentos. Comente seus resultados. - Suponha que você seja consultado por uma cientista experimental que desejasse determinar o zero de uma função, para a qual ela tem acesso apenas através de medidas de laboratório. Você decide auxiliá-la na resolução do problema. Pense em como você poderia auxiliá-la, o que você deveria perguntar e o que deveria explicar.