Baixe o app para aproveitar ainda mais
Prévia do material em texto
Métodos Não-Lineares Zeros ou Raizes de funções: Dada uma função f(x), dizemos que α é raiz, ou zero de f se e somente f(α)=0. As raízes de uma função podem ser encontradas analiticamente, ou seja, revolvendo a equação f(x)=0 de maneira exata. Contudo, em alguns casos, preicisa-se de um método numérico para encontra uma estimativa para a raiz da função estudada, ou seja, um valor tão aproximado quanto se deseje. Tais métodos devem envolver as seguintes etapas: Determinação de um intervalo em x que contenha pelo menos uma raiz da função f(x), ou seja, isolamento das raízes. Calculo da raiz aproximada através de um processo iterativo até a precisão desejada. Processos Iterativos: Processo que se caracteriza pela repetição de uma determinada ação. Estimativa inical Convergência Criterio de parada Isolamento de raízes: Para determinarmos o numero e a localização aproximada de raízes de uma f, a fim de obtermos uma estimativa inicial a ser usada nos processos iterativos. Teorema de Bolzano: Seja uma função f(x) continua em um intervalo [a,b], tal que f(a).f(b)<0. Então a f(x) possui pelo menos uma raiz no intervalo [a,b]. Método da bisseção É a forma mais intuitiva de se obter a raiz de uma função. Inicialmente, subdivide-se o intervalo dado em suas duas metades. Verifica-se se a raiz esta contida na primeira ou na segunda metade do intervalo inicial usando o teo de Bolzano. Algortimo: Dado um intervalo ]a,b[ com f(a) × f(b) < 0 (Bolzano) Escolha c = (a+b)/2 Se f(c) > tolerancia ! FIM Se f(c) × f(a) < 0 Existe uma raiz no intervalo ]a,c[ Se f(c) × f(b) < 0 Existe uma raiz no intervalo ]c,b[ Podemos recomeçar com o novo intervalo e melhorar a aproximação da raiz! //exercicio: f(x)= para I=[0,1] e &=10^-3 //se (b-a)<&, entao escolha para x/(a+b)/2 //criar a função clear clc function [fun]=f(x) fun=x.^4-9*x.^3+21*x.^2-30; endfunction printf("\n\nFunçaõ x^4-9*x^3+21*x^2-30 no intervalo [a,b], onde \n") //intervalo a=input("Inicio do intervalo: ") b=input("Final do intervalo: ") pt=0.001; x= a:0.0001:b; plot2d(x,f(x)); while (b-a)>=pt then xzero=(a+b)/2; if f(a)*f(xzero)>0 then a=xzero; else b=xzero; end printf("Valor do X: %g\n",xzero); printf("Valores do intervalo a: %g e b: %g\n",a,b); end x0=(a+b)/2; printf("\nUma das raizes existentes dessa função é: %g",x0)
Compartilhar