Zeros de Funções

Post on 04-Oct-2015

217 views 0 download

description

zeros de função

Transcript of Zeros de Funções

{Mtodo de Localizao de Zeros}{O contedo dentro das chaves so comentrios}

Variveis: gama: real; {varivel gama do tipo real } P[n]: real; {vetor real que armazenar as "n" parties, n o ndice do vetor} i: inteiro; {varivel que servir de ndice para a contagem das iteraes} a: real; {incio do intervalo} b: real; {fim do intervalo} n: inteiro; {nmero de subintervalos dentro do intervalo}Entradas : f(x); a; b; n {a funo a ser trabalhada}Comeo gama=mod(b-a)/n; {gama recebe o mdulo de (b-a) e divide pela quantidade de subintervalos informados}

P[0]=a; {a partio "zero" cujo ndice est entre colchetes, comea com o valor de "a", incio do intervalo}

Para i=1 at i=n faa {repetir o que est entre "comeo" e "fim" abaixo n vezes}Comeo

P[i]=P[i-1]+gama; {a partio "i" receba a anterior + o valor de gama} se f(P[i])*f(P[i-1])delta faa: {enquanto a condio no for atendida ele executar os comandos abaixo dentro do comeo e fim}Comeox=(a+b)/2; {calcula o meio do intervalo}Se f(x)=0 Encerrar o algoritimo; {encerra pois x o zero da funo}Seno {se x no e o zero ele faz o teste abaixo para excluir uma subintervalo a direita ou a esqueda de x}Se f(a)*f(x)0 ento {se passar no teste fazermos o algoritimo da direita para esquerda... graficamente imaginando}comeoc=a;x[0]=b;fimSeno {...seno fazermos da esquerda para direita } comeoc=b;x[0]=a;fimx[1] = x[0] - ( f(x[0])/( f(x[0]) - f(c) ) )* (x[0] - c); {aquela conta normal que se faz no mtodo usando o valor anterior para calcular o valor atual}

n=1; {iniciando o contador dos ndices de x em 1}

Enquanto mod(x[n]-x[n-1])>delta faa; {faz o teste para saber se fatisfaz o delta ( a condio de parada)}Comeon=n+1; {incrementa o n para calcular a prxima aproximao de x. x[n] = x[n-1] - ( f(x[n-1])/( f(x[n-1]) - f(c) ) )* (x[n-1] - c); {calcular os n-simas aproximaes do zerofim

Exibir x[n]; {exibe o ultimo valor do vetor x, com a aproximao que atende o delta}

fim

{Mtodo de Newton}{O contedo dentro das chaves so comentrios}

Variveis: delta: real; {varivel delta do tipo real} a: real; {incio do intervalo} b: real; {fim do intervalo} g: real; {auxiliar que recebe o valor da 2 derivada de f} h: real; {auxiliar que recebe o valor da 1 derivada de f} x[n]: real; {vetor real que armazenar os "n" aproximaes do zero da funo. n o ndice do vetor} Entradas : f(x); a; b; delta; {a funo a ser trabalhada}Comeo

g(x)=f(x); {g receba a 2 derivada de f para fazer o teste abaixo }

Se f(a)*g(a)>0 ento {se passar no teste fazermos o algoritimo da direita para esquerda... graficamente imaginando}comeox[0]=a;fimSeno {...seno fazermos da esquerda para direita } comeox[0]=b;fimx[1] = x[0] - f(x[0])/( h(x[0]); {aquela conta normal que se faz no mtodo usando o valor anterior para calcular o valor atual}

n=1; {iniciando o contador dos ndices de x em 1}

Enquanto mod(x[n]-x[n-1])>delta faa; {faz o teste para saber se fatisfaz o delta ( a condio de parada)}Comeon=n+1; {incrementa o n para calcular a prxima aproximao de x. x[n] = x[n-1] - f(x[n-1])/( h(x[n-1]); {calcular os n-simas aproximaes do zerofim

Exibir x[n]; {exibe o ultimo valor do vetor x, com a aproximao que atende o delta}

fim