PARA ELIANE - uesb.br · faz o diferencial deste livro. Fornecendo um potente teorema que limita os...

162
i=1 n 0 10 20 30 40 50 0 10 20 30 40 50 -8 -7 -6 -5 -4 -3 -2 -1 0 ll i

Transcript of PARA ELIANE - uesb.br · faz o diferencial deste livro. Fornecendo um potente teorema que limita os...

i=1

n

0

10

20

30

40

50

0

10

20

30

40

50

−8

−7

−6

−5

−4

−3

−2

−1

0

���������������� ���������

���

��� ���ll���! #" ���$ % ��&'� �)(�* i

PARA ELIANE...

Sumario

1 Sistemas Lineares 11.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 Solucao de um sistema n× n . . . . . . . . . . 31.2 Metodos Diretos . . . . . . . . . . . . . . . . . . . . . 4

1.2.1 Metodo de Gauss . . . . . . . . . . . . . . . . . 41.2.2 Decomposicao LU . . . . . . . . . . . . . . . . 8

1.3 Metodos Iterativos . . . . . . . . . . . . . . . . . . . . 111.3.1 Metodo Iterativo de Jacobi . . . . . . . . . . . 111.3.2 Criterio de Parada . . . . . . . . . . . . . . . . 141.3.3 Metodo Iterativo de Gauss-Seidel . . . . . . . . 151.3.4 Metodo do Refinamento Iterativo . . . . . . . . 171.3.5 Numero Condicional . . . . . . . . . . . . . . . 171.3.6 Convergencia do M. Iterativo de Jacobi e Gauss-

Seidel . . . . . . . . . . . . . . . . . . . . . . . 191.4 Sistemas Lineares Complexos . . . . . . . . . . . . . . 201.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 Zeros de funcao 252.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 252.2 Metodo de Localizacao de Zeros . . . . . . . . . . . . . 272.3 Metodo do Meio Intervalo - MMI . . . . . . . . . . . . 292.4 Metodo da Secante . . . . . . . . . . . . . . . . . . . . 31

2.4.1 Convergencia no Metodo da Secante . . . . . . 332.5 Metodo de Newton . . . . . . . . . . . . . . . . . . . . 33

2.5.1 Convergencia no Metodo de Newton . . . . . . 352.6 Metodo da Iteracao Linear . . . . . . . . . . . . . . . . 36

I

2.6.1 A Funcao de Iteracao . . . . . . . . . . . . . . 392.7 Comentarios Finais Sobre os Metodos . . . . . . . . . 41

2.7.1 Localizacao de Zeros . . . . . . . . . . . . . . . 412.7.2 Metodo do Meio Intervalo - MMI . . . . . . . . 412.7.3 Metodo da Secante . . . . . . . . . . . . . . . . 412.7.4 Metodo de Newton . . . . . . . . . . . . . . . . 412.7.5 Metodo da Iteracao Linear . . . . . . . . . . . 42

2.8 Zeros de um Polinomio . . . . . . . . . . . . . . . . . . 432.8.1 Multiplicidade de um zero . . . . . . . . . . . . 50

2.9 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 51

3 Interpolacao 533.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 533.2 Interpolacao de Lagrange . . . . . . . . . . . . . . . . 543.3 Interpolacao com Diferencas Divididas Finitas - DDF . 57

3.3.1 Propriedades de uma DDF . . . . . . . . . . . 573.3.2 Obtencao da Formula . . . . . . . . . . . . . . 58

3.4 Erro de Truncamento . . . . . . . . . . . . . . . . . . . 593.5 Metodo de Briot-Ruffini . . . . . . . . . . . . . . . . . 623.6 Consideracoes Finais . . . . . . . . . . . . . . . . . . . 643.7 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 65

4 Integracao Numerica 694.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 694.2 Regra dos Trapezios . . . . . . . . . . . . . . . . . . . 70

4.2.1 Erro de Truncamento . . . . . . . . . . . . . . 714.3 1a Regra de Simpson . . . . . . . . . . . . . . . . . . . 734.4 Quadratura Gaussiana . . . . . . . . . . . . . . . . . . 764.5 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 80

5 Mınimos e Maximos 835.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 835.2 Metodo da Secao Aurea . . . . . . . . . . . . . . . . . 86

5.2.1 Convergencia no Metodo da Secao Aurea . . . 875.3 Superfıcies em R3 . . . . . . . . . . . . . . . . . . . . . 885.4 Metodo do Gradiente . . . . . . . . . . . . . . . . . . . 895.5 Bacias de atracao . . . . . . . . . . . . . . . . . . . . . 905.6 Metodo de direcoes aleatorias . . . . . . . . . . . . . . 92

5.7 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 93

6 Introducao ao Matlab 956.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . 956.2 Comandos . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.2.1 Comando de leitura . . . . . . . . . . . . . . . 976.2.2 Comando de impressao . . . . . . . . . . . . . 976.2.3 Comando de atribuicao . . . . . . . . . . . . . 986.2.4 Estrutura de decisao . . . . . . . . . . . . . . . 996.2.5 Estruturas de repeticao . . . . . . . . . . . . . 100

6.3 Itens Basicos do Matlab . . . . . . . . . . . . . . . . . 1036.3.1 Operadores relacionais . . . . . . . . . . . . . . 1036.3.2 Conectivos logicos . . . . . . . . . . . . . . . . 1046.3.3 Funcoes Pre-definidas . . . . . . . . . . . . . . 1046.3.4 Script . . . . . . . . . . . . . . . . . . . . . . . 105

6.4 Vetores e Matrizes . . . . . . . . . . . . . . . . . . . . 1086.5 Funcoes em Matlab . . . . . . . . . . . . . . . . . . . . 1116.6 Graficos Bidimensionais . . . . . . . . . . . . . . . . . 1136.7 Graficos Tridimensionais . . . . . . . . . . . . . . . . . 1156.8 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 116

7 Implementacao dos Metodos 1197.1 Sistemas Lineares . . . . . . . . . . . . . . . . . . . . . 1197.2 Zeros de Funcao . . . . . . . . . . . . . . . . . . . . . 1307.3 Interpolacao . . . . . . . . . . . . . . . . . . . . . . . . 1367.4 Integracao . . . . . . . . . . . . . . . . . . . . . . . . . 1387.5 Otimizacao . . . . . . . . . . . . . . . . . . . . . . . . 1397.6 Exercıcios . . . . . . . . . . . . . . . . . . . . . . . . . 145

Bibliografia 149

Lista de Figuras

1.1 Solucao geometrica de um sistema 2× 2 . . . . . . . . 31.2 O sistema nao possui solucao . . . . . . . . . . . . . . 41.3 Sequencia Xn . . . . . . . . . . . . . . . . . . . . . . . 14

2.1 Zeros de uma funcao . . . . . . . . . . . . . . . . . . . 262.2 f ′(x) > 0 e f ′(x) < 0 . . . . . . . . . . . . . . . . . . . 262.3 Zeros de f(x) . . . . . . . . . . . . . . . . . . . . . . . 272.4 Zeros de f(x) . . . . . . . . . . . . . . . . . . . . . . . 282.5 Criando uma particao P . . . . . . . . . . . . . . . . . 292.6 (xn) convergindo para o zero ε . . . . . . . . . . . . . 302.7 Sequencia (xn) no metodo da secante . . . . . . . . . . 322.8 Sequencia (xn) no metodo de Newton . . . . . . . . . 342.9 Sequencia (xn) no metodo da Iteracao Linear . . . . . 372.10 Sequencia (xn) no Metodo da Iteracao Linear . . . . . 372.11 Metodo grafico . . . . . . . . . . . . . . . . . . . . . . 432.12 Limite dos zeros . . . . . . . . . . . . . . . . . . . . . 462.13 Isolando zeros . . . . . . . . . . . . . . . . . . . . . . . 472.14 Limite de zeros complexos . . . . . . . . . . . . . . . . 49

3.1 Erro de truncamento . . . . . . . . . . . . . . . . . . . 63

4.1 Area do trapezio . . . . . . . . . . . . . . . . . . . . . 714.2 Calculo da area por trapezios . . . . . . . . . . . . . . 724.3 Calculo da area pela 1a regra de Simpson . . . . . . . 744.4 Calculo da area por trapezios . . . . . . . . . . . . . . 75

5.1 Mınimos local e global . . . . . . . . . . . . . . . . . . 845.2 Paraboloide . . . . . . . . . . . . . . . . . . . . . . . . 88

V

5.3 Sequencia (pn) se aproximando do mınimo de f(x) . . 905.4 Bacias de atracao . . . . . . . . . . . . . . . . . . . . . 91

6.1 Grafico de f(x) = x2 . . . . . . . . . . . . . . . . . . . 1146.2 Grafico de f(x, y) = x2 + y2 . . . . . . . . . . . . . . . 1156.3 Grafico+(curva de nıvel) de f(x, y) = x2 + y2 . . . . . 115

Prefacio

Este livro de calculo numerico foi escrito com base nas notasde aula, ministradas na Universidade Federal do Espırito Santo ena Universidade Estadual do Sudoeste da Bahia. A importancia docalculo numerico para os estudantes de engenharia, fısica e matematicase faz na conexao dos metodos numericos matematicos com a com-putacao, cada vez mais presente no dia-dia academico. Os metodosnumericos sao velhos conhecidos dos matematicos. Mesmo antes deCristo ja se conhecia alguns metodos numericos. Com o advento docomputador esses metodos puderam ser implementados e assim umaquantidade de problemas puderam ser resolvidos. O que antes seconhecia apenas como existencia e unicidade, agora pode ser deter-minado por aproximacoes tao precisas quanto se queira.

Tentei escrever um livro para ser usado em um semestre letivonos cursos de graduacao, por isso, no que tange o conteudo decada capıtulo, ha uma preocupacao em expor os principais metodosnumericos, claro que alguns ficaram de fora. O leitor interessadopode procurar na bibliografia para aprofundar mais. Temos como ob-jetivo que o estudante tenha uma visao profunda em alguns temas eoutros uma visao geral, montando assim seu conhecimento e metodolo-gia de estudo em relacao aos metodos numericos.

Em cada capıtulo, existe uma preocupacao em expor assuntos at-uais e de importancia pratica. Muitas demonstracoes nao sao feitasdevido a complexidade e o fato de fugirem do tema principal, maspodem ser obtidas nas referencias. Dedicamos um capıtulo, a in-troducao do software Matlab, que sera suficiente para implementaros metodos apresentados aqui. Claro que os metodos tambem po-dem ser implementados em uma outra linguagem. Um comentarioimportante: grande parte dos metodos numericos apresentados aquija estao implementados no Matlab em forma de funcoes pre-definidas.Mesmo assim, e de suma importancia o estudo desses metodos, umavez que os problemas praticos exigem certas mudancas.

Dei especial atencao ao capıtulo de zeros de funcoes, apresen-tando metodos numericos e analıticos para encontrar zeros de umafuncao. Uma secao dedicada exclusivamente aos zeros de um polinomio,

faz o diferencial deste livro. Fornecendo um potente teorema quelimita os zeros de um polinomio.

Em geral nao e comum o tema Mınimos e Maximos em textosde calculo numerico. Por isso, o professor desejoso, pode omitir essecapıtulo. Esse tema foi colocado neste texto devido a importanciapratica cada vez maior, e o fato de ser uma otima aplicacao dosmetodos numericos.

Como pre-requisito, o leitor deve ter em mente o curso de CalculoI e II, e algebra linear. No capıtulo 6 fizemos uma introducao aos al-goritmos em Matlab, o que elimina um curso basico de programacaocomo pre-requisito. Gostaria de agradecer aos alunos da UESB pelascorrecoes e sugestoes efetuadas no decorrer do trabalho. Agradecoaos professores Ivanor e Maria Aparecida pelos incentivos para apublicacao deste texto.

Vitoria da Conquista, 10 de Junho de 2005.Flaulles Boone Bergamaschi

Capıtulo 1

Sistemas Lineares

1.1 Introducao

Neste capıtulo vamos desenvolver tecnicas e metodos numericos pararesolver sistemas lineares n×n. Esses sistemas aparecem com frequenciaem problemas da engenharia, fısica, quımica, etc... Com o adventodo computador tais metodos ganharam mais atencao, ficando assimevidente a importancia de um estudo mais aprofundado. Lembramoso leitor que alguns topicos basicos de algebra linear sao necessarios.Por isso, aconselhamos o uso de algum livro sobre o assunto paraacompanhamento.

Um sistema de equacoes lineares com m equacoes e n incognitase dado na forma:

(∗)

a11x1 + a12x2 + · · ·+ a1nxn = b1

a21x1 + a22x2 + · · ·+ a2nxn = b2...

......

...am1x1 + am2x2 + · · ·+ amnxn = bm

Com aij (i = 1, . . .m, j = 1 . . . n) numeros reais ou complexos.A solucao do sistema (∗) e um conjunto (x1, x2, . . . , xn) que sat-

isfaca todas as m equacoes.O sistema (∗) tambem pode ser escrito na forma matricial:

1

2 CAPITULO 1. SISTEMAS LINEARES

a11 a12 · · · a1n

a21 a22 · · · a2n...

.... . .

...am1 am2 · · · amn

.

x1

x2...

xn

=

b1

b2...

bm

,

ou seja, AX = B com A sendo a matriz dos coeficientes, X o vetorde incognitas e B o vetor de termos independentes.

Chamamos de matriz ampliada do sistema (∗) a matriz formadapela juncao do vetor de termos independentes e a matriz dos coefi-cientes.

a11 a12 · · · a1n b1

a21 a22 · · · a2n b2...

.... . .

......

am1 am2 · · · amn bm

E importante notar que a matriz ampliada do sistema e o pontode partida para encontrar-mos a solucao do sistema via metodosnumericos, o que desenvolveremos mais adiante.

Exemplo 1.1.1. Consideremos o seguinte sistema 2× 2{2x1 + x2 = 3x1 + 4x2 = 5

A =[

2 11 4

], B =

[35

], X =

[x1

x2

]

Matriz ampliada do sistema:[

2 1 31 4 5

]

Por motivos tecnicos e computacionais trataremos apenas o casode sistemas onde o numero de equacoes e incognitas sao iguais, ouseja, m = n. Matricialmente isso quer dizer que, a matriz dos co-eficientes e uma matriz quadrada. Tambem vamos assumir que amatriz dos coeficientes e uma matriz real.

Geometricamente a solucao de uma sistema linear (n × m) e aintersecao de n hiperplanos em Rn. Veja no exemplo:

1.1. INTRODUCAO 3

Exemplo 1.1.2. Considere o sistema do exemplo anterior onde asolucao e dada por P = (1, 1), que e exatamente a intersecao dasretas 2x1 + x2 = 3 e x1 + 4x2 = 5 conforme Figura 1.1

x

y

-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

-4

-3

-2

-1

0

1

2

3

4

Figura 1.1: Solucao geometrica de um sistema 2× 2

1.1.1 Solucao de um sistema n× n

Vamos relembrar alguns resultados da algebra linear:

i. Um sistema linear (n× n) possui solucao unica se o determi-nante da matriz dos coeficientes e diferente de zero.

ii. Caso o determinante seja zero, o sistema nao possui solucaoou possui infinitas solucoes.

A demonstracao dos itens acima pode ser encontrada em [2]

Exemplo 1.1.3. Consideremos os sistema{2x1 + x2 = 34x1 + 2x2 = −6

, veja que det

[2 14 2

]= 0

Neste caso as retas 2x1 + x2 = 3 e 4x1 + 2x2 = −6(veja Figura1.2) sao paralelas.

4 CAPITULO 1. SISTEMAS LINEARES

x

y

-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

-4

-3

-2

-1

0

1

2

3

4

Figura 1.2: O sistema nao possui solucao

Em problemas praticos e comum encontrar sistemas lineares degrande porte, por exemplo n > 1000. Por isso e necessario desen-volvermos metodos numericos para encontrar a solucao de tais sis-temas de tal forma que, seja sempre possıvel implementar algoritmoscomputacionais.

Comecamos com os metodos numericos diretos que fornecem asolucao exata 1 atraves de um numero finito de passos.

1.2 Metodos Diretos

1.2.1 Metodo de Gauss

Este metodo trabalha com a equivalencia de sistemas atraves deoperacoeselementares na matriz ampliada. Para comecar vamos definir asoperacoes elementares sobre as linhas de uma matriz.

Operacoes elementares

i. trocar linhas, Li ←→ Lj .ii. Multiplicar uma linha por um escalar k 6= 0, Li −→ kLi.

1Quando nao existem erros de truncamento e arredondamento

1.2. METODOS DIRETOS 5

iii. Substituir uma linha por sua soma com um multiplo escalar deoutra linha. k 6= 0, Li −→ Li + kLj .

Definicao 1.1. Dizemos que as matrizes Am×n e Bm×n sao linhaequivalentes, se Bm×n pode ser obtida atraves de operacoes elementaresem Am×n.

Na definicao acima podemos usar a notacao A ∼ B.

Exemplo 1.2.1. A matriz A =[

0 2 21 2 3

]e linha equivalente a B =

[1 1 20 1 1

].

Aplicando operacoes elementares em A temos:[

0 2 21 2 3

]

︸ ︷︷ ︸A

L1↔L2−→[

1 2 30 2 2

]L2→ 1

2L2−→

[1 2 30 1 1

]L1→L1+(−1)L2−→

[1 1 20 1 1

]

︸ ︷︷ ︸B

Teorema 1.1. Dois sistemas que possuem matrizes ampliadas equiv-alentes sao equivalentes, ou seja, tem mesma solucao.

A demonstracao desse teorema pode ser encontrada em [2].

Exemplo 1.2.2. O sistema{

2x1 + x2 = 3x1 + x2 = 2

e{

4x1 + 2x2 = 612x1 + 1

2x2 = 1sao equivalentes.

Basta observar que:[

2 1 31 1 2

]L1→2L1−→

[4 2 61 1 2

]L2→ 1

2L2−→

[4 2 612

12 1

]

Com o Teorema 1.1 estamos prontos para iniciar o metodo deGauss, que consiste em transformar a matriz ampliada de um sistemaatraves de operacoes elementares em uma matriz da forma:

6 CAPITULO 1. SISTEMAS LINEARES

a11 a12 a13 · · · a1n b1

0 a22 a23 · · · a2n b2

0 0 a33 · · · a3n b3...

......

. . ....

...0 0 0 · · · amn bm

, (1.1)

ou seja, a matriz dos coeficientes e uma matriz triangular superior.

Exemplo 1.2.3. Considere o sistema{

x1 + x2 = 22x1 + x2 = 3

. Efet-

uando operacoes elementares na matriz ampliada termos:

[1 1 22 1 3

]L2→L2+(−2)L1−→

[1 1 20 −1 −1

]

Portanto este sistema e equivalente a{

x1 + x2 = 2−x2 = −1

, que

e facilmente resolvido por substituicao retroativa, ou seja, encon-tramos x2 na segunda equacao e substituımos na primeira equacao,encontrando x1.

Daremos agora os passos para obter a matriz equivalente no casode um sistema 3× 3.

Considere entao o sistema

a11x1 + a12x2 + a13x3 = b1

a21x1 + a22x2 + a23x3 = b2

a31x1 + a32x2 + a33x3 = b3

e

sua matriz ampliada:

A =

a11 a12 a13 b1

a21 a22 a23 b2

a31 a32 a33 b3

Com os passos abaixo e possıvel transformar a matriz A em umamatriz na forma dada em (1.1), atraves de operacoes elementares.

1o passoDefinimos o elemento chamado de pivo como a11 e calculamos:

1.2. METODOS DIRETOS 7

m21 = − a21

pivoe m31 = − a31

pivo

2o passoOperamos na matriz ampliada A:L2 −→ L2 + m21L1

L3 −→ L3 + m31L1

3o passoO elemento pivo passe a ser a22 e calculamos:

m32 = − a32

pivo

4o passoL3 −→ L3 + m32L2

Veja que o elemento pivo toma sempre os elementos na diagonalda matriz dos coeficientes.

O caso n × n e analogo ao dado acima. Observamos que nessealgoritmo matematico, o elemento pivo deve ser diferente de zero,em outras palavras, todos os elementos na diagonal da matriz doscoeficientes deve ser diferente de zero. Mas nem tudo esta perdido!Caso algum elemento akk seja igual a zero, deve-se usar a operacaoelementar de troca de linha, ou seja, troca-se a linha k por uma linhar tal que k < r.

Um outro problema pode ocorrer quando o elemento pivo estaproximo de zero, veja o

Exemplo 1.2.4. Considere o sistema{

0.0001x1 + x2 = 1x1 + x2 = 2

A solucao exata e x1 = 1.0001 e x2 = 0.9999. Resolvendo estesistema pelo metodo de Gauss obtemos, x1 = 1 e x2 = 0 que naoe a solucao do sistema, nem tao pouco um aproximacao. Mas se aprimeira linha e trocada com a segunda, entao o metodo de Gaussgera uma solucao x1 = 1 e x2 = 1 que e uma boa aproximacao.

Uma outra forma de resolver o problema quando o pivo e zeroou esta proximo de zero e conhecido como o metodo de Pivotacao

8 CAPITULO 1. SISTEMAS LINEARES

Parcial, onde o elemento pivo e escolhido da seguinte forma: Toma-seo pivo como o elemento de maior modulo na matriz dos coeficientes,e efetua-se as operacoes elementares na matriz ampliada. O proximopivo e escolhido da mesma forma na matriz ampliada sem a linha dopivo anterior.

1.2.2 Decomposicao LU

Seja AX = B um sistema n × n e det(A) 6= 0. Suponha que Apossa se decompor no produto de uma matriz triangular inferior L,e uma matriz triangular superior U , tal que A = LU , assim AX = Bequivale a (LU)X = B. Dessa forma podemos obter dois sistemas,LY = B e UX = Y . Como L e U sao triangulares, o sistemaLY = B e rapidamente resolvido por substituicao retroativa, e logoapos UX = Y .

Assim o problema agora e decompor a matriz A no produto deL e U . Recorremos entao a algebra linear onde esse problema econhecido como decomposicao LU . Comecamos com o

Teorema 1.2. Seja An×n uma matriz qualquer e Akk uma submatrizde An×n formada pela intersecao das primeiras k linhas e k colunas.Se det(Akk) 6= 0 para k = 1, . . . , n− 1 entao existem e sao unicas asmatrizes L e U tal que A = LU .

A demonstracao pode ser encontrada em [8]

Para obter L e U o processo vem da eliminacao Gaussiana, aquelafeita na secao anterior, onde L e uma matriz triangular inferior comdiagonal igual a 1 e multiplicadores −mij , e U uma matriz triangularsuperior formada pelos elementos da forma final de A. Veja no caso3× 3,

a11 a12 a13

a21 a22 a23

a31 a32 a33

=

1 0 0−m21 1 0−m31 −m32 1

.

u11 u12 u13

0 u22 u23

0 0 u33

1.2. METODOS DIRETOS 9

Exemplo 1.2.5. Considere o sistema

2x1 + 3x2 − x3 = 54x1 + 4x2 − 3x3 = 32x1 − 3x2 + x3 = −1

,

onde a matriz dos coeficientes e dada por A =

2 3 −14 4 −32 −3 1

.

Tomando pivo = a11, calculando m21 = − a21pivo = −2, m31 =

− a31pivo = −1 e fazendo L2 −→ L2 + m21L1 e L3 −→ L3 + m31L1

obtemos a matriz:

2 3 −10 −2 −10 −6 2

Tomando agora pivo = a22 e calculando m32 = − a32pivo = −3 e

fazendo L3 −→ L3 + m32L2 obtemos a matriz:

2 3 −10 −2 −10 0 5

Dessa forma obtemos a decomposicao de A em:

L =

1 0 02 1 01 3 1

e U =

2 3 −10 −2 −10 0 5

Assim o sistema LY = B equivale a:

1 0 02 1 01 3 1

y1

y2

y3

=

53

−1

=⇒

y1 = 52y1 + y2 = 3

y1 + 3y2 + y3 = −1

Resolvendo por substituicao retroativa temos a solucao y1 = 5, y2 =−7 e y3 = 15, onde podemos agora montar o sistema UX = Y :

10 CAPITULO 1. SISTEMAS LINEARES

2 3 −10 −2 −10 0 5

x1

x2

x3

=

5−715

=⇒

2x1 + 3x2 − x3 = 5−2x2 − x3 = −7

5x3 = 15

Novamente por substituicao retroativa obtemos x1 = 1, x2 = 2 ex3 = 3.

O leitor ja deve ter observado que usamos o metodo de eliminacaode Gauss para fazer a decomposicao LU . Isso nos leva a pensar queo metodo de Gauss da secao anterior e equivalente a decomposicaoLU . Veremos essa diferenca no exemplo abaixo.

Exemplo 1.2.6. Inversao de Matrizes.Dada uma matriz An×n tal que det(A) 6= 0. Entao A possui

inversa A−1. Para encontrar A−1 devemos resolver n sistemas lin-eares, veja:

Fazendo A−1 = X temos AX = I, ou seja,

a11 a12 · · · a1n

a21 a22 · · · a2n...

.... . .

...an1 an2 · · · ann

.

x11 x12 · · · x1n

x21 x22 · · · x2n...

.... . .

...xn1 xn2 · · · xnn

︸ ︷︷ ︸A−1

=

1 0 · · · 00 1 · · · 0...

.... . .

...0 0 · · · 1

onde os sistemas sao:

a11 a12 · · · a1n

a21 a22 · · · a2n...

.... . .

...an1 an2 · · · ann

.

x11

x21...

xn1

=

10...0

(sistema 1)

a11 a12 · · · a1n

a21 a22 · · · a2n...

.... . .

...an1 an2 · · · ann

.

x12

x22...

xn2

=

01...0

(sistema 2)

1.3. METODOS ITERATIVOS 11

...

a11 a12 · · · a1n

a21 a22 · · · a2n...

.... . .

...an1 an2 · · · ann

.

x1n

x2n...

xnn

=

00...1

(sistema n)

Veja que os n sistemas lineares tem a mesma matriz de coefi-cientes A. Para usar o metodo de Gauss deverıamos aplica-lo nvezes. Por outro lado, uma vez aplicado o metodo de Gauss emA obtemos a decomposicao LU . Agora resolvemos os sistemas porsubstituicao retroativa. Isso reduz consideravelmente o numero deoperacoes.

Existem outros metodos para se obter as matrizes L e U , o leitorinteressado pode consultar o metodo de Doolittle e Crout em [11].

1.3 Metodos Iterativos

Os metodos iterativos sao caracterizados por uma funcao chamadade funcao de iteracao. Essa funcao deve ser obtida de tal formaque possamos garantir que a sequencia produzida por ela convirjapara solucao do sistema, em outras palavras, dado o sistema AX =B, com An×n, devemos obter φ(x) tal que, dado x0 construımosa sequencia x1 = φ(x0), x2 = φ(x1), . . . , xn = φ(xn−1), . . . , elim

n→∞xn = x, onde x e a solucao exata do sistema AX = B.

1.3.1 Metodo Iterativo de Jacobi

Considere um sistema 3× 3:

(1)(2)(3)

a11x1 + a12x2 + a13x3 = b1

a21x1 + a22x2 + a23x3 = b2

a31x1 + a32x2 + a33x3 = b3

12 CAPITULO 1. SISTEMAS LINEARES

De (1) temos que x1 =b1

a11− a12

a11x2− a13

a11x3

(1.2)

De (2) temos que x2 =b2

a22− a21

a22x1− a23

a22x3

(1.3)

De (3) temos que x3 =b3

a33− a31

a33x1− a32

a33x2

(1.4)

ou

x1

x2

x3

=

b1a11

b2a22

b3a33

︸ ︷︷ ︸d

+

0 −a12a11

a13a11

−a21a22

0 −a23a22

−a31a33

−a32a33

0

︸ ︷︷ ︸F

.

x1

x2

x3

Agora podemos montar a funcao de iteracao de Jacobi:

φ(x) = d + Fx

O caso geral e analogo, ou seja, a matriz F e dada por

0 −a12a11

−a13a11

· · · −a1na11

−a21a22

0 −a23a22

· · · −a2na22

−a31a33

−a32a33

0 · · · −a3na33

......

.... . .

...

− an1ann

− an2ann

− an3ann

· · · 0

1.3. METODOS ITERATIVOS 13

e d e dado por

b1a11

b2a22

b3a33...

bnann

Exemplo 1.3.1. Vamos resolver pelo metodo de Jacobi o sistema{2x1 − x2 = 1x1 + 2x2 = 3

F =

0 12

−12 0

e d =

12

32

Comecamos com a solucao inicial x0 = (0, 0) e iteramos:

x1 = φ(x0) = d + Fx0 =

12

32

x2 = φ(x1) = d + Fx1 =

54

54

x3 = φ(x2) = d + Fx2 =

98

78

x4 = φ(x3) = d + Fx3 =

1516

1516

14 CAPITULO 1. SISTEMAS LINEARES

Continuando teremos x9 ∼=[

0.9981.002

]que e uma boa aproximacao

da solucao exata x = (1, 1). Poderıamos continuar a sequencia comx10, x11, . . ., onde surge a pergunta: Quando parar? Isso sera re-spondido na proxima secao.

Podemos tambem observar a aproximacao da sequencia xn paraa solucao exata x por um grafico. Veja figura 1.3.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

x0

x1

x3

x2

x5

x4

x7

x6

Figura 1.3: Sequencia Xn

1.3.2 Criterio de Parada

Devemos parar o metodo iterativo de Jacobi quando, para um dado δtemos que ‖xn− xn−1‖∞ < δ, onde ‖xn‖∞ = Max{|xi|; 1 ≤ i ≤ n}.

Podemos utilizar outras normas para o criterio de parada, porexemplo:

1.3. METODOS ITERATIVOS 15

‖xn‖p = p

√√√√n∑

i=1

‖xi‖p, p ∈ N

Voce pode utilizar essa norma, mas por convencao neste texto va-mostrabalhar sempre com a norma ‖ ‖∞.

Um outro criterio de parada e o numero de iteracoes, ou seja,fixado um k produzimos a sequencia xn ate o termo xk. Isso nemsempre resulta em uma boa aproximacao. Por exemplo, quando k emuito pequeno.

Exemplo 1.3.2. Considere o Exemplo 1.3.1. Suponha que seja dadocomo criterio de parada δ = 0.6 assim devemos fazer:

‖x1 − x0‖ = ‖x1‖ = 32 > δ

‖x2 − x1‖ =

∥∥∥∥∥∥

54

54

12

32

∥∥∥∥∥∥=

∥∥∥∥∥∥

34

−14

∥∥∥∥∥∥= 3

4 > δ

‖x3 − x2‖ = 12 < δ parar o metodo.

Observe que se definimos δ menor, entao devemos produzir maistermos da sequencia xn para atingir a precisao desejada.

1.3.3 Metodo Iterativo de Gauss-Seidel

Este metodo e muito parecido com o metodo de Jacobi, na verdadee uma pequena alteracao no metodo de Jacobi que produz o metodode Gauss-Seidel.

Relembramos que uma solucao aproximada xk para um sisteman×n e dada pelo vetor xk = (xk

1, xk2, . . . , x

kn)T . Recorde das equacoes

(1.2),(1.3),(1.4) no metodo de Jacobi e definimos agora a equacaogeral para uma solucaoxk = (xk

1, xk2, . . . , x

kn)T e xk−1 = (xk−1

1 , xk−12 , . . . , xk−1

n )T :

xki =

bi

aii− 1

aii

n∑

j=1,j 6=i

aijxj

16 CAPITULO 1. SISTEMAS LINEARES

Cada elemento da solucao xk depende exclusivamente dos ele-mentos da solucao anterior. No metodo de Gauss-Seidel isso mudaum pouco veja:

xk1 =

1a11

(b1 − a12xk−12 − a13x

k−13 − · · · − a1nxk−1

n )

xk2 =

1a22

(b2 − a21xk1 − a23x

k−13 − · · · − a2nxk−1

n )

...

xkn =

1ann

(bn − an1xk1 − an2x

k2 − · · · − ann−1x

kn−1)

ou

xk+1i =

1aii

bi −

i−1∑

j=1

aijxk+1j −

n∑

j=i+1

aijxkj

ou

xki = di +

i−1∑

j=1

fijxkj +

n∑

j=i+1

fijxk−1j

, com i = 1, 2, . . . , n, fij e

di entradas da matriz F e d dadas no metodo de Jabobi.

Nao abordaremos aqui, mas e possıvel criar uma funcao de it-eracao φ(x) como a que foi feita no metodo de Jacobi. Para isso,veja [10].

Exemplo 1.3.3. Resolva pelo metodo de Gauss-Seidel o sistema{2x1 − x2 = 1x1 + 2x2 = 3

.

Comecando com x0 = (0, 0) temos:

Equacoes iterativas de Gauss-Seidel

xk+11 = 1

2(1 + xk2)

xk+12 = 1

2(3− xk+11 )

fazendo k = 0 temos:

1.3. METODOS ITERATIVOS 17

x11 = 1

2(1 + x02) = 1

2(1 + 0) = 0.5

x12 = 1

2(3− x11) = 1

2(3− 0.5) = 1.25

fazendo k = 1 temos:

x21 = 1

2(1 + x12) = 1

2(1 + 1.25) = 1.125

x22 = 1

2(3− x21) = 1

2(3− 1.125) = 0.9375

Continuando podemos observar que o metodo de Gauss-Seidelconverge mais rapido que o metodo de Jacobi.

1.3.4 Metodo do Refinamento Iterativo

Considere um sistema n×n, AX = B com solucao exata x e x0 umasolucao aproximada. Assim x = e0 + x0, onde e0 e o erro cometido.Como Ax = b entao:

A(e0+x0) = B =⇒ Ae0+Ax0 = B =⇒ Ae0 = B −Ax0︸ ︷︷ ︸

r0

=⇒ Ae0 = r0

Resolvendo o sistema Ae0 = r0 teremos uma aproximacao de e0.Como x = e0 + x0, entao e0 melhora a solucao x0.

Este processo pode ser repetido ate que se obtenha uma precisaodesejada.

1.3.5 Numero Condicional

Considere um sistema n × n, AX = B e uma solucao aproximadaxk. Definimos como o vetor resıduo rk = B − Axk. Intuitivamentesomos levados a pensar que quanto mais proximo do vetor nulo ovetor rk estiver, melhor sera a solucao xk. O problema e que nemsempre isso ocorre devido a uma anomalia na matriz A. Veja o

Exemplo 1.3.4. Considere o sistema{

x1 + 1.001x2 = 2.0010.999x1 + x2 = 1.999

18 CAPITULO 1. SISTEMAS LINEARES

Este sistema tem solucao exata x = (1, 1)T . Para a solucaoxk = (2, 0.001)T o resıduo e

rk =[

2.0011.999

]

︸ ︷︷ ︸b

−[

1 1.0010.999 1

]

︸ ︷︷ ︸A

.

[2

0.001

]

︸ ︷︷ ︸xk

=[ −0.000001

0

]

Veja que o resıduo rk e quase nulo. Se nao soubessemos que asolucao exata e x = (1, 1)T serıamos levados a pensar que a solucaoxk e uma boa aproximacao. O que nao ocorre.

Como dito antes essa anomalia aparece na matriz dos coeficientesA. Para identificar melhor esse problema definimos o numero condi-cional de uma matriz.

Definicao 1.2. Seja An×n uma matriz tal que det(A) 6= 0. Entao onumero condicional de A e dado por Cond(A) = ‖A‖.‖A−1‖.

A norma na definicao acima e dada por:

‖A‖ = max

{n∑

i=1

|aij | ; j = 1, . . . , n

}

Quando o Cond(A) ≈ 1 entao podemos dizer que a matriz Ae bem condicionada, ou seja, pequenas pertubacoes no vetor B re-fletem em pequenas variacoes no vetor solucao X. Mas se Cond(A)e muito grande, entao pequenas pertubacoes no vetor B produzemuma grande variacao no vetor solucao X.

O numero condicional nao deve ser entendido como regra paradeterminar o mau condicionamento de uma matriz (sistema). Mascomo uma previsao de mau condicionamento. Por exemplo, um sis-tema em que a matriz dos coeficientes e dada por:

[1 00 10−10

]

Tem Cond(A) = 1010 mas o sistema nao e mal condicionado. Paramais detalhes sobre numero condicional veja [11].

1.3. METODOS ITERATIVOS 19

1.3.6 Convergencia do M. Iterativo de Jacobi e Gauss-Seidel

A primeira vista o metodo de Jacobi e Gauss-Seidel seriam ideaispara resolver sistemas lineares n × n(que possuem solucao). A manoticia e que, nem todos os sistemas n×n podem ser resolvidos comesses metodos. Existe uma condicao de convergencia que e crucial.Ela sera dada nos teoremas abaixo.

Teorema 1.3. Se para cada i fixo, i = 1, . . . , n temos quen∑

j=1

|fij | ≤

L < 1, entao o metodo iterativo de Jacobi e Gauss-Seidel convergempara a solucao exata do sistema.

Em outras palavras, o teorema diz que: Se a soma em modulo decada linha da matriz F for menor que 1, entao o metodo de Jacobie Gauss-Seidel convergem para a solucao exata do sistema, seja qualfor a solucao inicial x0.

Esse criterio de linhas tambem pode ser estendido para colunas.Veja o

Teorema 1.4. Se para cada j fixo, j = 1, . . . , n temos quen∑

i=1

|fij | ≤L < 1, entao o metodo iterativo de Jacobi e Gauss-Seidel convergempara a solucao exata do sistema.

Corolario 1.1. A condicaon∑

j=1

|fij | ≤ L < 1 no Teorema 1.3 e

equivalente a |aij | >n∑

j=1,j 6=i

|aij | para cada i = 1, . . . , n fixo.

A demonstracao desses teoremas pode ser encontrada em [1].

Se F satisfaz um dos teoremas acima, entao podemos aplicartanto o metodo de Jacobi quanto o metodo de Gauss-Seidel, pois egarantida a convergencia.

20 CAPITULO 1. SISTEMAS LINEARES

1.4 Sistemas Lineares Complexos

Consideremos uma sistema AX = B onde A,X e B sao matrizescomplexas. Entao sao escritas na forma:

A = M + NiB = c + diX = s + ti

(1.5)

onde M,N, c, d, s, t sao matrizes reais. Substituindo a equacao (1.5)em AX = B teremos:

(M + Ni)(s + ti) = c + di =⇒ Ms−Nt + (Ns + Mt)i = c + di,

ou seja,

{Ms−Nt = cNs + Mt = d

O sistema acima pode ser visto como:

M | −N|

−− −− −− −− −−|

N | M

.

s

t

=

c

d

(1.6)

que e um sistema real, e pode ser resolvido com os metodos apresen-tados anteriormente.

Exemplo 1.4.1. Resolva o sistema{

(1 + 2i)x1 + 3x2 = −5 + 4i−x1 + x2 = −1

Vamos decompor a matriz dos coeficientes:

A =

1 + 2i 3 + 0i

−1 + 0i 1 + 0i

=

1 3

−1 1

︸ ︷︷ ︸M

+

2 0

0 0

︸ ︷︷ ︸N

i

1.5. EXERCICIOS 21

B =

−5 + 4i

−1 + 0i

=

−5

−1

︸ ︷︷ ︸c

+

4

0

︸ ︷︷ ︸d

i

X =

x1

x2

=

s1

s2

︸ ︷︷ ︸s

+

t1

t2

︸ ︷︷ ︸t

i

Escrevendo o sistema na forma (1.6) temos:

1 3 −2 0−1 1 0 0

2 0 1 30 0 −1 1

.

s1

s2

t1t2

=

−5−1

40

Resolvendo o sistema por metodos anteriores (por exemplo pelometodo de Gauss) obtemos: s1 = 0, s2 = −1,t1 = 1, t2 = 1, dessa forma a solucao do sistema e dada por x1 =i, x2 = −1 + i.

1.5 Exercıcios

1.5.1. Atraves de operacoes elementares mostre que a matriz

3 5 02 0 15 1 −1

e equivalente a

1 0 00 1 00 0 1

.

1.5.2. Mostre geometricamente que o sistema abaixo nao possui solucaoreal:

2x1 + 6x2 = 83x1 + 9x2 = 15x1 + 3x2 = 6

22 CAPITULO 1. SISTEMAS LINEARES

1.5.3. Resolva os sistemas abaixo por retro substituicao:

a)

x1 − 3x2 + x3 = 64x2 − x3 = 5

x3 = 4b)

2x1 = 2x1 + x2 = 3

x1 + x2 + x3 = 4

1.5.4. Resolva pelo metodo de Gauss os sistemas:

a)

x1 + x2 + x3 + x4 = 0x1 + x2 + x3 − x4 = 4x1 + x2 − x3 + x4 = −4x1 − x2 + x3 + x4 = 2

b)

x1 + 2x2 + x3 = 02x1 + x2 + 3x3 = 03x1 + 2x2 + x3 = 0

1.5.5. Mostre que:

2x1 + 3x2 − x3 = 54x1 + 4x2 − 3x3 = 32x1 − 3x2 + x3 = −1

e equivalente a

2x1 + 3x2 − x3 = 5−2x2 − x3 = −7−6x2 + 2x3 = −6

1.5.6. Atraves de decomposicao LU obtenha a solucao dos sistemasdoexercıcio 1.5.4.

1.5.7. Calcule a matriz inversa A−1 das matrizes abaixo. Para isso,use decomposicao LU.

a)

2 −1 −6 37 −4 2 −151 −2 −4 91 −1 2 −6

b)

1 3 42 1 00 3 2

1.5. EXERCICIOS 23

1.5.8. Resolva atraves do metodo iterativo de Jacobi os sistemasabaixo com δ = 0.07:

a)

10x1 + x2 + x3 = 122x1 + 4x2 + x3 = 7x1 − x2 + 3x3 = 3

b){

2x1 + x2 = 2x1 + 3x2 = 1

1.5.9. Resolva os sistemas do exercıcio 1.5.8 pelo metodo de Gauss-Seidel com δ = 0.07.

1.5.10. Explique por que o metodo de Gauss-Seidel nao garante con-vergencia para solucao exata do sistema abaixo;

x1 + x2 + x3 = 32x1 + x2 + x3 = 43x1 + 2x2 + x3 = 6

1.5.11. Aplique o metodo do Refinamento Iterativo na solucao doexercıcio 1.5.8 com uma iteracao. Verifique se a nova solucao mel-hora a anterior.

1.5.12. De exemplos de sistemas mal condicionados.

1.5.13. Resolva o sistema:{ −2ix1 + 3x2 = 2 + 5i

(1 + i)x1 + ix2 = −3

1.5.14. Considere a tabela de valores nutricionais2 dos alimentosabaixo:

2valores fictıcios

24 CAPITULO 1. SISTEMAS LINEARES

Alimento Vitamina A Vitamina B Vitamina C1-Pera 1g 3g 4g1-Uva 2g 3g 5g1-Maca 3g 2g 3g

Deseja-se saber quanto de cada alimento deve-se ingerir paraobter 11g de vitamina A, 13g de vitamina B e 20g de vitamina C.

Monte um sistema e resolva pelo metodo de Gauss esse problema.

1.5.15. Descreva o metodo de resolucao de sistemas lineares com-plexos n × n atraves de reducao a sistemas lineares reais. Verifiquecom isto, que um sistema n × n complexo e reduzido a um sistemareal (2n)× (2n).

1.5.16. Demonstre o Corolario 1.1.

1.5.17. Monte um sistema que tenha como solucao x1 = 1, x2 = 2,x3 = 0, x4 = 1.

1.5.18. Implemente em portugol o metodo de substituicao retroativa.

1.5.19. Implemente em portugol o metodo de Gauss.

1.5.20. Implemente em portugol o metodo de Jacobi e Gauss-Seidel.

Capıtulo 2

Zeros de funcao

2.1 Introducao

Neste capıtulo estamos interessados em obter os zeros de uma funcaoreal atraves de metodos numericos. Em outras palavras, dada umacerta funcao f(x), gostarıamos de encontrar ε tal que, f(ε) = 0. Porexemplo, a funcao f(x) = x2−3x+2 tem dois zeros, ε1 = 2 e ε2 = 1.Vale lembrar que uma funcao pode ter zeros reais ou complexos.Neste texto nao vamos tratar o caso complexo, o leitor interessadopode encontrar em [11].

Para comecar, vamos enunciar algumas definicoes e teoremas.Para o nosso estudo nao sera necessario demonstra-los.

Definicao 2.1. Dizemos que uma funcao f : I −→ R e contınuaem um ponto c, se para toda sequencia (xn) em I,tivermos

limn→∞xn = c =⇒ lim

n→∞ f(xn) = f(c)

A grosso modo podemos entender essa definicao da seguinte forma:Dizemos que f(x) e continua, se ao tracar seu grafico nao levan-

tamos o lapis do papel.

Teorema 2.1. Seja f(x) uma funcao contınua definida no intervalo[a b] tal que f(a)f(b) < 0, entao f(x) possui pelo menos um zeroem [a b].

25

26 CAPITULO 2. ZEROS DE FUNCAO

x

y

a bx

y

ab

Figura 2.1: Zeros de uma funcao

x

y

x

y

ab

a b

Figura 2.2: f ′(x) > 0 e f ′(x) < 0

Esse teorema nos diz que, se f(x) e contınua e f(a) tem sinaldiferente de f(b), entao f(x) corta o eixo x pelo menos uma vez, ouseja, existe ε ∈ [a b] tal que f(ε) = 0. Veja a figura 2.1.

Teorema 2.2. Seja f(x) uma funcao definida no intervalo [a b] talquef(a)f(b) < 0 e f ′(x) > 0 para todo x ∈ (a b). Entao f(x) pos-sui um unico zero em [a b].

O Teorema 2.1 garante apenas a existencia mas nao a unicidade.Acrescentando a hipotese da derivada ser positiva em todo intervalo(o que implica em f(x) ser crescente) 1(veja figura 2.2) obtemos oTeorema 2.2 que garante a unicidade desse zero.

1tambem vale para negativa

2.2. METODO DE LOCALIZACAO DE ZEROS 27

x

y

-5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

-2

-1

0

1

2

3

4

x

y

-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7

-4

-3

-2

-1

0

1

2

3

4

Figura 2.3: Zeros de f(x)

Teorema 2.3. Se f(x) pode ser escrita como diferenca de duasfuncoes,digamos g(x) e h(x), entao os zeros de f(x) sao exatamente os pon-tos de intersecao de g(x) e h(x).

Veja que se f(x) = g(x) − h(x) e ε e um zero de f(x), entao0 = f(ε) = g(ε)− h(ε) =⇒ g(ε) = h(ε)

Exemplo 2.1.1. Considere f(x) = 12ex − cos(x) com g(x) = 1

2ex eh(x) = cos(x). Observe a figura 2.3. Veja que g(x) e h(x) possuemvarias intersecoes. Cada intersecao e um zero de f(x).

Definicao 2.2. Diz-se que uma sequencia (xn) e de Cauchy quando,para todo ε > 0 dado, existe n0 ∈ N tal que m,n > n0 =⇒ |xm−xn| <ε

Em outras palavras, uma sequencia e de Cauchy se seus termosestao cada vez mais proximos uns dos outros.

Teorema 2.4. Uma sequencia (xn) real converge se, e somente se,e de Cauchy.

2.2 Metodo de Localizacao de Zeros

Nesta secao vamos desenvolver um metodo para isolar os zeros deuma funcao em intervalos. Em outras palavras, obter intervalos ondeexiste um unico zero.

28 CAPITULO 2. ZEROS DE FUNCAO

x

y

a b

� � � �

Figura 2.4: Zeros de f(x)

Consideremos uma funcao f(x) cujo grafico seja dado pela figura2.4. Gostarıamos de encontrar uma particao do intervalo [a b] dig-amos P = {p1, p2, p3, . . . , pn}, onde pj = pj−1 + γ para algum γescolhido. Tal que, cada zero esteja em um subintervalo (pk−1 pk)criado pela particao. Veja exemplo abaixo:

Exemplo 2.2.1. Considere f(x) = 16x3 − 22x − 5(figura 2.5) nointervalo [−2 2]. Tomamos uma particao com γ = 1

2 e obtemos atabela:

P -2 −32 -1 −1

2 0 12 1 3

2 2f(P) < 0 < 0 > 0 > 0 < 0 < 0 < 0 > 0 > 0

Portanto, aplicando o Teorema 2.1 existem zeros em[−3

2 − 1],[−1

2 0]

e[1 3

2

].

E bom lembrar que quanto mais fina a particao, ou seja, quantomenor o γ melhores sao as chances de isolar todos os zeros da funcao.

Em geral nao sabemos onde estao os zeros da funcao f(x), sim-plesmente criamos uma particao e observamos a mudanca de sinalde acordo com o Teorema 2.1 para encontrar os intervalos onde f(x)possui zeros. O proximo passo e encontrar uma aproximacao paraesses zeros. Isso sera feito nas proximas secoes.

2.3. METODO DO MEIO INTERVALO - MMI 29

x

y

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

-40

-20

0

20

40

p2 p4p1 p5p3 p6 p7

Figura 2.5: Criando uma particao P

2.3 Metodo do Meio Intervalo - MMI

Considere uma funcao f(x) contınua no intervalo [a b] tal quef(a)f(b) < 0 e f(x) possua um unico zero nesse intervalo. O MMIconsiste em efetuar sucessivas divisoes no intervalo [a b] de formaque o zero fique dentro algum subintervalo (bem pequeno) criadopelas divisoes. Ao contrario do Metodo de Localizacao de Zeros,agora estamos interessados na aproximacao do zero, nao do inter-valo. Acompanhe a explicacao abaixo com a figura 2.6.

Inicialmente dividimos o intervalo [a b] ao meio em x0 = a+b2

e verificamos se f(x0) = 0, caso contrario analisamos o sinal def(a)f(x0) e f(x0)f(b).Suponhamos que f(a)f(x0) > 0 e f(x0)f(b) < 0. Assim pelo Teo-rema 2.1 existe um zero ε em (x0 b). Descartamos o intervalo [a x0].Dividimos o intervalo (x0 b) ao meio em x1 = x0+b

2 e verificamosse f(x1) = 0, caso contrario, repetimos o processo verificando osinal de f(x0)f(x1) e f(x1)f(b). Suponhamos que f(x0)f(x1) < 0 ef(x1)f(b) > 0. Descartamos o intervalo (x1 b) e dividimos [x0 x1]em x3. O processo segue ate que |xn−xn−1| seja menor ou igual queum certo δ fixado.

Na figura 2.6 verificamos que se continuarmos o metodo a sequencia(xn) converge para o zero ε. Mostraremos agora uma prova rig-orosa de que a sequencia (xn) realmente converge para ε, ou seja,

30 CAPITULO 2. ZEROS DE FUNCAO

x

y

a bx0

x1

x2 ε

Figura 2.6: (xn) convergindo para o zero ε

limn→∞xn = ε.

Para isso, tome somente os intervalos aproveitados:

[a b], [x0 b], [x0 x1], . . . , [xn xk], . . .

renomeando para

[a0 b0], [a1 b1], [a2 b2], . . . , [an bn], . . .

Veja que [a0 b0] ⊃ [a1 b1] ⊃ [a2 b2] ⊃ . . . ⊃ [an bn] ⊃ . . ., comf(an)f(bn) < 0 e ambas as sequencias (an) e (bn) limitadas. Outrofato e que a0 ≤ a1 ≤ a2 ≤ . . . ≤ an ≤ . . . e b0 ≥ b1 ≥ b2 ≥. . . ≥ bn ≥ . . ., onde concluımos que essas sequencias sao monotonase limitadas. Pelo Teorema de Bolzano-Weierstrass2 temos que (an)e (bn) convergem para um certo L, ou seja,

limn→∞ an = lim

n→∞ bn = L.

Ainda resta mostrar que L e exatamente o zero ε. Para isso calculeo limite na desigualdade f(an)f(bn) < 0 e use o fato de f(x) sercontinua. Temos entao:

limn→∞(f(an)f(bn)) < 0

2Veja livro de calculo ou analise matematica

2.4. METODO DA SECANTE 31

limn→∞ f(an) lim

n→∞ f(bn) < 0

f(

limn→∞ an

)f

(lim

n→∞ bn

)< 0

f(L)f(L) < 0

f(L)2 < 0 =⇒ f(L) = 0

Como ε e o unico zero em [a b] entao ε = L.

Exemplo 2.3.1. Encontre o zero de f(x) = x2−2 no intervalo [0 2]com δ = 0.07.

n an bn xn |xn − xn−1|0 0 2 1 1> δ1 1 2 1.5 0.5> δ2 1 1.5 1.25 0.25> δ3 1.25 1.5 1.37 0.12> δ4 1.37 1.5 1.43 0.06≤ δ ←− parar o metodo

Assim nossa aproximacao para o zero de f(x) seria x4 = 1.43

2.4 Metodo da Secante

O metodo da Secante3 e parecido com o MMI no sentido de criaruma sequencia que se aproxima do zero procurado.

Antes de aplicar o metodo devemos observar como a funcao f(x)se comporta no intervalo. Pois como veremos a concavidade muda omodo como iremos criar a sequencia (xn).

Vamos entao as hipoteses do metodo. Seja f(x) uma funcaoduas vezes diferenciavel em [a b] e f(a)f(b) < 0. Suponhamos comoprimeiro caso que:

f ′(x) > 0 e f ′′(x) > 0, para todo x ∈ [a b]

3tambem chamado de metodo das cordas

32 CAPITULO 2. ZEROS DE FUNCAO

x

y

x0 x1 x2 x3 ε

a b

� � � �

� � �f (b))

(a,f (� � �

Figura 2.7: Sequencia (xn) no metodo da secante

Com essas hipoteses temos que o grafico de f(x) em [a b] tem aforma da figura 2.6. O metodo da secante consiste em tomar a reta(digamos L0) que passa pelos pontos (a, f(a)), (b, f(b)). O primeiroelemento da sequencia (xn), ou seja, o elemento x0 sera a intersecaodessa reta com o eixo x, veja figura 2.7.

A segunda reta (digamos L1) passa pelos pontos (b, f(b)), (x0, f(x0)).A intersecao dessa reta com o eixo x gera o elemento x1. O processosegue ate que |xn−xn−1| seja menor ou igual que um certo δ fixado.

Ainda nao conhecemos bem os elementos da sequencia xn, porisso vamos comecar determinando x0. Lembramos que a equacao deuma reta que passa por dois pontos quaisquer (x, y), (s0, t0) e dadapor:

y − t0 = m(x− s0),

onde m e o coeficiente angular da reta.O coeficiente angular da reta L0 e dado por mL0 = f(b)−f(a)

b−a .Assim a equacao da reta L0 e:

y − f(b) =f(b)− f(a)

b− a(x− b) =⇒ y = f(b) +

f(b)− f(a)b− a

(x− b)

x0 e o ponto onde essa reta corta o eixo x, ou seja, y = 0, entao

0 = f(b) +f(b)− f(a)

b− a(x0 − b) =⇒ x0 = b− f(b)

f(b)− f(a)(b− a)

2.5. METODO DE NEWTON 33

Como o mesmo procedimento aplicado na reta L1 obtemos o pontox1:

x1 = b− f(b)f(b)− f(x0)

(b− x0)

Portanto a sequencia xn sera dada por:

xn = b− f(b)f(b)−f(xn−1)(b− xn−1) (2.1)

Veja exercıcio 2.9.5 para outros casos.

2.4.1 Convergencia no Metodo da Secante

Podemos afirmar que a sequencia (xn) e monotona e limitada. Dessaforma:

limn→∞xn = L.

Passando o limite na equacao (2.1) obtemos:

limn→∞xn = lim

n→∞

(b− f(b)

f(b)− f(xn−1)(b− xn−1)

)

assim

L = b− f(b)f(b)− f(L)

(b− L) =⇒ f(L) = 0

Como ε e o unico zero em [a b] entao ε = L.

2.5 Metodo de Newton

Considere para o metodo de Newton as mesmas hipoteses para f(x)como no metodo da secante, ou seja, f(x) uma funcao duas vezesdiferenciavel em [a b] e f(a)f(b) < 0. Suponhamos como primeirocaso que:

f ′(x) > 0 e f ′′(x) > 0, para todo x ∈ [a b]

34 CAPITULO 2. ZEROS DE FUNCAO

x

y

x0x1

ba

� � � �

L0

L1

ε

Figura 2.8: Sequencia (xn) no metodo de Newton

Com essas hipoteses temos que o grafico de f(x) em [a b] tem aforma da figura 2.6. O metodo de Newton difere pouco do metododa secante. Agora em vez da reta secante, tomamos a reta(digamosL0) tangente no ponto (b, f(b)), ou seja, essa reta tem coeficienteangular f ′(b). Veja figura 2.8.

Observe que x0 e a intersecao de L0 com o eixo x e x1 e a in-tersecao da reta L1 com o eixo x. Como no metodo da secante vamosdeterminar o ponto x0. Para isso usaremos o fato do coeficiente an-gular mL0 ser igual a f ′(b). Dessa forma a equacao da reta L0 ficasendo:

y − f(b) = f ′(b)(x− b) =⇒ y = f(b) + f ′(b)(x− b)

Como x0 e o ponto onde essa reta corta o eixo x, ou seja, y = 0entao:

x0 = b− f(b)f ′(b)

O mesmo procedimento e aplicado em L1 e obtemos o ponto

x1 = x0 − f(x0)f ′(x0)

o que implica no caso geral

2.5. METODO DE NEWTON 35

xn = xn−1 − f(xn−1)f ′(xn−1)

(2.2)

2.5.1 Convergencia no Metodo de Newton

Podemos afirmar que a sequencia (xn) e monotona e limitada. Dessaforma:

limn→∞xn = L.

Passando o limite na equacao (2.2)obtemos:

limn→∞xn = lim

n→∞

(xn−1 − f(xn−1)

f ′(xn−1)

)

assim

L = L− f(L)f ′(L)

=⇒ f(L) = 0

Como ε e o unico zero em [a b] entao ε = L.

Exemplo 2.5.1. Vamos aplicar o metodo de Newton no Exemplo2.3.1.

n xn |xn − xn−1|0 1.5 1.5> δ1 1.416 0.08> δ2 1.414 0.002≤ δ ←− parar o metodo

Assim nossa aproximacao para o zero de f(x) seria x2 = 1.414.

Uma observacao muito importante e o fato do metodo de Newtonatingir δ com n = 2, ao passo que no MMI, n = 4. Isso nao acontecepor acaso, o metodo de Newton realmente converge mais rapido.Nunca e demais lembrar que o M. de Newton exige que mais hipotesessobre a funcao do que o MMI.

36 CAPITULO 2. ZEROS DE FUNCAO

2.6 Metodo da Iteracao Linear

Comecamos esse metodo obtendo a funcao de iteracao φ(x). Paraisso isolamos a variavel x na equacao f(x) = 0. Tome como exemplof(x) = x2 − 5x + 6:

x2 − 5x + 6 = 0x2 − x− 4x + 6 = 0x2 − 4x + 6 = x

Assim φ(x) = x2 − 4x + 6.Veja agora que o ponto fixo(veja definicao adiante) de φ(x) e

justamente o zero de f(x), ou seja, k tal que φ(k) = k implica emf(k) = 0.

Na verdade, o que fizemos foi transformar o problema de encon-trar zeros, para o problema de encontrar ponto fixo.

Definicao 2.3. Diz-se que k e ponto fixo de φ(x), se φ(k) = k.

A sequencia (xn) sera criada a partir de uma aproximacao inicialx0(mais a frente comentaremos essa escolha) da seguinte forma:

x1 = φ(x0), x2 = φ(x1), . . . , xn = φ(xn−1), . . .

Observe nas figuras (2.9) e (2.10) a sequencia (xn).Como nem tudo sao flores! O metodo da Iteracao Linear nem

sempre pode ser usado, conforme o teorema abaixo.

Teorema 2.5. Se |φ′(x)| ≤ λ < 1 para todo x ∈ [a b], entaopara qualquer valor inicial x0 ∈ [a b] a sequencia x1 = φ(x0), x2 =φ(x1), . . . , xn = φ(xn−1), . . . converge para um certo L que e o pontofixo de φ(x) em [a b].

demonstracao

Consideremos o primeiro caso (figura 2.9) com xn−1 < xn. Peloteorema do valor medio4 existe ωn ∈ (xn−1 xn) tal que:

|φ(xn)− φ(xn−1)| = |φ′(ωn)||xn − xn−1)|,4Veja qualquer livro de calculo

2.6. METODO DA ITERACAO LINEAR 37

x

y

b

ε

x1 x2 x3

x0

f( x )0

f( x )1

f( x )2

y=x

φ(x)

Figura 2.9: Sequencia (xn) no metodo da Iteracao Linear

x

y

b

ε

x1x2 x3

x0

y=xφ(x)

... ...

Figura 2.10: Sequencia (xn) no Metodo da Iteracao Linear

38 CAPITULO 2. ZEROS DE FUNCAO

segue por hipotese que |φ′(ωn)| ≤ λ, entao

|φ(xn)− φ(xn−1)| ≤ λ|xn − xn−1|implicando em

|xn+1 − xn| ≤ λ|xn − xn−1|por analogia teremos

|xn+1 − xn| ≤ λ|xn − xn−1| ≤ λ2|xn−1 − xn−2| ≤ . . . ≤ λn|x1 − x0|ou seja,

|xn+1 − xn| ≤ λn|x1 − x0|Passando o limite nesta ultima desigualdade teremos:

limn→∞ |xn+1 − xn| ≤ lim

n→∞

λn |x1 − x0|︸ ︷︷ ︸

constante

≤ |x1 − x0| limn→∞λn

︸ ︷︷ ︸0

≤ 0

Logo (xn) e uma sequencia de Cauchy , pelo Teorema 2.4 a sequencia(xn) converge para um certo L em (a b), ou seja, lim

n→∞xn = L.

Como φ(x) e diferenciavel, logo contınua temos que:

φ(L) = φ(

limn→∞xn

)= lim

n→∞φ(xn) = limn→∞xn+1 = L

Portanto L e o ponto fixo de φ(x).

Corolario 2.1. O ponto fixo L dado no Teorema 2.5 e o unico pontofixo de φ(x) em [a b].

demonstracao

2.6. METODO DA ITERACAO LINEAR 39

A prova sera feita por reducao ao absurdo. Para isso, suponhaque exista um outro ponto fixo M em [a b]. Pelo teorema do valormedio existe c ∈ (L M) tal que:

|φ(L)− φ(M)| = |φ′(c)||L−M |≤ λ|L−M |

mais ainda,

|L−M | ≤ λ|L−M |(1− λ)|L−M | ≤ 0

Como λ < 1 entao (1− λ) > 0, ou seja,

0 ≤ (1− λ)|L−M | ≤ 0

(1− λ)|L−M | = 0

Portanto L = M .

Mais detalhes sobre ponto fixo veja [7].

2.6.1 A Funcao de Iteracao

Pelo Teorema 2.5 observamos que a escolha de φ(x) e muito impor-tante para a convergencia do Metodo da Iteracao Linear. Por isso,para aplicar esse metodo devemos procurar uma funcao de iteracaoφ(x) que satisfaca as hipoteses desse teorema. O exemplo abaixomostra como podemos obter varias funcoes de iteracao. Bastandopara isso, escolher e isolar x na equacao.

Exemplo 2.6.1. Encontre o zero de f(x) = 2x− cos(x) em[

15 2

],

com δ = 0.01

1a funcao de iteracao

2x− cos(x) = 0x + x− cos(x) = 0

cos(x)− x = x

assim φ1(x) = cos(x)− x

40 CAPITULO 2. ZEROS DE FUNCAO

2a funcao de iteracao

2x− cos(x) = 0 =⇒ x =cos(x)

2

assim φ2(x) = cos(x)2

3a funcao de iteracao

2x− cos(x) = 0 somando x em ambos os lados2x + x− cos(x) = x

3x− cos(x) = x

assim φ3(x) = 3x− cos(x)

Vamos agora calcular derivada de cada funcao obtida, observandoseu comportamento no intervalo

[15 2

].

|φ′1(x)| = | − sen(x)− 1| > 1, para algum x ∈ [15 2

]

|φ′2(x)| = | − sen(x)2 | < 1, para todo x ∈ [

15 2

]

|φ′3(x)| = |3 + sen(x)| > 1, para todo x ∈ [15 2

]

Portanto concluımos que φ2(x) deve ser a funcao de iteracao.Uma vez que φ2(x) satisfaz o Teorema 2.5. Assim comecamos nossasequencia (xn) com o elemento x0 = 1

5 e iteramos (a calculadoradeve estar em radianos):

x1 = φ2(x0) = φ2

(15

)= 0.49003

x2 = φ2(x1) = φ2(0.49003) = 0.44116x3 = φ2(x2) = φ2(0.44116) = 0.45213x4 = φ2(x3) = φ2(0.45213) = 0.44976

Paramos o metodo em x4, porque |x4 − x3| = 0.00237 ≤ δ.

2.7. COMENTARIOS FINAIS SOBRE OS METODOS 41

A escolha de x0

Caso a funcao f(x) tenha a forma da figura 2.9, x0 deve serescolhido de tal forma que x0 seja menor que o zero ε, pois casocontrario o metodo pode nao convergir. Uma sugestao seria comecarcom o extremo do intervalo (nesse caso o ponto a).

Caso f(x) tenha forma da figura 2.10 o elemento x0 pode serarbitrario dentro do intervalo.

2.7 Comentarios Finais Sobre os Metodos

2.7.1 Localizacao de Zeros

E um bom metodo para localizar os possıveis intervalos onde se en-contram os zeros de uma funcao. Porem, se o intervalo de pesquisafor muito grande ou se a funcao possuir muitos zeros, o metodo podese tornar computacionalmente inviavel.

Se o γ escolhido nao for suficientemente pequeno podemos ter in-tervalos onde existem dois ou mais zeros. Se γ for pequeno o metodopode nao ser viavel.

2.7.2 Metodo do Meio Intervalo - MMI

A grande vantagem deste metodo consiste no fato que so exigimosque a funcao f(x) seja contınua. Mas infelizmente a convergencia elenta.

2.7.3 Metodo da Secante

Exige que o sinal de f ′(x) e f ′′(x) sejam constantes no intervalo.Nem sempre a funcao tem derivadas, o que inviabiliza o metodo. Seo intervalo de procura for muito grande o metodo pode se tornarlento.

2.7.4 Metodo de Newton

Exige que o sinal de f ′(x) e f ′′(x) sejam constantes no intervalo.Mas tem convergencia extraordinaria.

42 CAPITULO 2. ZEROS DE FUNCAO

2.7.5 Metodo da Iteracao Linear

A funcao de iteracao φ(x) deve ser obtida atraves de um processomanual, ou seja, analıtico. Satisfazendo a hipotese do Teorema 2.5.Nem sempre e facil encontrar tal funcao.

Para finalizar, relacionamos o numero de iteracoes que cada metodogasta para resolver um problema. Tambem verificamos os zeros deuma funcao onde nao temos o intervalo de procura. Isto fica claronos exemplos abaixo.

Exemplo 2.7.1. Encontre um zero de f(x) = e−110

x + x2 − 10 em[52

72

]com δ = 10−5

Neste exemplo obtemos os resultados:

MMI M. Secante M. Newton M. Iteracao Linearnumero de iteracoes 16 6 3 4

Exemplo 2.7.2. Calcule pelo menos um zero de f(x) = log(x) + x.Observe que nao foi dado o intervalo. Uma saıda e aplicar o Teo-

rema 2.3 com h(x) = −x e g(x) = log(x). O grafico dessas funcoes edado na figura 2.11. Nele podemos observar que a intersecao de h(x)e g(x) encontra-se no intervalo [0 1]. Atraves do grafico tambem ob-servamos que essa intersecao e unica. Logo f(x) possui somente umunico zero. Para esse exemplo aplicaremos o metodo do meio inter-valo - MMI, com δ = 0.009. Lembrando que em vez do intervalo[0 1] trabalharemos com o intervalo

[1

100 1]

ja que f(x) nao estadefinida em 0.

n an bn xn |xn − xn−1|0 1/100 1 0.5051 1/100 0.505 0.257 0.248> δ2 0.257 0.505 0.381 0.124> δ3 0.381 0.505 0.443 0.062> δ4 0.381 0.443 0.412 0.031> δ5 0.381 0.412 0.396 0.016> δ6 0.396 0.412 0.404 0.008≤ δ ←− parar o metodo

2.8. ZEROS DE UM POLINOMIO 43

x

y

-0.5 0 0.5 1 1.5 2 2.5

-2.5

-2

-1.5

-1

-0.5

0

0.5g(x)

� � � �

ε

Figura 2.11: Metodo grafico

Logo nossa aproximacao com δ = 0.09 e x6 = 0.404.

2.8 Zeros de um Polinomio

Nas secoes anteriores desenvolvemos metodos para encontrar zeros deuma funcao. Inclusive de polinomios. Nesta secao vamos aprofundarum pouco mais nosso conhecimento sobre os zeros de um polinomio.Lembramos que neste texto, o zero de um polinomio e o mesmo que araiz de um polinomio. Nosso principal objetivo e chegar no teoremaque limita os zeros de um polinomio qualquer.

Da Algebra Linear, sabemos que dois espacos vetoriais sao iso-morfos se, existe um isomorfismo entre eles. Nesta secao vamos uti-lizar o isomorfismo dos numeros complexos (C) em R2, denotado porC ≈ R2, que associa a cada numero complexo a + bi o par (a, b) emR2.

Tambem vamos utilizar a norma euclidiana em R2 dada por:

‖(a, b)‖ =√

a2 + b2,

assim ‖a + bi‖ = ‖(a, b)‖.Nas proposicoes e teoremas abaixo, os polinomios podem ter

coeficientes reais ou complexos. Consideramos apenas polinomiosmonicos, ou seja o coeficiente do termo de maior grau e igual a 1.

44 CAPITULO 2. ZEROS DE FUNCAO

Proposicao 2.1. Seja p(x) = xn + an−1xn−1 + · · · + a1x + a0 um

polinomio de grau n e a0 6= 0. Sen−1∑

i=0

‖ai‖‖x‖n−i

< 1 e x 6= 0, entao

p(x) 6= 0.

demonstracao

Como x 6= 0 podemos escrever

p(x) = xn

(1 +

n−1∑

i=0

ai

xn−i

)(2.3)

e usar a desigualdade triangular5.∥∥∥∥∥

n−1∑

i=0

ai

xn−i

∥∥∥∥∥ ≤n−1∑

i=0

‖ai‖‖x‖n−i

< 1 (2.4)

De (2.3) e (2.4) concluımos que p(x) 6= 0.

Corolario 2.2. Se‖ai‖1/(n−i)

‖x‖ <12

para i = 0, . . . , n − 1 e x 6= 0.

Entao p(x) 6= 0.

demonstracao

Veja que

n−1∑

i=0

‖ai‖‖x‖n−i

=n−1∑

i=0

(‖ai‖1/(n−i)

‖x‖

)n−i

≤ 12n

+1

2n−1+ · · ·+ 1

22+

12

≤ 1− 12n

< 1

5‖a + b‖ ≤ ‖a‖+ ‖b‖

2.8. ZEROS DE UM POLINOMIO 45

De acordo com a Proposicao 2.1 p(x) 6= 0.

Estamos prontos para enunciar e demonstrar o

Teorema 2.6. Seja p(x) = xn + an−1xn−1 + · · ·+ a1x + a0 um

polinomio de grau n e a0 6= 0. Se x e um zero de p, entao

‖x‖ ≤ L

onde L = 2 max0≤i≤n−1

{‖ai‖1/(n−i)}

demonstracao

Negando o Corolario 2.2 temos que; se p(x) = 0 entao existe i0 tal

que‖ai0‖1/(n−i0)

‖x‖ ≥ 12. Do fato de

max0≤i≤n−1

{‖ai‖1/(n−i)}‖x‖ ≥ ‖ai0‖1/(n−i0)

‖x‖concluımos que

max0≤i≤n−1

{‖ai‖1/(n−i)}‖x‖ ≥ 1

2=⇒ ‖x‖ ≤ 2 max

0≤i≤n−1{‖ai‖1/(n−i)}

Exemplo 2.8.1. Ache o limite superior e inferior dos zeros reais dopolinomiop(x) = x3 + 3x2 − 10x + 24.

Veja que

L = 2 max0≤i≤n−1

{‖ai‖1/(n−i)}

= 2 max{‖a0‖1/3, ‖a1‖1/2, ‖a2‖}

= 2 max{241/3, 101/2, 3}

= 2√

10

46 CAPITULO 2. ZEROS DE FUNCAO

assim todos os zeros reais de p(x) estao no intervalo [−L L].

Exemplo 2.8.2. Determine a bola onde todos o zeros reais e com-plexos de p(x) = x3 + 3x2 − 10x + 24 estao.

Pelo exemplo anterior temos que L = 2√

10. Assim se x e umzero de p(x) entao ‖x‖ ≤ L. Usando a correspondencia C ≈ R2

temos a bola da figura 2.12:

y

-8

-6

-4

-2

2

4

6

8

x

-8 -6 -4 -2 2 4 6 80

L

Figura 2.12: Limite dos zeros

Exemplo 2.8.3. Ache o limite superior e inferior dos zeros dopolinomiop(x) = 2x3 − 3x2 − 2x + 3.

Observe que neste caso p(x) nao esta na forma do Teorema 2.6.Para resolver isso, basta tomar o polinomio

2.8. ZEROS DE UM POLINOMIO 47

-L L

0

??

Figura 2.13: Isolando zeros

g(x) =p(x)a3

=2x3 − 3x2 − 2x + 3

2= x3 − 3

2x2 − x +

32

cujo zeros sao os mesmos de p(x).

Aplicando o Teorema 2.6 em g(x) temos:

L = 2 max{(3/2)13 , 1, 3/2} = 3

assim todos os zeros reais de p(x) estao no intervalo [−L L] =[−3 3].

Ainda podemos avancar um pouco mais. Queremos agora o limiteinferior dos zeros positivos e o limite superior dos zeros negativos,veja (?) na figura 2.13.

Para encontrar estes limites, precisamos de um resultado impor-tante de Algebra:6

Se p(x) = xn +an−1xn−1 + · · ·+a1x+a0 e um polinomio de grau

n, entao p(x) tem no maximo n zeros reais ou complexos.Decorre desse resultado que todo polinomio de grau ımpar tem

pelo menos um zero real.Com esses resultados, seja (ξ0, ξ1, . . . , ξn−1) os zeros de p(x),

entao podemos escrever p(x) na forma(tambem e dado pela Algebra):

p(x) = (x− ξ0)(x− ξ1) · · · (x− ξn−1).

Consideremos o polinomio

P1(x) = xnp

(1x

).

6Veja em [5]

48 CAPITULO 2. ZEROS DE FUNCAO

Pelo que acabamos de ver,

P1(x) = xn

(1x− ξ0

)(1x− ξ1

)· · ·

(1x− ξn−1

)

= xn

(1− xξ0

x

)(1− xξ1

x

)· · ·

(1− xξn−1

x

)

= (1− xξ0)(1− xξ1) · · · (1− xξn−1).

Observe que os zeros de P1(x) sao(

1ξ0

,1ξ1

, . . . ,1

ξn−1

). Aplicando

o Teorema 2.6 em P1(x) temos a existencia de L1 tal que∥∥∥∥

1xii

∥∥∥∥ ≤ L1

o que implica em1L1

≤ ‖ξi‖. Portanto, se x e um zero de um

polinomio qualquer (monico), entao L1 ≤ ‖x‖ ≤ L.No caso de zeros reais podemos dizer que:

−L1 ≤ 1ξi≤ L1 para i = 0, . . . , n− 1

onde1ξi≤ L1 =⇒ 1

L1≤ ξi

e−L1 ≤ 1

ξi=⇒ ξi ≤ − 1

L1

assim, os zeros reais negativos de p(x) estao no intervalo[−L − 1

L1

]

e os zeros positivos estao em[

1L1

L

].

Exemplo 2.8.4. Ache os limites L,L1 de p(x) = 2x3−3x2−2x+3.No Exemplo 2.8.3 calculamos L = 3. Conforme feito, vamos utilizar

o polinomio g(x) = x3 − 32x2 − x +

32. Calculando P1(x) temos:

2.8. ZEROS DE UM POLINOMIO 49

P1(x) = x3p

(1x

)= x3

(1x3− 3

2x2− 1

x+

32

)= 1− 3

2x− x2 +

32x3.

Como P1(x) nao esta nas condicoes do Teorema 2.6, mudamospara

g1(x) =P1(x)3/2

= x3 − 23x2 − x +

23

Aplicando o Teorema 2.6 em g1(x) temos:

L1 = 2 max{(2/3)13 , 1, (2/3)} = 2(2/3)

13 ∼= 1.747 e

1L1

= 0.572 .

Assim todos os zeros complexos de p(x) estao no disco da figura2.14.

L

x

-8 -6 -4 2 4 6 80

-2

y

-8

-6

-4

-2

2

4

6

8

1L

Figura 2.14: Limite de zeros complexos

50 CAPITULO 2. ZEROS DE FUNCAO

Portanto todos os zeros reais(se existirem) negativos de p(x) estaoem [−3 − 0.572] e todos os zeros positivos em [0.572 3].

Uma vez dados os intervalos [−L − 1L1

] e [ 1L1

L] podemosaplicar o metodo de localizacao de zeros associado com qualquermetodo de busca (MMI, Newton, etc) para encontrar os zeros reaisdo polinomio.

2.8.1 Multiplicidade de um zero

Consideremos o seguinte teorema cuja demonstracao pode ser encon-trada em [5].

Teorema 2.7. Todo polinomio de grau n tem exatamente n zerosreais ou complexos.

Considere o polinomio p(x) = x3 + 4x + 5x + 2. Aplicando o2.7 temos a existencia de 3 zeros. Mas os unicos zeros sao {-1,-2}.Isto parece contraditorio. O fato se da pela multiplicidade do zero−1, ou seja, −1 e contado duas vezes. Dizemos que o zero −1 temmultiplicidade igual a 2.

Para saber a multiplicidade de um zero basta olhar para a derivadado polinomio. Assim se ε e um zero de p(x) entao a multiplicidadede ε e dado por m, onde

p′(x) = 0p′′(x) = 0

...

pm−1(x) = 0pm(x) 6= 0

Exemplo 2.8.5. No caso de p(x) = x3 + 4x + 5x + 2 temos que:

p(−1) = 0 p(−2) = 0p′(−1) = 0 p′(−2) 6= 0p′′(−1) 6= 0

Logo a multiplicidade de −1 e 2 e a multiplicidade de −2 e 1.

2.9. EXERCICIOS 51

Observe que a soma da multiplicidade de todos os zeros e igual aograu do polinomio. Outro fato, se o polinomio p(x) tem grau ımparentao possui pelo menos um zero real.

Concluımos que para procurar por zeros reais de um polinomiodevemos seguir um roteiro:

i Encontrar os limites L,L1

ii- Aplicar metodo de localizacao de zeros.

iii- Contar os zeros.

iv- Aplicar algum metodo de aproximacao(MMI, Newton,Secante,etc)

2.9 Exercıcios

2.9.1. Seja f(x) = x4−x−10 definida em [−2 2]. Aplique o metodode localizacao de zeros com γ = 1

4 para encontrar os subintervalosonde f(x) possui zeros.

2.9.2. Aplique o MMI para encontrar os zeros da funcao do Exercıcio2.9.1.

2.9.3. Encontre atraves do MMI com δ = 0.01 pelo menos um zerode:

a) f(x) = x3 − x + 1

b) g(x) = 2e−x − sen(x)

c) h(x) = xln(x)− 0.8

2.9.4. Aplique o Metodo da Secante para encontrar uma aproximacaopara

√2 e compare com o Metodo de Newton.

2.9.5. Mostre a equacao geral para a sequencia (xn) no Metodo daSecante quando:

a) f ′(x) < 0 e f ′′(x) > 0 para todo x ∈ [a b]

b) f ′(x) < 0 e f ′′(x) < 0 para todo x ∈ [a b]

c) f ′(x) > 0 e f ′′(x) < 0 para todo x ∈ [a b]

52 CAPITULO 2. ZEROS DE FUNCAO

2.9.6. Mostre que no Metodo de Newton podemos escolher x0 sef(x0)f ′′(x0) > 0

2.9.7. Ache um zero de f(x) = ex− sen(x)− 2 com δ = 0.0001 peloMetodo da Secante e pelo Metodo de Newton. Compare os resultadose diga qual Metodo converge mais rapido.

2.9.8. Ache um zero de f(x) = x + ln(x) e g(x) = 2x3 + ln(x) − 5com δ = 0.001 pelo Metodo da Iteracao Linear.

2.9.9. Usando o Metodo da Iteracao Linear ache um zero def(x) = cos(x) + ln(x) + x com δ = 10−2.

2.9.10. Calcule uma aproximacao para 7√

9

2.9.11. Seja f(x) = ex + x3 − 1, ache x tal que f(x) = 2.

2.9.12. Ache os pontos de maximo e mınimo de f(x) = x5+10x2+xem [−2 1].

2.9.13. Determine o mınimo global de f(x) = 2x4−2x3−x2−x−3

2.9.14. O que ocorre quando aplicamos o MMI em uma funcao quepossui 3 zeros em um intervalo [a b].

2.9.15. Para cada item abaixo de um exemplo onde nao podemosaplicar o:

a)Metodo do Meio Intervalo - MMI

b)Metodo da Secante

c)Metodo de Newton

d)Metodo da Iteracao Linear.

2.9.16. De acordo com o texto calcule L, L1 para p(x) = x4 − 5x3−7x2 + 29x + 30

2.9.17. Encontre os tres zeros reais de p(x) = x3−2x2−5x+6 comδ = 10−2.

Capıtulo 3

Interpolacao

3.1 Introducao

Abordaremos neste capıtulo os aspectos basicos da teoria de inter-polacao.Comecamos apresentando dois problemas:

i- Considere uma funcao f(x) conhecida apenas nos pontos(x0, x1, . . . , xn). Se nao temos a forma analıtica de f(x) comopodemos determinar o valor f(c) para um c ∈ (xi xj)?

ii- Seja f(x) uma funcao de forma analıtica complicada ou dedifıcil avaliacao. Existe uma outra funcao g(x) tal que g(x) ∼= f(x),onde g(x) e uma funcao de facil avaliacao?

Esses problemas serao resolvidos atraves da construcao de umpolinomio chamado polinomio interpolador. Em outros textos epossıvel encontrar interpolantes trigonometricas e exponenciais, paraisso veja [11].

Tudo comeca com o teorema abaixo:

Teorema 3.1. (Weirstrass) Se f(x) e uma funcao contınua em umintervalo fechado [a b], entao existe um polinomio p(x) tal quep(x) ∼= f(x) para todo x ∈ [a b], ou seja, |f(x) − p(x)| < ε paraqualquer ε dado.

53

54 CAPITULO 3. INTERPOLACAO

Como muitos teoremas na matematica, o teorema acima so garanteaexistencia do polinomio interpolador, outro fato e que o grau dopolinomio p(x) depende do ε escolhido. A demonstracao encontra-seem [9].

3.2 Interpolacao de Lagrange

Garantida a existencia do polinomio interpolador, vamos agora de-senvolver um metodo para encontra-lo.

Teorema 3.2. (Lagrange) Sejam (x0, x1, . . . , xn) os pontos distintosonde f(x) e conhecida. Entao o polinomio interpolador p(x) temgrau n e e dado pela formula:

p(x) =n∑

i=0

f(xi)

n∏

j=0,j 6=i

(x− xj)(xi − xj)

Antes de demonstrar o Teorema 3.2 facamos um exemplo:

Exemplo 3.2.1. Seja f(x) conhecida em :

(x0, f(x0)) = (−1, 1)(x1, f(x1)) = (1, 3)(x2, f(x2)) = (2,−1)(x3, f(x3)) = (3,−4)

Desejamos saber o valor de f(

12

). Usando o Teorema 3.2 temos:

3.2. INTERPOLACAO DE LAGRANGE 55

p(x) =3∑

i=0

f(xi)

3∏

j=0,j 6=i

(x− xj)(xi − xj)

= f(x0)(x− x1)(x− x2)(x− x3)

(x0 − x1)(x0 − x2)(x0 − x3)+ f(x1)

(x− x0)(x− x2)(x− x3)(x1 − x0)(x1 − x2)(x1 − x3)

+f(x2)(x− x0)(x− x1)(x− x3)

(x2 − x0)(x2 − x1)(x2 − x3)f(x3)

(x− x0)(x− x1)(x− x2)(x3 − x0)(x3 − x1)(x3 − x2)

...

=1324

x3 − 114

x2 +1124

x +274

Observe que p(xi) = f(xi) para i = 0, 1, 2, 3 e o grau de p(x) e 3.Agora, para saber o valor de f

(12

)basta calcular p

(12

) ∼= 5.671

demonstracao do Teorema 3.2

Consideremos os polinomios de Lagrange:

P0(x) = (x− x1)(x− x2) · · · (x− xn)P1(x) = (x− x0)(x− x2) · · · (x− xn)

...Pn(x) = (x− x0)(x− x1) · · · (x− xn−1)

Em geral Pi(x) =n∏

j=0,j 6=i

(x− xj), para i = 0, . . . , n.

Esses polinomios tem a seguinte propriedade:

Pi(x) 6= 0 e Pi(xj) = 0 (3.1)

Pelo Teorema 3.1 temos que p(x) existe e seu grau e igual a n.Dessa forma podemos escrever p(x) como combinacao linear dospolinomios de Lagrange, ou seja, existem escalares (b0, b1, . . . , bn)tais que:

56 CAPITULO 3. INTERPOLACAO

p(x) = b0P0(x) + b1P1(x) + · · ·+ bnPn(x) (3.2)

Pela equacao (3.1) podemos afirmar que:

p(xk) = b0P0(xk)︸ ︷︷ ︸0

+ b1P1(xk)︸ ︷︷ ︸0

+ · · ·+ bkPk(xk) + · · ·+ bnPn(xk)︸ ︷︷ ︸0

= bkPk(xk)

o que implica em

bk =p(xk)Pk(xk)

para k = 0, 1, . . . , n (3.3)

Substituindo a equacao (3.3) na equacao (3.2) temos:

p(x) =p(x0)P0(x0)

P0(x) +p(x1)P1(x1)

P1(x) + · · ·+ p(xn)Pn(xn)

Pn(x)

como p(xi) = f(xi) entao

p(x) =f(x0)P0(x0)

P0(x) +f(x1)P1(x1)

P1(x) + · · ·+ f(xn)Pn(xn)

Pn(x)

logo

p(x) =n∑

i=0

f(xi)Pi(x)Pi(xi)

=n∑

i=0

f(xi)n∏

j=0,j 6=i

(x− xj)(xi − xj)

Corolario 3.1. O polinomio dado no Teorema 3.2 e unico.

demonstracao

3.3. INTERPOLACAO COM DIFERENCAS DIVIDIDAS FINITAS - DDF57

Suponhamos que exista um outro polinomio s(x) tal que s(xi) =f(xi) para i = 0, 1, . . . , n. Considere o polinomio:

T (x) = s(x)− p(x)

Veja que T (xi) = s(xi)−p(xi) = 0 para i = 0, 1, . . . , n. Como o graude s(x) e p(x) e n, entao o grau de T (x) tambem e n. Mas T (x) temn + 1 zeros o que e um absurdo de acordo com o Teorema 2.7. Logos(x) = p(x).

3.3 Interpolacao com Diferencas Divididas Fini-tas - DDF

Consideremos uma funcao f(x) contınua em [a b] e diferenciavel em(a b). Uma diferenca dividida finita - DDF de primeira ordem def(x) em relacao a x0, x1 e dada por:

f [x1, x0] =f(x1)− f(x0)

x1 − x0

observe que f [x1, x0] e uma aproximacao para f ′(x0).

A DDF de segunda ordem sera dada por:

f [x2, x1, x0] =f [x2, x1]− f [x1, x0]

x2 − x0

veja que isso e uma aproximacao para f ′′(x1).

Assim a DDF de n-esima ordem sera dada por:

f [xn, xn−1, . . . , x1, x0] =f [xn, xn−1, . . . , x1]− f [xn−1, xn−2, . . . , x0]

xn − x0

3.3.1 Propriedades de uma DDF

i - f [xn, xn−1, . . . , x1, x0] = f [xα0 , xα1 , . . . , xαn−1 , xαn ] ondeα0, α1, . . . , αn−1, αn e qualquer permutacao dos inteiros{n, n− 1, . . . , 1, 0}. Por exemplo:

f [x2, x1, x0] = f [x1, x2, x0] = f [x2, x0, x1] = f [x0, x1, x2] = f [x1, x0, x2] = f [x0, x2, x1]

58 CAPITULO 3. INTERPOLACAO

ii - f [x0, x1] = f(x1)x1−x0

+ f(x0)x0−x1

3.3.2 Obtencao da Formula

Pelo Teorema 3.1 temos a existencia do polinomio p(x). Assim con-sidere (x0, x1, . . . , xn) os n + 1 pontos conhecidos de f(x). Peladefinicao de DDF temos:

p[x, x0] =p(x)− p(x0)

x− x0

ou

p(x) = p(x0) + (x− x0)p[x, x0] (3.4)

mais ainda,

p[x, x0, x1] =p[x, x0]− p[x0, x1]

x− x1

p[x, x0] = p[x0, x1] + (x− x1)p[x, x0, x1] (3.5)

Substituindo (3.5) em (3.4) temos:

p(x) = p(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x, x0, x1]

como

p[x, x0, x1] = (x− x2)p[x, x0, x1, x2] + p[x0, x1, x2]

entao

p(x) = p(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x0, x1, x2]+ (x− x0)(x− x1)(x− x2)p[x, x0, x1, x2].

Continuando a substituir p[x, x0, x1, x2] teremos:

p(x) = p(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x0, x1, x2]+ (x− x0)(x− x1)(x− x2)p[x0, x1, x2, x3] + · · ·+

(x− x0) · · · (x− xn−1)p[x0, . . . , xn] + (x− x0) · · · (x−xn)p[x, x0, . . . , xn]

3.4. ERRO DE TRUNCAMENTO 59

Como p(x) e um polinomio de grau n entao a (n + 1)-esimaderivada e igual a zero. Logo p[x, x0, . . . , xn] = 0. Dessa forma opolinomio p(x) pode ser escrito como:

p(x) = f(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x0, x1, x2]++(x− x0)(x− x1)(x− x2)p[x0, x1, x2, x3] + · · ·++(x− x0) · · · (x− xn−1)p[x0, . . . , xn]

Exemplo 3.3.1. Vamos construir o polinomio interpolador para

funcao f(x) =sen(x)√

xvia DDF. Para essa interpolacao considere

os pontos:(x0, f(x0)) =

(3π2 ,−0.46

)

(x1, f(x1)) =(

π2 , 0.797

)

Veja que

p[x0, x1] =p(x0)− p(x1)

x0 − x1=

f(x0)− f(x1)x0 − x1

=−1.257

π

Assimp(x) = f(x0) + (x− x0)p[x0, x1]

= −0.46 +(x− 3π

2

) (−1.257π

)

= −1.257π x + 1, 425

3.4 Erro de Truncamento

Considere o problema (ii) na Introducao do Capıtulo. Nesse casoconhecemos a forma analıtica de f(x). Veremos que se f(x) for sufi-cientemente diferenciavel, entao podemos calcular o erro de trunca-mento na interpolacao.

Seja p(x) o polinomio interpolador de grau n criado com base em(x0, x1, . . . , xn). Definimos o erro de truncamento como:

Et(x) = f(x)− p(x)

A proposicao abaixo caracteriza Et(x). Mas sua demonstracaorequer um famoso teorema, chamado de Teorema de Rolle. Apenas

60 CAPITULO 3. INTERPOLACAO

enunciaremos esse teorema. Sua demonstracao pode ser encontradaem livros de Calculo ou em [3].

Teorema 3.3. (Rolle) Seja f : [a b] −→ R uma funcao contınuadefinida em um intervalo fechado [a b]. Se f(x) e diferenciavel nointervalo aberto (a b) e f(a) = f(b) = 0. Entao existe ξ ∈ (a b) talque f ′(ξ) = 0.

Proposicao 3.1. Seja f(x) = Et(x)+p(x), onde p(x) e o polinomiointerpolador de f(x) relativamente aos pontos (x0, x1, . . . , xn) de [a b]e f(x) seja (n + 1) vezes diferenciavel em [a b]. Entao existeξ ∈ (a b) tal que

Et(x) = (x− x0)(x− x1) · · · (x− xn)fn+1(ξ)(n + 1)!

demonstracao

Comecamos construindo uma funcao auxiliar

ϕ(x) = f(x)− p(x)− (x− x0)(x− x1) · · · (x− xn)A,

observe que ϕ(x0) = ϕ(x1) = · · · = ϕ(xn) = 0, ou seja, ϕ(x) seanula em n + 1 pontos. Tome z ∈ (a b) distinto de (x0, x1, . . . , xn)e escolhemos A tal que ϕ(z) = 0.

ϕ(x) e (n + 1) vezes diferenciavel, ja que isso ocorre com f(x) ep(x). Assim podemos aplicar o Teorema de Rolle repetidas vezes egarantir a existencia de ξ ∈ (a b) tal que:

0 = ϕn+1(ξ) = fn+1(ξ)− (n + 1)!A

donde

A =fn+1(ξ)(n + 1)!

ou

Et(z) = (z − x0)(z − x1) · · · (z − xn)fn+1(ξ)(n + 1)!

Como z foi escolhido arbitrario temos o resultado.

3.4. ERRO DE TRUNCAMENTO 61

A Proposicao 3.1 garante a existencia de ξ. Na pratica nao epossıvel encontra-lo. Para resolver isso, tomamos como fn+1(ξ) omaximo que |fn+1(x)| assume em [a b].

Uma observacao que deve ser feita, vem do fato de que o polinomiointerpolador e unico de acordo com o Teorema 3.1, entao o errode truncamento tambem e o mesmo, tanto para o polinomio deLagrange, quanto para o polinomio obtido via DDF. Neste caso opolinomio interpolador obtido por DDF (por exemplo com tres pon-tos {x0, x1, x2}) e escrito como:

p(x) = f(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x0, x1, x2]

com isto,

Et(x) = f(x)− p(x)

= f(x)− (f(x0) + (x− x0)p[x0, x1] + (x− x0)(x− x1)p[x0, x1, x2])

= (x− x0){f [x, x0]− p[x0, x1]︸ ︷︷ ︸f [x0,x1]

−(x− x0)(x− x1) p[x0, x1, x2]︸ ︷︷ ︸f [x0,x1,x2]

= (x− x0)(x− x1)(x− x2)f [x, x0, x1, x2]

Podemos generalizar para

Et(x) = (x− x0)(x− x1) · · · (x− xn)f [x, x0, x1, . . . , xn]

Comparando essa ultima equacao com a Proposicao 3.1 concluımosque:

f [x, x0, x1, . . . , xn] =fn+1(ξ)(n + 1)!

para algum ξ em (a b).

Exemplo 3.4.1. Considere a funcao f(x) = sen(x) no intervalo[0 π

2

]. Vamos obter o polinomio interpolador via metodo de La-

grange nos pontos

(x0, f(x0)) = (0, 0)(x1, f(x1)) =

(π4 ,

√2

2

)

(x2, f(x2)) =(

π2 , 1

)

62 CAPITULO 3. INTERPOLACAO

assim

p(x) =2∑

i=0

f(xi)

2∏

j=0,j 6=i

(x− xj)(xi − xj)

=

(8− 8

√2

π2

)x2+

(4√

2− 2π

)x

Verificamos facilmente que |f3(x)| assume maximo igual a 1 em[0 π

2

]. Dessa forma podemos calcular o erro de truncamento:

Et(x) = (x− x0)(x− x1)(x− x2)13!

= x(x− π

4

)(x− π

2

) 16

Como aplicacao vejamos o erro de truncamento no ponto 3π8 .

∣∣∣∣Et

(3π

8

)∣∣∣∣ = 0.30280

Por comparacao vamos calcular os valores exatos:∣∣∣∣Et

(3π

8

)∣∣∣∣ =∣∣∣∣f

(3π

8

)− p

(3π

8

)∣∣∣∣ = 0.018

Certamente o leitor deve estar se perguntando; nao teria que re-sultar o mesmo valor? A resposta e nao. Quando tomamos o maximode |f3(x)| no intervalo

[0 π

2

]estamos assumindo uma aproximacao

para o |f3(ξ)|. Portanto o erro de truncamento deve ser calculadocom bastante cuidado.

O erro de truncamento pode ser visto geometricamente na figura3.1.

3.5 Metodo de Briot-Ruffini

Consideremos um polinomio de grau n, p(x) = anxn + an−1xn−1 +

· · · + a1x + a0 em R. Veja que para calcular o valor p(c) para umc ∈ R efetuamos n(n+1)

2 multiplicacoes e n adicoes. O metodo deBriot-Ruffini propoe reduzir o numero de multiplicacoes.

Pela divisao euclidiana de p(x) por (x− c) temos:

p(x) = (x− c)Q(x) + R (3.6)

3.5. METODO DE BRIOT-RUFFINI 63

x

y

−1.75π −1.5π −1.25π −1π −0.75π −0.5π −0.25π 0 0.25π 0.5π 0.75π 1π 1.25π 1.5π 1.75π

-2

-1

0

1

2

� � �

� � � � � �

p(x)

Figura 3.1: Erro de truncamento

onde R e uma constante, ja que o grau de p(x) e n e o grau deQ(x) e n− 1.

Assim p(c) = R, ou seja, basta encontrar R. Para isso comecamosescrevendo Q(x) na forma geral:

Q(x) = bn−1xn−1 + bn−2x

n−2 + · · ·+ b1x + b0 (3.7)

e substituindo (3.7) em (3.6)

p(x) = (x− c)(bn−1xn−1 + bn−2x

n−2 + · · ·+ b1x + b0) + R= bn−1x

n + (bn−2 − cbn−1)xn−1 + (bn−3 − cbn−2)xn−2 + · · ·++(b1 − cb2)x2 + (b0 − cb1)x + (cb0 + R)

Expandindo p(x)

anxn + an−1xn−1 + · · ·+ a1x + a0

e igual a

64 CAPITULO 3. INTERPOLACAO

bn−1xn+(bn−2−cbn−1)xn−1+(bn−3−cbn−2)xn−2+· · ·+(b1−cb2)x2+(b0−cb1)x+(R−cb0)

Portanto:

bn−1 = an

bn−2 = an−1 + cbn−1

bn−3 = an−2 + cbn−2...

b0 = a1 + cb1

R = a0 + cb0

Dessa forma, R e facilmente encontrado e o numero de multi-plicacoes e igual a n.

Exemplo 3.5.1. Use o metodo de Briot-Ruffini para avaliar p(x) =x2 + 3x + 1 em c = 2

b1 = a2 = 1b0 = a1 + cb1 = 5R = a0 + cb0 = 11

Assim p(2) = 11.

3.6 Consideracoes Finais

Uma observacao importante que devemos fazer em relacao a inter-polacao e a seguinte; quanto maior o numero de pontos melhor e aaproximacao fornecida pelo polinomio interpolador. E bom lembrarque quanto mais pontos, maior e o grau do polinomio e assim maislenta e sua avaliacao, por isso e necessario a utilizacao de metodosde avaliacao polinomial tal como o metodo de Briot-Ruffini1.

1Nao e o unico.

3.7. EXERCICIOS 65

3.7 Exercıcios

3.7.1. Use interpolacao de Lagrange para determinar uma aprox-imacao de f

(π5

)sabendo que:

f(0) = 1, f(π

3

)=

12, f

2

)= 0, f

6

)=√

32

3.7.2. Seja f(x) =cos(x)

3√

x2. Calcule uma aproximacao para f

(π3

)

atraves do polinomio de Lagrange.

3.7.3. Usando interpolacao por DDF obtenha o valor aproximado def

(12

)sabendo que:

f(1) = 1, f(

32

)=

23, f(2) =

12

3.7.4. Os problemas vistos ate agora sao da forma:Dado os pontos (x0, x1, . . . , xn), onde f(x) e conhecida, pede-se

para encontrar um valor f(c) para algum c ∈ [xj xi] conhecido.Pense agora no problema inverso:Dado os pontos (x0, x1, . . . , xn), onde f(x) e conhecida, pede-se

para encontrar um valor c onde conhecemos o valor f(c). Chamamosde interpolacao inversa.

Determine o valor aproximado de c para f(c) = 0.95 usando osvalores da funcao f(x) = sen(x) (x em radianos) dados abaixo:

i 0 1 2 3xi 1.75 1.80 1.85 1.90

f(xi) 0.984 0.9738 0.9613 0.9463

3.7.5. Verifique que, se f(x) for um polinomio de grau n, entao opolinomio interpolador p(x) relativo a (x0, x1, . . . , xn) e igual a f(x).

3.7.6. Usando interpolacao inversa, determine uma aproximacaopara um zero de:

a) f(x) = x3 − 9x + 10

b) g(x) = ln(x) + 4x− 3

66 CAPITULO 3. INTERPOLACAO

3.7.7. Interpole a funcao f(x) = ex no intervalo [0 1] com 4 pontos.Calcule o erro de truncamento.

3.7.8. Mostre que f [x0, x1, x2] = f [x2, x1, x0].

3.7.9. Seja p(x) um polinomio de grau n. Mostre que e necessarion(n+1)

2 multiplicacoes e n adicoes para avaliar p(c) para c ∈ R

3.7.10. Calcule o numero de adicoes e multiplicacoes para gerar opolinomio interpolador de Lagrange em (n + 1) pontos.

3.7.11. Determina-se empiricamente o alongamento de uma molaem milımetros, em funcao da carga P kgf que sobre ela atua, obtendo-se

x 5 10 15 20 25 30 35 40 mmP 49 105 172 253 352 473 619 793 Kgf

Interpolando adequadamente por meio de polinomios de terceiro grau,encontre as cargas que produzem os seguintes alongamentos na mola:

a) 12mm

b) 22mm

c) 31mm

3.7.12. Numa rodovia federal, medindo-se a posicao de um onibusque partiu do marco zero da rodovia, obtiveram-se as seguintes marcacoes:

T(min) 60 80 100 120 140 160 180D(km) 76 95 112 138 151 170 192

Pede-se o posicionamento do onibus para os tempos de:

a) 95 min

b) 130 min

c) 170 min

3.7. EXERCICIOS 67

3.7.13. A velocidade so som na agua varia com a temperatura. Us-ando os valores da tabela abaixo, determine o valor aproximado davelocidade do som na agua a 100◦C

Temperatura (◦C) 86.0 93.3 98.9 104.4 110.0Velocidade (m/s) 1.552 1.548 1.544 1.538 1.532

68 CAPITULO 3. INTERPOLACAO

Capıtulo 4

Integracao Numerica

4.1 Introducao

A mais de 2000 anos, o calculo da area e volume de figuras geometricasintriga a curiosidade humana. Os gregos, foram talvez os primeirosa tentar calcular a area de figuras complicadas por aproximacoesnumericas, um exemplo disso e o calculo da area e comprimento docirculo pelo metodo da exaustao de Eudoxio (408-355 a.C.) Com ainvencao do Calculo por Newton(1642-1727) e Leibnitz(1646-1716),varios problemas foram resolvidos, mas tambem surgiram outros.Para integrais, temos o Teorema Fundamental do Calculo(T.F.C.),ou seja, se f(x) e uma funcao contınua no intervalo [a b], entao aarea sob o grafico de f(x) e dado por:

∫ b

af(x) dx = F (a)− F (b), onde F e a antiderivada de f(x).

Uma pergunta surge: onde o Calculo Numerico pode contribuir,uma vez que o T.F.C. parece ter resolvido tudo? Ocorre que, nemsempre podemos aplicar o T.F.C. conforme os problemas abaixo:

i- De acordo com resultados do Calculo, toda funcao contınua emum intervalo fechado possui antiderivada. Mas o calculo desta nemsempre e simples. Por exemplo:

69

70 CAPITULO 4. INTEGRACAO NUMERICA

∫ b

ae−x2

dx

ii- Como calcular a integral de uma funcao conhecendo-a apenasem um numero finito de pontos?.

Desta forma recorremos a integracao numerica1 para resolverestes e outros problemas.

Na Interpolacao polinomial aprendemos como gerar o polinomio

interpolador, ou seja, p(x) ∼= f(x). Portanto∫ b

ap(x) dx ∼=

∫ b

af(x) dx.

Nesta linha, vamos desenvolver os metodos numericos de integracao.

4.2 Regra dos Trapezios

Comecamos considerando a Interpolacao de Lagrange (veja cap. an-terior) em uma funcao f(x) conhecida apenas em (x0, f(x0)), (x1, f(x1)).Seja entao

p(x) = f(x0)x− x1

x0 − x1+ f(x1)

x− x0

x1 − x0

integrando

∫ x1

x0

p(x) dx =f(x0)

x0 − x1

∫ x1

x0

(x− x1) dx +f(x1)

x1 − x0

∫ x1

x0

(x− x0) dx

=x1 − x0

2[f(x1)− f(x0)]

Donde concluımos que∫ x1

x0

p(x) dx e exatamente a area do trapezio

conforme figura 4.1.

Se tivermos (n + 1) pontos, digamos (x0, x1, . . . , xn) igualmenteespacados, ou seja, xk = xk−1 + h,(k = 1, . . . , n), entao podemosgeneralizar (acompanhe com a figura 4.2) para:

1Tambem chamado de quadratura, devido a Arquimedes(387-212 a.C.) e oproblema da quadratura do circulo

4.2. REGRA DOS TRAPEZIOS 71

x

y

x0 x1

Figura 4.1: Area do trapezio

∫ xn

x0

p(x) dx =∫ x1

x0

p1(x) dx +∫ x2

x1

p2(x) dx + · · ·+∫ xn

xn−1

pn(x) dx

= x1−x02 [f(x1)− f(x0)] + x2−x1

2 [f(x2)− f(x1)] + · · ·+

+xn−xn−1

2 [f(xn)− f(xn−1)]

=h

2[f(x0) + 2f(x1) + · · ·+ 2f(xn−1) + f(xn)]

Com pk(x) o polinomio interpolador nos pontos (xk−1, xk),(k =1, . . . , n).

4.2.1 Erro de Truncamento

De acordo com a secao 3.4 o erro de truncamento na interpolacao e

dado por Et(x) = (x−x0)(x−x1)f ′′(ξ)

2para ξ ∈ (x0 x1). Integrando

teremos

72 CAPITULO 4. INTEGRACAO NUMERICA

x

y

x0 x2 x � � �x 1 xn...

Figura 4.2: Calculo da area por trapezios

∫ x1

x0

Et(x) dx =∫ x1

x0

(x− x0)(x− x1)f ′′(ξ)

2dx

=f ′′(ξ)(x1 − x0)3

12Assumindo x1 − x0 = h, entao o erro de integracao e dado por

EI =f ′′(ξ)h3

12

Lembre-se que, no caso geral(x0, x1, . . . , xn), temos que somartodos os erros, ou seja, o erro total sera dado por:

n−1∑

i=1

EIi , onde EIi e o erro calculado em (xi−1, xi).

Exemplo 4.2.1. Considere f(x) conhecida nos pontos

3,

√3

2

),(

6,12

).

Pela regra dos trapezios teremos:

4.3. 1a REGRA DE SIMPSON 73

∫ x1

x0

f(x) dx = (x1 − x0)[f(x1)− f(x0)]

2=

π(1 +√

3)8

∼= 1.07287

Sabendo que f(x) = sen(x) e f ′′(ξ) = max{|f ′′(x)| ; x ∈ (x0 x1)} =|f ′′(π/3)| ∼= 0.86602 calculamos o erro de integracao

EI =f ′′(ξ)(x1 − x0)3

12∼= 0.2797

Portanto∫ x1

x0

f(x) dx + EI = 1.35257

Compare este resultado com o valor fornecido pelo T.F.C.

Escolhemos f(x) = sen(x) no exemplo anterior para verificar oerro cometido. Nos problemas onde a forma analıtica de f(x) nao econhecida nao podemos calcular EI .

4.3 1a Regra de Simpson

A regra dos trapezios utiliza polinomios interpolantes de grau 1, jaque trabalha de dois em dois pontos. No caso de tres pontos, pode-mos ter uma interpolante de grau 2, ou seja, nosso erro de inter-polacao tende a ser menor. Dessa forma, se f(x) e conhecida emtres pontos (x0, x1, x2), entao o polinomio interpolador de Lagrangesera dado por:

p(x) = f(x0)(x− x1)(x− x2)

(x0 − x1)(x0 − x2)+f(x1)

(x− x0)(x− x2)(x1 − x0)(x1 − x2)

+f(x2)(x− x0)(x− x1)

(x2 − x0)(x2 − x1)

assim ∫ x2

x0

p(x) dx =h

3[f(x0) + 4f(x1) + f(x2)].

O caso geral em (n + 1) pontos e dado por:∫ x2

x0

p(x) dx =h

3[f(x0)+4f(x1)+2f(x2)+4f(x3)+2f(x4)+· · ·+2f(xn−2)+4f(xn−1)+f(xn)]

74 CAPITULO 4. INTEGRACAO NUMERICA

x

y

x0 x1 x0

� � � �p(x)

Figura 4.3: Calculo da area pela 1a regra de Simpson

A comparacao da 1a regra de Simpson com a regra dos trapeziospode ser observada nas figuras 4.3 e 4.4.

O erro de truncamento pode ser rapidamente calculado:

∫ x2

x0

Et(x) dx =∫ x1

x0

(x− x0)(x− x1)(x− x2)f3(ξ)

3!dx

=f3(ξ)h4

12

Portanto o erro de integracao na 1a regra de Simpson sera dadopor:

EI =f3(ξ)h4

12

4.3. 1a REGRA DE SIMPSON 75

x

y

x0 x1 x2

� � � �

Figura 4.4: Calculo da area por trapezios

Exemplo 4.3.1. Considere f(x) conhecida apenas em

(x0, f(x0)) = (π/3,√

3/2)(x1, f(x1)) = (5π/2, 1/2)(x2, f(x2)) = (π, 0)

Pela regra dos trapezios (observe que h = π/4) temos:∫ x2

x0

f(x) dx ∼= h

2[f(x0) + 2f(x1) + f(x2)] = 1.4655

Pela 1a regra de Simpson temos:∫ x2

x0

f(x) dx ∼= h

3[f(x0) + 4f(x1) + f(x2)] = 1.5006

Qual resultado e o melhor? Certamente o valor fornecido pela 1a re-gra deSimpson. Uma vez que o erro tende a ser menor.

Para convencer o leitor revelamos que f(x) = sen(x), e calcu-lamos o valor exato via T.F.C.∫ π

π/3sen(x) dx = 1.50

Podemos obter a 2a regra de Simpson com um processo analogono polinomio interpolador de grau 3 gerado por 4 pontos. Maisdetalhes veja exercıcio 4.5.7.

76 CAPITULO 4. INTEGRACAO NUMERICA

4.4 Quadratura Gaussiana

Nos metodos anteriores de Integracao, usamos intervalos igualmenteespacados, ou seja, xk = xk−1 +h. No metodo de Gauss estes pontosnao sao maisescolhidos, vamos definir um criterio para essa escolha.

Comecamos considerando o teorema de mudanca de variavel:

Teorema 4.1. (Mudanca de variavel) Sejam f : [a b] −→ Rcontınua,g : [c d] −→ R com derivada integravel e g([c d]) ⊂ [a b]. Entao

∫ g(d)

g(c)f(x) dx =

∫ d

cf(g(t)).g′(t) dt.

A demonstracao pode ser encontrada em [6]. Esse teorema seramuito util como veremos.

Nosso problema continua sendo tentar calcular∫ b

af(x) dx. Para

facilitar as contas vamos efetuar a seguinte mudanca de varivavel.

Seja g : [−1 1] −→ R tal que, g(t) =(

b− a

2

)t +

b + a

2, observe

que g(−1) = a e g(1) = b. Aplicando o Teorema 4.1 temos:∫ b

af(x) dx =

∫ 1

−1F (t) dt

onde

F (t) = f(g(t)).g′(t) = f

(b− a

2t +

b + a

2

)b− a

2.

Com isto concluımos que para saber o valor de∫ b

af(x) dx basta

calcular∫ 1

−1F (t) dt.

O metodo da Quadratura Gaussiana(nao demonstraremos) afirmaque: ∫ 1

−1F (t) dt =

n∑

i=0

wiF (ti)

4.4. QUADRATURA GAUSSIANA 77

onde wk sao chamados de pesos e tk pontos do intervalo [−1 1].Nosso objetivo e identificar estes pesos e pontos. Para simplificar

comecamos com n = 1, ou seja, dois pontos apenas. Dessa forma:

∫ 1

−1F (t) dt = w0F (t0) + w1F (t1) (4.1)

Para descobrir estas quatro incognitas necessitamos de um sis-tema com quatro equacoes. Uma vez que estas incognitas nao de-pendem de F (t) podemos assumir F (t) = tk,k = 0, 1, 2, 3. Ou seja,

∫ 1

−1tk dt = w0F (t0) + w1F (t1)

k = 0 =⇒ 2 =∫ 1

−1t0 dt = w0t

00 + w1t

01

k = 1 =⇒ 0 =∫ 1

−1t1 dt = w0t0 + w1t1

k = 2 =⇒ 23

=∫ 1

−1t2 dt = w0t

20 + w1t

21

k = 3 =⇒ 0 =∫ 1

−1t3 dt = w0t

30 + w1t

31

com estas equacoes geramos o sistema:

2 = w0 + w1

0 = w0t0 + w1t12/3 = w0t

20 + w1t

21

0 = w0t30 + w1t

31

Resolvendo...

w0 = w1 = 1 e t0 = −t1 = 1/√

3.

Substituindo estes valores na equacao (4.1) temos:

78 CAPITULO 4. INTEGRACAO NUMERICA

∫ 1

−1F (t) dt = F (−1/

√3) + F (1/

√3)

Com um processo analogo na forma geral

∫ 1

−1F (t) dt =

n∑

i=0

wiF (ti)

wk e tk podem ser calculados por polinomios de Legendre(veja [11]).Nao faremos essa demonstracao, mas os valores podem ser vistos natabela 4.1.

Observacao 4.1. Se F e um polinomio de ate grau 3, entao estaformula fornece o valor exato da integral. Caso contrario o erro podeser calculado pela formula abaixo:

E =2(2n+3)[(n + 1)!]4

(2n + 3)[(2n + 2)!]3F (2n+2)(ξ)

com ξ ∈ [−1 1].E bom lembrar que F (2n+2)(ξ) deve ser tomado como o maior

valor possıvel, como feito em secoes anteriores.

Exemplo 4.4.1. Calcular∫ π/2

0sen(x) dx por quadratura gaussiana

com n = 1.Comecamos fazendo a mudanca de variavel

F (t) = f

(b− a

2t +

b + a

2

)b− a

2

= sen(π

4t +

π

4

) π

4

4.4. QUADRATURA GAUSSIANA 79

n i ti wi

1 1;0 ±0.57735027 1

2 0;1 ±0.77459667 5/92 0 8/9

3 0;1 ±0.86113631 0.347854842;3 ±0.33998104 0.65214516

4 0;1 ±0.90617985 0.236926882;3 ±0.53846931 0.478628684 0 0.53888889

5 0;1 ±0.93246951 0.171324502;3 ±0.66120939 0.360761584;5 ±0.23861919 0.46791394

6 0;1 ±0.94910791 0.129484962;3 ±0.74153119 0.279705404;5 ±0.40584515 0.381830066 0 0.41795918

7 0;1 ±0.96028986 0.101228542;3 ±0.79666648 0.222381044;5 ±0.52553242 0.313706646;7 ±0.18343464 0.36268378

Tabela 4.1: Valores de wk e tk para∫ 1

−1F (t) dt =

n∑

i=0

wiF (ti)

80 CAPITULO 4. INTEGRACAO NUMERICA

dessa forma

∫ π/2

0sen(x) dx =

∫ 1

−1F (t) dt = F (−1/

√3) + F (1/

√3) = 0.9984

Compare com o valor fornecido pelo T.F.C.

Exemplo 4.4.2. Calcular∫ π/2

0sen(x) dx por quadratura gaussiana

com n = 2.De acordo com a tabela 4.1 temos

∫ 1

−1F (t) dt = w0F (t0) + w1F (t1) + w2F (t2)

=59F (0.77459667) +

59F (−0.77459667) +

89F (0)

= 1

Compare esse resultado com o valor fornecido pelo T.F.C.

Finalizamos lembrando o leitor, que este texto e apenas intro-dutorio e abrange alguns metodos de integracao numerica. Em [11]e possıvel encontrar outros metodos de integracao.

4.5 Exercıcios

4.5.1. Calcule o valor da integral∫ 1

0f(x) dx apenas sabendo que:

(x0, f(x0)) = (0, 0)(x1, f(x1)) = (1/2, 1/4)(x2, f(x2)) = (1, 1)

4.5.2. Calcule o valor da integral∫ 1

0x2 dx pela regra dos trapezios

com 4 pontos.

4.5. EXERCICIOS 81

4.5.3. Calcule pela regra dos trapezios a integral∫ 3

2

1x3

dx e o erro

cometido.

4.5.4. Calcule o valor da integral∫ π

02xsen(x2) dx com n = 3 pela

regra dos trapezios e pela 1a regra Simpson. Calcule o erro cometido.Compare com o T.F.C.

4.5.5. Calcule o valor da integral∫ 3

0senπ/2(x + 1)cos(x2) dx com

n = 4 pela regra dos trapezios e pela 1a regra Simpson.

4.5.6. Mostre que∫ xn

x0

p(x) dx =h

3[f(x0)+4f(x1)+2f(x2)+4f(x3)+2f(x4)+· · ·+2f(xn−2)+4f(xn−1)+f(xn)]

Na 1a regra de Simpson.

4.5.7. Dados os pontos (x0, x1, x2, x3) mostre que a 2a regra de Simp-son e dada por:∫ x3

x0

f(x) ∼= 38h[f(x0) + 3f(x1) + 3f(x2) + f(x3)]

e o caso geral ∫ xn

x0

f(x)

∼=38h[f(x0)+3f(x1)+3f(x2)+2f(x3)+3f(x4)+3f(x5)+2f(x6)+· · ·+3f(xn−2)+3f(xn−1)+f(xn)]

4.5.8. Atraves da 2a regra de Simpson, com n = 4 calcule a integraldo exercıcio 4.5.4.

4.5.9. Atraves da 2a regra de Simpson, com n = 6 calcule a integral∫ 3

2ln(x + 2)− 1 dx.

4.5.10. Calcule por quadratura gaussiana a integral∫ 3

−2e−x2

dx com

n = 1 e n = 2. Calcule tambem o erro.

4.5.11. Calcule por quadratura gaussiana a integral do exercıcio4.5.4.

82 CAPITULO 4. INTEGRACAO NUMERICA

Capıtulo 5

Mınimos e Maximos

5.1 Introducao

Neste capıtulo faremos uma breve introducao ao problema de en-contrar mınimos e maximos de uma funcao. Na pratica desejamosencontrar o valor mınimo ou maximo que a funcao assume num de-terminado intervalo. Esse problema tem aplicacoes imediatas nasengenharias, fısica e na propria matematica. No final, daremos umexemplo pratico.

Comecamos analisando funcoes de R em R.

Definicao 5.1. Seja f : [a b] −→ R. Dizemos que k e mınimo localse, dado δ > 0, para todo x ∈ (k − δ, k + δ) temos f(x) ≥ f(k).

A definicao de maximo local segue analogo.

Definicao 5.2. Seja f : [a b] −→ R. Dizemos que k e maximo localse, dado δ > 0, para todo x ∈ (k − δ, k + δ) temos f(x) ≤ f(k).

Observe que o δ define o carater local do mınimo ou maximo.Definimos agora o mınimo e maximo global, veja:

Definicao 5.3. Seja f : [a b] −→ R. Dizemos que k e mınimoglobal se, para todo x ∈ [a, b] temos f(x) ≥ f(k).

Definicao 5.4. Seja f : [a b] −→ R. Dizemos que k e maximoglobal se, para todo x ∈ [a, b] temos f(x) ≤ f(k).

83

84 CAPITULO 5. MINIMOS E MAXIMOS

Exemplo 5.1.1. Considere f : [a b] −→ R cujo grafico e exibidona figura 5.1. Veja que k0 e k1 sao mınimos locais. Mas podemosafirmar que k1 e mınimo global, uma vez que f(k1) < f(k0).

x

y

a b

k0 k1

� � � �

Figura 5.1: Mınimos local e global

Para encontrar mınimos/maximos podemos utilizar varias tecnicas.Se a funcao e diferenciavel no intervalo, entao podemos observar ocomportamento da derivada da funcao. Uma vez que os mınimos/maximossao pontos onde a derivada e zero.

Exemplo 5.1.2. Considere f(x) = x4− 2x3− 4x2 +2x no intervalo[−2 2], cuja derivada sera dada por f ′(x) = 4x3 − 6x2 − 8x +2. Aplicando os metodos do capıtulo de zeros de funcao podemosencontrar os zeros de f ′(x) que sao: −1, 0.2192 e 2.2808. Avaliandof(x) nesses pontos temos:

f(−1) = −3

f(0.2192 = 0.2274

f(2.2808) = −12.9149

Assim fica claro que 2.2808 e um ponto de mınimo global nointervalo [−2 2].

5.1. INTRODUCAO 85

Lembramos o leitor que, se k e um ponto de maximo ou mınimolocal, a derivada se anula em k. Mas se a derivada se anula em knao quer dizer que seja mınimo ou maximo local. Veja o exemploabaixo.

Exemplo 5.1.3. Considere f(x) = x3 com f ′(x) = 3x2. Veja quepara k = 0, f ′(k) = 0 mas k nao e ponto de mınimo nem maximo.Dizemos que k e um ponto de inflexao, veja definicao abaixo.

Definicao 5.5. Seja f(x) uma funcao diferenciavel em [a b]. Dize-mos que k e ponto de inflexao horizontal se, existe δ > 0 tal que umadas duas situacoes ocorre:

i) f(x) < f(k) para todo k − δ < x < k e f(x) > f(k) para todok < x < k + δ

ii) f(x) > f(k) para todo k− δ < x < k e f(x) < f(k) para todok < x < k + δ.

Observacao 5.1. Caso f(x) seja duas vezes diferenciavel podemosvisualizar o ponto de inflexao como o ponto onde f ′′(x) muda desinal.

Com estas definicoes nao poderıamos deixar de enunciar o

Teorema 5.1. Seja f : (a b) −→ R uma funcao n vezes difer-enciavel e cujas derivadas, f ′, f ′′, . . . , fn sejam contınuas em (a b).Seja k ∈ (a b) tal que f ′(k) = f ′′(k) = . . . = fn−1(k) = 0 efn(k) 6= 0. Entao, se n e par,

fn(k) < 0 implica que f tem maximo em k fn(k) > 0 implica

que f tem mınimo em k.

Se n e ımpar, k e um ponto de inflexao horizontal.

A demonstracao pode ser encontrada em [3].

Exemplo 5.1.4. Como aplicacao do Teorema 5.1 vamos mostrarque k = 1 e ponto de mınimo de f(x) = x3 − 3x + 1. Tome f ′(x) =3x2 − 3, f ′′(x) = 6x, f3(x) = 6, f4(x) = 0, ...,fn(x) = 0. Veja quef ′(k) = 0 e f ′′(k) = 6 > 0, assim pelo Teorema temos que k = 1 eponto de mınimo.

86 CAPITULO 5. MINIMOS E MAXIMOS

Devemos lembrar que o Teorema 5.1 tem suas limitacoes. Vejaque uma vez dado k podemos aplicar o Teorema. O grande prob-lema e encontrar k. Por isso, vamos desenvolver um metodo paraencontrar tais pontos.

Para finalizar considere tambem o

Teorema 5.2. Toda funcao contınua em um intervalo fechado possuimınimo/maximo global.

A demonstracao pode ser encontrada em [7].Deste ponto em diante trataremos apenas o caso de encontrar

mınimos de uma funcao. Uma vez que o mınimo de f(x) e o maximode −f(x).

5.2 Metodo da Secao Aurea

Seja f(x) uma funcao contınua com um unico mınimo no intervalo[a b]. O metodo da secao aurea consiste em criar uma sequencia(xn) que converge para o mınimo da funcao. A sequencia (xn) seradada por xn = an+bn

2 onde [a0 b0] ⊃ [a1 b1] ⊃ · · · [an bn] ⊃ · · ·.

Assim seja a0 = a e b0 = b.

a1 = b0 − 0.618(b0 − a0) e b1 = a0 + 0.618(b0 − a0)

Se f(a1) < f(b1), entao a2 = a1 e b2 = a1 + 0.618(b1 − a1).

Se f(a1) ≥ f(b1), entao a2 = b1 − 0.618(b1 − a1) e b2 = b1

Novamente

Se f(a2) < f(b2), entao a3 = a2 e b3 = a2 + 0.618(b2 − a2).

Se f(a2) ≥ f(b2), entao a3 = b2 − 0.618(b2 − a2) e b3 = b2.

E o processo segue ate que |xn − xn−1| seja menor que um certo δfixado como criterio de parada.

5.2. METODO DA SECAO AUREA 87

Exemplo 5.2.1. Seja f(x) = x2−2x+3. Vamos encontrar o mınimode f(x) em [−2 3] pelo metodo da secao aurea com δ = 0.06.

i ai bi xi |xi − xi−1|1 −0.09 1.09 0.52 0.3608 1.09 0.7254 0.2254 > δ3 0.6393 1.09 0.8647 0.1393 > δ4 0.8115 1.09 0.9507 0.0860 > δ5 0.9179 1.09 1.0030 0.0523 < δ ← parar o metodo

5.2.1 Convergencia no Metodo da Secao Aurea

Observe que no metodo, utilizamos os intervalos [a0 b0] ⊃ [a1 b1] ⊃· · · [an bn] ⊃ · · · com a0 ≤ a1 ≤ · · · ≤ an ≤ · · · e b0 ≥ b1 ≥ · · · ≥bn ≥ · · ·. Logo (an) e (bn) sao sequencias monotonas e limitadas.Pelo Teorema de Bolzano (veja em [3]) temos:

limn→∞ an = lim

n→∞ bn = L

o que implica emlim

n→∞xn = L.

Vamos mostrar que L e o mınimo que f(x) assume em [a b].Para isso, seja k o ponto mınimo em [a b]garantido pelo Teorema5.2. Assim f(k) ≤ f(ai) e f(k) ≤ f(bi) para i = 0, . . . ,∞, o queimplica em k ∈ [ai bi] para i = 0, . . . ,∞, ou seja, ai ≤ k ≤ bi parai = 0, . . . ,∞. Aplicando o limite nesta ultima desigualdade teremos:

limn→∞ an ≤ k lim

n→∞ bn,

ou seja,L ≤ k ≤ L

o que implica emL = k.

Observacao 5.2. O numero 0.618 e chamado de razao aurea. Queera considerado sagrado para os estudantes da escola grega pitagorica(fundada por Pitagors (586-500 a.C.)). Procure conhecer mais sobreesse famoso numero e surpreenda-se1.

1Veja mais em [4].

88 CAPITULO 5. MINIMOS E MAXIMOS

5.3 Superfıcies em R3

Para nosso estudo vamos considerar f : D ⊂ R2 −→ R, onde De um retangulo em R2. Por exemplo f(x, y) = x2 + y2 onde D =[0 1] × [1 2]. Veja que o grafico de f(x) e o paraboloide dado nafigura 5.2.

−5

0

5

−5

0

5

0

10

20

30

40

50

Figura 5.2: Paraboloide

Nosso problema agora e encontrar o mınimo global k ∈ D. Pode-mos tambem enunciar da seguinte forma: minimizar f na caixaD = [a b]× [c d].

Definicao 5.6. Seja f : D ⊂ R2 −→ R uma funcao diferenciavel.O vetor gradiente de f no ponto a sera dado por:

∇f(a) =(

∂f

∂x(a),

∂f

∂y(a)

).

Exemplo 5.3.1. Seja f(x, y) = x2 +y2. Entao ∇f(x, y) = (2x, 2y).Dessa forma o gradiente de f no ponto a = (2, 1) sera dado por∇f(2, 1) = (4, 2).

5.4. METODO DO GRADIENTE 89

Definicao 5.7. Uma superfıcie de nıvel sera dada pelo conjunto:

Sc = {(x, y) ∈ R2/ f(x, y) = c}

Podemos visualizar Sc como os pontos em D com imagem iguala c, o que geometricamente corresponde a um corte na superfıcie naaltura de c. Veja na figura 5.2 os cırculos no plano XY. Cada circulocorresponde a superfıcie de nıvel.

Proposicao 5.1. Seja f : D ⊂ Rn −→ R uma funcao diferenciavel.Entao podemos afirmar que:

i) o vetor gradiente ∇f(x) aponta para uma direcao onde f(x) ecrescente.

ii) dentre todas as direcoes ao longo das quais f(x) cresce, adirecao do gradiente ∇f(x) e a de crescimento mais rapido.

iii) o gradiente ∇f(x) e perpendicular a superfıcie de nıvel quepassa por x.

A demonstracao dessas propriedades pode ser encontrada em [7].Lembramos que, se estamos interessados no mınimo de f(x),

entao devemos tomar a direcao contraria a do gradiente, ou seja,−∇f(x) para encontrar a direcao onde f(x) mais decresce.

5.4 Metodo do Gradiente

Tendo em mente a Proposicao 5.1, vamos desenvolver um metodonumerico para localizar o mınimo de uma funcao em uma caixa D,utilizando vetor gradiente. Para isso, considere um ponto p0 qualquerem D(acompanhe com a figura 5.3). Pelo item ii a direcao −∇f(p0)tem maior decrescimento. Nosso objetivo e caminhar nesta direcaopara encontrar o mınimo de f(x). Para nos auxiliar vamos definir afuncao g0(t) = f(p0 − t∇f(p0).

Observe que a funcao g0(t) e de uma variavel. Podemos entao,aplicar o metodo da secao aurea para encontrar seu mınimo, digamosp1.

90 CAPITULO 5. MINIMOS E MAXIMOS

Repetimos o processo para p1, ou seja, definimos g1(t) = f(p1 −t∇f(p1) e encontramos seu mınimo p2.

O processo segue ate que a distancia entre pn e pn−1 seja menorque um certo δ fixado como criterio de parada, nesse caso sera dadopor ‖pi − pi−1‖. Tambem podemos utilizar como criterio de paradao proprio vetor gradiente. Nesse caso, paramos o metodo se a normado vetor gradiente em pn for menor que um certo δ.

Essa distancia pode ser calculada como a norma do vetor pn −pn−1 de acordo com a secao 1.3.2.

p0

p1

p2

p3

p4

p5

Figura 5.3: Sequencia (pn) se aproximando do mınimo de f(x)

Observacao 5.3. Lembramos que, ao aplicar o metodo da secaoaurea na funcao gn(t), devemos ter cuidado de restringir t, de talforma que, o vetor pn − t∇f(pn) permaneca em D.

Exemplo 5.4.1. Considere f : [−1 1] × [−1 1] −→ R dadapor f(x, y) = x2 + y2 (veja o grafico na figura 5.2). Escolhemosp0 = (1, 1), logo ∇f(p0) = (2, 2). Continuando temos g(t) = f(p0 −t∇f(p0)) = f((1, 1) − t(2, 2) = (1 − 2t)2 + (1 − 2t)2 = 8t2 − 8t + 2.Minimizando g(t) pelo metodo da secao aurea temos t0 = 1

2 . Calcu-lamos agora p1 = p0 − t0∇f(p0) = (1, 1) − 1

2(2, 2) = (0, 0). Observeque o metodo convergiu em apenas uma iteracao.

5.5 Bacias de atracao

Podemos dizer que cada mınimo/maximo local de uma funcao difer-enciavel possui uma bacia de atracao. Veja na figura 5.4 as varias

5.5. BACIAS DE ATRACAO 91

bacias de atracao de f . Cada bacia possui um mınimo ou um maximolocal.

0

5

10

15

20

25

0

5

10

15

20

25

−10

−8

−6

−4

−2

0

2

4

6

8

Figura 5.4: Bacias de atracao

Para sintetizar considere a

Proposicao 5.2. Se o metodo do gradiente for iniciado em um pontop0 nao situado na bacia de atracao do mınimo global; entao podemoocorrer duas situacoes:

i) o metodo gradiente converge para o mınimo local associado abacia de atracao em que estiver o ponto p0.

ii) Caso p0 nao esteja associado a nenhuma bacia de atracao,entao o metodo do gradiente nao converge.

Assim temos um problema: se a funcao possui varios mınimos/maximoslocais, como encontrar o mınimo/maximo global? A resposta e; ini-ciar o metodo do gradiente em varios pontos distintos. Dessa formatemos uma probabilidade de iniciar o metodo justamente na bacia deatracao do mınimo/maximo global. E bom lembrar que esse metodonao e muito confiavel.

92 CAPITULO 5. MINIMOS E MAXIMOS

5.6 Metodo de direcoes aleatorias

Seja f : D ⊂ R2 −→ R uma funcao apenas contınua em D. Nometodo do gradiente escolhemos a direcao do gradiente para en-contrar maximos, e a direcao contraria do gradiente para encontrarmınimos. Ja no metodo de direcoes aleatorias, a direcao de buscae aleatoria. Para construir o metodo basta voltar no metodo dogradiente e substituir ∇f(pn) por um vetor qualquer, veja:

Tome p0 qualquer em D, e v0 um vetor qualquer. Considereg0(t) = f(p0 + tv0). Aplicando o metodo da secao aurea em g0 en-contramos seu mınimo em t0. Dessa forma p1 = p0+t0v0. Novamenteescolhemos outro vetor aleatorio v1, tal que, v1 6= v0 e consideramosg1(t) = f(p1 + tv1) cujo mınimo sera t1.

O processo segue ate que ‖pn − pn−1‖ seja menor que um certoδ fixado como criterio de parada.

Observacao 5.4. Lembramos que o metodo do gradiente convergemais rapido que o metodo de direcoes aleatorias. Porem o metododo gradiente exige que a funcao seja diferenciavel em D.

Outro fato, no metodo do gradiente, se o ponto inicial p0 naoestiver em nenhuma bacia de atracao, o metodo pode nao convergir.No metodo de direcoes aleatorias isso pode nao ocorrer, uma vez queas direcoes sao escolhidas aleatoriamente.

Exemplo 5.6.1. Considere f : [−1 1] × [−1 1] −→ R dada porf(x, y) = x2 + y2 (veja o grafico na figura 5.2). Definimos comocriterio de parada δ = 0.6 .

Escolhemos p0 = (1, 1) e v0 = (1, 12). Dessa forma g0(t) = f(p0 +

tv0) = f(1 + t, 1 + 12 t) = (1 + t)2 + (1 + 1

2 t)2. Aplicando o metodo dasecao aurea, g0 tem mınimo em t0 = −5

6 . Assim p1 = p0 + t0v0 =(16 , 7

12). Escolhemos o vetor aleatorio v1 = (14 , 1), e g1(t) = 17

16 t2 +54 t + 53

144 . Onde g1 tem mınimo em t1 = −1017 , continuando p2 =

( 151 ,− 1

204). Paramos o metodo, pois ja atingimos o delta desejado.

i pi ‖pi − pi−1‖0 (1, 1) −1 (0.166, 0.583) 0.933 > δ2 (0.019, 0.0049) 0.596 < δ ←− parar o metodo.

5.7. EXERCICIOS 93

Observe que a sequencia (pn) converge para o ponto (0, 0).

5.7 Exercıcios

5.7.1. Apenas usando a derivada, calcule os pontos de maximo,mınimo e inflexao, da funcao f(x) = 16x3 − 22x − 5 no intervalo[−2 2].

5.7.2. De acordo com o Teorema 5.2, ache os pontos maximo emınimo de f(x) = x3 − 3x + 1.

5.7.3. Aplique o metodo da secao aurea para encontrar o ponto demınimo de f(x) = x2−5x+1 no intervalo [1 3]. Compare o resultadocom o fornecido pela derivada.

5.7.4. Apenas fazendo ∇f = 0, encontre o ponto de mınimo def(x, y) = 5x2 + 3y + 3x− 3y.

5.7.5.

5.7.6.

5.7.7.

94 CAPITULO 5. MINIMOS E MAXIMOS

Capıtulo 6

Introducao ao Matlab

Faremos uma introducao ao algoritmo estruturado na linguagem por-tugues, e em paralelo o Matlab.

6.1 Introducao

Toda linguagem de programacao e constituıda essencialmente porCOMANDOS e ESTRUTURAS DE CONTROLE que o computadore capaz de interpretar e executar. Os COMANDOS sao ordens bas-tante primitivas como: Ler um valor; Imprimir um valor; Somar doisvalores; Multiplicar dois valores; etc...etc...etc. As ESTRUTURASDE CONTROLE sao uma especie de comandos de nıvel mais elevado,porque elas sao utilizadas para gerenciar a execucao dos comandosmais primitivos. Por exemplo: admitamos que eu queira bater onumero 1 no teclado, e queira que o computador exiba na tela:

a) Todos os numeros inteiros de 1 a 9.; b) Os pares de 10 a 20;c) Os ımpares de 20 a 30.

Para tal, deve-se ter a seguinte sequencia de comandos e estru-turas de controle:

1 - Ler teclado (Comando: ordena o computador a armazenar namemoria o numero que eu digitar no teclado.

95

96 CAPITULO 6. INTRODUCAO AO MATLAB

2 - Repetir 9 vezes (Estrutura de controle: gerencia a repeticaodos comandos 2.1 e 2.2)

inicio

2.1 - Exibir teclado 2.2 - teclado + 1

fim

3 - Repetir 6 vezes

inicio 3.1 Exibir teclado 3.2 teclado + 2 fim

4 - teclado -1

5 - Repetir 5 vezes

inicio 5.1 - Exibir teclado 5.2 - teclado +2

fim

Os comandos e estruturas de controle que utilizamos no exem-plo acima sao apenas ilustrativos. Eles nao existem de verdade naslinguagens. Mais adiante daremos esses comandos e estruturas decontrole na linguagem Matlab.

ALGORITMOReceita de bolo e uma expressao mais apropriada a arte culinaria

e a gastronomia. A receita de bolo e uma sequencia de comandosescritos para um cozinheiro executar. A sequencia de comandos es-critos para um computador executar e chamada na verdade de AL-GORITMO. Ou seja, a sequencia de comandos e estruturas de con-trole que escrevemos anteriormente e chamada de algoritmo. Umalgoritmo e uma solucao que voce encontra para um determinadoproblema fazendo uso exclusivamente dos comandos e estruturas decontrole que a linguagem de programacao lhe oferece. Para resolver omesmo problema voce pode escrever inumeros algoritmos diferentes.Tudo vai depender do seu estado de alma no momento. Se voce

6.2. COMANDOS 97

estiver inspirado, cheio de criatividade, voce podera resolver o prob-lema como um algoritmo bem pequeno com poucas linhas. Se naofor o seu dia, o algoritmo pode ficar longo e talvez nem funcionar.

Nosso objetivo central e aprender a escrever algoritmos; ou seja,aprender a encontrar solucao para os problemas propostos fazendo ouso exclusivamente dos comandos e estruturas de controle.

6.2 Comandos

6.2.1 Comando de leitura

Ao executar um comando de Leitura o computador faz um pequenocursor ficar piscando na tela, indicando que ele, o computador, estaesperando que voce digite um numero (ou um caracter) no teclado.Assim que voce digita o numero, pressionando em seguida a teclaenter, o computador apanha (le) o numero que voce digitou e oarmazena em uma posicao na sua memoria.

Em Matlab

input

exemplo:

>>A=input(’tecle um valor para A’)

6.2.2 Comando de impressao

Este comando e utilizado quando se deseja que o computador ex-iba na tela os valores que tem armazenado em diversas posicoes namemoria. Em portugues seria Imprima(A) e o computador exibe ovalor da variavel A.

Em Matlab

disp

exemplo:

98 CAPITULO 6. INTRODUCAO AO MATLAB

>>disp(A) exibe o valor da variavel A

>>disp(’exibe este texto’) exibe uma mensagem

6.2.3 Comando de atribuicao

O comando de atribuicao e tambem chamado de COMANDO AR-ITMETICO porque e nele que definimos as expressoes aritmeticasnecessarias a resolucao de um problema qualquer. Ao executar umcomando de atribuicao, o computador armazena na variavel cujonome e mencionado a esquerda do sinal de (=) o valor da expressaoaritmetica especificada a direita do sinal de (=).

Em Matlab

=

exemplo:

>>a=5 atribui o valor 5 a variavel a

>>b=a+10 atribui a variavel b o valor de a mais 10

>>b=b+1 atribui a variavel b o valor de b mais 1

>>c=’o mundo e tao lindo’ atribui a variavel c a mensagemo mundo e tao lindo

Observacao 6.1. Lembramos que o Matlab faz distincao de maiusculase minusculas. Assim a variavel c difere da variavel C. Outro fato;nao e necessario declarar a variavel antes de atribuir qualquer valora ela.

Definicao 6.1. Uma estrutura de controle e uma especie de co-mando especial, de patente mais elevada, cujo objetivo e controlar amaneira como os comandos sao executados.

6.2. COMANDOS 99

6.2.4 Estrutura de decisao

Esta estrutura forca o computador a tomar uma decisao quanto aexecutar ou nao uma determinada sequencia de comandos. Existemna verdade duas estruturas distintas: a estrutura SE de um unicoramo, ou, de uma unica alternativa; e a estrutura SE de dois ramos,ou, de duas alternativas.

A estrutura SE de um unico ramo (ou de uma unica alternativa).

SE <COMPARACAO>

Comandos e outras estruturas

FIM SE

Podemos entender a estrutura SE da seguinte forma: Se <COMPARACAO>for verdadeira entao Comandos e outras estruturas e executado.Caso contrario, ou seja, <COMPARACAO> e falso, o computadorda um salto para logo apos o FIM SE.

A estrutura SE de dois ramos (ou de duas alternativas).

SE <COMPARACAO>

Comandos 1

SENAO

Comandos 2

FIM SE

Nessa estrutura, se a <COMPARACAO> for verdadeira entaoComandos 1 e executado e Comandos 2 nao e executado. Caso<COMPARACAO> for falso entao Comandos 2 e executado e Co-mandos 1 nao e executado. Sempre um dos dois e executado.

Em Matlab

100 CAPITULO 6. INTRODUCAO AO MATLAB

SE de um ramo SE de dois ramos

if < > if < >

Comandos Comandos 1

end else

Comandos 2

end

exemplo:

A=input(’digite um valor para A’)

B=input(’digite um valor para B’)

if A < B

disp(’A variavel A e menor que a variavel B’)

else

disp(’A variavel A e maior ou igual que a variavel B’)

end

6.2.5 Estruturas de repeticao

Estrutura PARA

Esta estrutura serve para se repetir uma determinada quantidadede vezes a execucao de um ou mais comandos. O formato geral daestrutura de repeticao PARA e dado por:

PARA i ;Passo k; DE j ATE M

Comandos e outras estruturas.

6.2. COMANDOS 101

FIM PARA

A variavel i comeca valendo j, e adicionando k ela cresce/decresceate M. Cada acrescimo da variavel i Comandos e outras estruturase executado. Caso k=1 ao final teremos (M-j+1) repeticao de Co-mandos e outras estruturas. Por exemplo:

PARA i;Passo 1; DE 1 ATE 10

Comandos e outras estruturas.

FIM PARA

Comandos e outras estruturas. E executado (10-1+1)=10 vezes.

Observacao 6.2. A variavel i,j,k e M devem necessariamente serinteiras.

Em Matlab

for i=j:k:M

Comandos e outras estruturas

end

exemplo:

for i=3:1:5

disp(’mundo’)

end

A palavra mundo e repetida 3 vezes.

Estrutura ENQUANTO

102 CAPITULO 6. INTRODUCAO AO MATLAB

O ENQUANTO e uma estrutura de repeticao que funciona maisou menos nos mesmos moldes da estrutura PARA. Ou seja, EN-QUANTO e PARA sao estruturas de repeticao que diferem entresi basicamente nos detalhes. Ambas foram projetadas para fazero computador repetir uma determinada quantidade de vezes a ex-ecucao de um bloco de comandos. O formato geral da estrutura derepeticao ENQUANTO e dado por:

ENQUANTO <COMPARACAO>

Comandos e outras estruturas

FIMENQUANTO

Enquanto a <COMPARACAO> for verdadeira Comandos e out-ras estruturas e executado. O fim da repeticao acontece quando<COMPARACAO> se torna falsa. Na fase inicial o estudante cometeum erro muito comum, ou seja, criar uma estrutura de repeticao semfim. Por exemplo:

A=5

ENQUANTO A < 10

Imprima(’mundo’)

FIMENQUANTO

Veja que a condicao (A < 10) e sempre verdadeira. O computa-dor comeca a imprimir a palavra mundo e nunca para. Por isso paraa estrutura ENQUANTO terminar deve ocorrer algo dentro do Lacoque torne a <COMPARACAO> falsa. No exemplo acima facamosuma pequena mudanca.

A=5

ENQUANTO A < 10

Imprima(’mundo’)

6.3. ITENS BASICOS DO MATLAB 103

A=A+1

FIMENQUANTO

Agora a palavra mundo e repetida apenas 5 vezes.

Em Matlab

While < >

Comandos e outras estruturas

end

exemplo:

A=5

while A < 10

disp(’mundo’)A=A+1

end

6.3 Itens Basicos do Matlab

6.3.1 Operadores relacionais

< Menor que<= Menor ou igual que> Maior que>= Maior ou igual que== Igual a∼= Diferente de

104 CAPITULO 6. INTRODUCAO AO MATLAB

6.3.2 Conectivos logicos

& E| Ou∼ NaoXor Ou excludente

6.3.3 Funcoes Pre-definidas

cos(x) Retorna ao cosseno de xsin(x) Retorna ao seno de xtan(x) Retorna a tangente de xcsc(x) Retorna a co-secante de xcot(x) Retorna a co-tangente de x∧ Potencia, exemplo: 5 ∧ 2 = 52

exp(x) Retorna a ex

log(x) Retorna ao ln(x)log10(x) Retorna a log10(x)sqrt(x) Retorna a

√x

abs(x) Valor absoluto de x ou |x|isreal(x) Verdadeiro para valores reaisfix(x) Arredondamento na direcao do zerofloor(x) Arredondamento na direcao de −∞ceil(x) Arredondamento na direcao de +∞round(x) Arredondamento para o inteiro mais proximorem(x, y) Resto da divisao de x por ymod(x, y) Resto com sinal.det(A) Determinante da matriz Ainv(A) Inversa da matriz Asize(A) Retorna a dimensao da matriz Aisprime(x) 1 se x primo, 0 se x nao e primo.primes(x) Sequencia de primos menores que xgcd(x, y) Maximo divisor comum de x e ylcm(x, y) Mınimo multiplo comum de x e ycross(v, w) Produto vetorial v × wsum(v. ∗ w) Produto interno < v,w >

6.3. ITENS BASICOS DO MATLAB 105

6.3.4 Script

Rapidamente voce vai notar que a janela do Octave nao e suficientepara escrever programas mais extensos. Por isso; sera necessario criarum Script (Roteiro). Um Script nada mais e do que uma lista decomandos e estruturas que serao executados sequencialmente. Paracriar um Script basta clicar em arquivo/novo.

Exemplo 6.3.1. Vamos criar um Script para somar o primeiros 100numeros.

soma=0;

for i=1:1:100

soma=soma+i;

end

disp(soma)

Para executar o Script basta escrever na linha de comando >>o nome do mesmo.

Lembramos que o ’;’ no final de cada atribuicao faz com que osvalores nao sejam exibidos na tela.

Exemplo 6.3.2. Facamos um Script para encontrar e imprimir omenor valor de 3 numeros.

a=input(’digite o primeiro numero’)

b=input(’digite o segundo numero’)

c=input(’digite o terceiro numero’)

if a < b

if a < cdisp(a)disp(’ e o menor valor’)

106 CAPITULO 6. INTRODUCAO AO MATLAB

elsedisp(c)disp(’ e o menor valor’)

end

else

if b < c

disp(b)disp(’ e o menor valor’)

elsedisp(c)disp(’ e o menor valor’)

end

end

Exemplo 6.3.3. Facamos um Script para ler um numero inteiropositivo N e calcular S onde:

S =11

+32

+53

+74

+ · · ·+ I

N

N=input(’digite o numero inteiro positivo N’)

S=0; I=1;

for j=1:1:N

S=S+(I/j);I=I+2;

end

disp(’o valor de S e: ’)disp(S)

6.3. ITENS BASICOS DO MATLAB 107

Exemplo 6.3.4. Facamos um Script para ler um numero inteiropositivo N > 1 e imprimir os N primeiros termos da sequencia deFibonacci.

fibo = 0 1 1 2 3 5 8 13 21 34 55 ... X Y (X+Y) ...

N=input(’digite o numero inteiro positivo N > 1’)

Disp(’A sequencia sera produzida abaixo’)

X=0; Y=1

for i=2:1:N

Z=X+YX=Y;Y=Z;

end

Veja que nesse programa nao utilizamos os comando DISP paraexibir o numero Z. Simplesmente retiramos o ponto e vırgula (;).

Exemplo 6.3.5. Facamos um Script para ler um numero inteiropositivo N > 0 e responder, se N e primo ou nao. O Script deveterminar quando o N lido for negativo.

N=input(’digite o numero inteiro positivo N > 0’)

while (N > 0)X=2;Sinal=0;while (X <= (fix(sqrt(N))))if (rem(N,X))==0

Sinal=1;endX=X+1;

endif Sinal==0

108 CAPITULO 6. INTRODUCAO AO MATLAB

disp(’Esse numero e primo’)else

disp(’Esse numero nao e primo’)endN=input(’digite o numero inteiro positivo N > 0’)

end

6.4 Vetores e Matrizes

Um vetor pode ser considerado como uma variavel multipla, ou seja,uma variavel que possui outras variaveis. Assim o vetor V=[1 0 0 5 6]e considerado um vetor de 5 posicoes. Cada elemento do vetor Vpode ser obtido por referencia a posicao. Assim V(1)=1, V(2)=0,V(3)=0, V(4)=5 e V(5)=6.

O mesmo vale para matrizes. Se M=[1 3 0; 3 3 3; 2 1 8]

temos a matriz

1 3 03 3 32 1 8

. Podemos fazer referencia da seguinte

forma: V(i,j) onde i e a linha e j a coluna. Assim V(3,2)=1, V(1,3)=0etc...

No Matlab

>> V=[1 1 0]V =

1 1 0

>> 5*Vans =

5 5 0

>> K=[2 3 5]K =

2 3 5

>> V+Kans =

3 4 5

6.4. VETORES E MATRIZES 109

>> M=[1 3 0;3 3 3;2 1 8]M =

1 3 03 3 32 1 8

>> M(1,3)ans = 0

>> M(2,3)ans = 3

>> M(2,2)ans = 3

>> c=7*M(2,2)c = 21

>> 2*Mans =

2 6 06 6 64 2 16

Nota: Nao poderıamos deixar de comentar o comando size queretorna as dimensoes de uma matriz. Se M e uma matriz qualquerentao o comando [L,C]=size(M) grava na variavel L o numero delinhas de M e na variavel C o numero de colunas. Caso M seja umvetor L e sempre igual a 1.

Exemplo 6.4.1. Vamos escrever um Script para preencher um vetorcom os numeros pares de 1 a 100.

posi=1; num=2;

while posi < 100

v(posi)=num;posi=posi+1;

110 CAPITULO 6. INTRODUCAO AO MATLAB

num=num+2;

end

disp(V)

Exemplo 6.4.2. Escreva um Script para preencher uma matriz 4×4da seguinte forma:

0 0 0 01 1 1 12 2 2 23 3 3 3

for i=1:1:4for j=1:1:4

M(i,j)=i-1;end

end

disp(M)

Exemplo 6.4.3. 3) Escreva um Script para colocar em ordem cres-cente o vetor abaixo:

V=[0 1 1 5 5 2 3 8 1]

for i=1:1:9for j=1:1:9

if v(j)¿v(j+1)aux=v(j);v(j)=v(j+1);v(j+1)=aux;

endifendfor

endfor

disp(v)

6.5. FUNCOES EM MATLAB 111

Nota: Em outras linguagens terıamos que criar um pequeno pro-grama para multiplicar duas matrizes A e B. No Matlab essa rotinaja esta pronta, desde que seja possıvel a multiplicacao. Basta efetuarA*B.

6.5 Funcoes em Matlab

Voce certamente ja utilizou algumas funcoes pre-definidas, por ex-emplo a funcao sqrt(x) que retorna a raiz quadrada de x, a funcaocos(x) que retorna ao co-seno de x e muitas outras ja descritas. Nestasecao vamos aprender a criar estas funcoes que sao tao importantespara os problemas que queremos resolver.

Uma funcao em Matlab e bem parecida com uma funcao matematica,ou seja, dado um valor x a funcao associa a um valor y. No com-putador o valor x e chamado de entrada, y de saıda e a associacaode processamento.

Assim a funcao F (x) = x2 pode ser construıda da seguinte forma:

function [F ] = F (x)

F = x2

end

Quando retornamos para a linha de comando (>>) basta aplicara funcao F (x) em um numero qualquer que teremos o quadrado dessenumero.Por exemplo:

>> F (2)ans=4

>> F (3)ans=9

Nota: Cada funcao deve ser salva com o mesmo nome do cabecalho.Outro fato; cada funcao deve ter um arquivo diferente.

112 CAPITULO 6. INTRODUCAO AO MATLAB

Exemplo 6.5.1. Vamos escrever uma funcao para receber como en-trada, um numero inteiro positivo N e tenha como saıda:

i)1 se o numero for primo.

ii) 0 se o numero nao for primo.

function [eprimo]=eprimo(N)

X=2;Sinal=1;while (X <= (fix(sqrt(N))))

if (rem(N,X))==0Sinal=0;

endX=X+1;

end

eprimo=Sinal

end

Exemplo 6.5.2. Vamos escrever uma funcao para receber dois val-ores x, y inteiros positivos e retornar ao quociente inteiro da divisaode x por y.

function [quociente]=quociente(x,y)

quociente=X − rem(x, y)

y

end

Exemplo 6.5.3. Vamos escrever uma funcao para receber um vetorV qualquer e retornar o vetor em ordem crescente.

function [cresc]=cresc(V)

[L,C]=size(V)for i=1:1:C-1

6.6. GRAFICOS BIDIMENSIONAIS 113

for j=1:1:C-1if V(j)>V(j+1)

aux=V(j);V(j)=V(j+1);V(j+1)=aux;

endend

end

cresc=V

end

6.6 Graficos Bidimensionais

O processo para criar um grafico de uma funcao f(x) e bem simplese parecido com aquele dado ensino fundamental, ou seja, criamosuma tabela de pontos com valores (x, y) e simplesmente marcamosestes pontos no plano. Veja passo a passo a construcao do grafico dafuncao f(x) = x2 no intervalo [−3 3].

1- Criamos a funcao f(x) (como feito acima em F (x) = x2)

2 - Criamos o vetor X com espacamento de 1/100 no intervalo[−3 3].

x = −3 : 0.01 : 3

3 - Nao sabemos o tamanho do vetor X por isso usaremos ofuncao pre-definida size() para descobrir o tamanho do vetor X. eassim calcular o vetor Y = f(X).

[L,C]=size(X)for i=1:C

Y = f(X(i));end

114 CAPITULO 6. INTRODUCAO AO MATLAB

4- Para tracar o grafico basta usar a funcao pre-definida plot().Essa funcao simplesmente marca no plano os pontos (X(i), Y (i)) dosvetores X e Y .

plot(X, Y ) veja o resultado a figura 6.1.

−3 −2 −1 0 1 2 3

0

1

2

3

4

5

6

7

8

9

Figura 6.1: Grafico de f(x) = x2

Modo rapido: O modo com que criamos o grafico acima, per-mite mais controle sobre o mesmo. Mas existe uma outra forma deconstruir mais rapidamente o grafico de f(x). Veja:

>> x = −3 : 0.01 : 3>> y = x.2

>> plot(x, y)

Observacao 6.3. Para saber mais sobre a funcao plot() basta digitar>> help plot1 na linha de comando. Para construir dois graficosao mesmo tempo basta utilizar o comando hold on depois de cadagrafico.

1Isso pode ser feito com qualquer funcao pre-definida

6.7. GRAFICOS TRIDIMENSIONAIS 115

6.7 Graficos Tridimensionais

O processo para construir graficos tridimensionais e bem parecidocom o bidimensional. Vamos construir o grafico de f(x, y) = x2 + y2

na caixa D = [−1 1]× [−2 3].

>> [X, Y ] = meshgrid(−1 : 0.1 : 1,−2 : 0.1 : 3);>> Z = X.∧ 2 + Y.∧ 2 Z e uma matriz, por isso, usamos X. e

Y. no calculo.>> surf(Z) Veja figura 6.2 As curvas de nıvel podem ser

05

1015

2025

0

10

20

30

40

50

600

2

4

6

8

10

Figura 6.2: Grafico de f(x, y) = x2 + y2

construıdas com a funcao contour(z). Para desenhar grafico + curvade nıvel use surfc(z)(veja figura 6.3).

05

1015

2025

0

10

20

30

40

50

600

2

4

6

8

10

Figura 6.3: Grafico+(curva de nıvel) de f(x, y) = x2 + y2

116 CAPITULO 6. INTRODUCAO AO MATLAB

6.8 Exercıcios

6.8.1. Escrever um SCRIPT que imprima em ordem decrescente osımpares entre 500 e 100.

6.8.2. Escrever um SCRIPT para ler um inteiro positivo N e dizerse N e ou nao multiplo de 7. Terminar o SCRIPT quando N fornegativo.

6.8.3. Escreva um SCRIPT para imprimir a sequencia:

1 2 3 4 -5 -6 -7 -8 9 10 11 12 -13 -14 -15 -16 17 18 19 20 ...<1500

6.8.4. Escreva um SCRIPT para imprimir a sequencia:

1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... <1500

6.8.5. Escreva um SCRIPT para imprimir a sequencia de primosmenores que 1000.

6.8.6. Escreva um SCRIPT para ler um inteiro positivo N e im-primir o valor de S onde:

S=01

+12

+13

+25

+37

+511

+813

+ . . . +F

P︸ ︷︷ ︸Ntermos

F e a sequencia de FibonacciP e a sequencia de Primos

6.8.7. Escrever uma funcao em Octave para calcular a norma de umvetor de tamanho qualquer, onde

‖V ‖ =√

x21 + x2

2 + . . . + x2n

6.8.8. Escrever uma funcao em Octave para calcular a norma deuma Matriz Aij onde,

‖Aij‖ =∑

ij

|aij |

6.8. EXERCICIOS 117

6.8.9. Crie uma funcao para dizer se um ”N”pertence ou nao asequencia abaixo:

1 2 4 7 11 16 17 19 22 26 31 32 34 37 41 46 ... 10000

6.8.10. Escreva uma funcao para calcular o modulo de uma matriznxn, onde

|A| = Max{|aij |}6.8.11. Criar o grafico da funcao f(x) = 2x2 + sen(x) no intervalo[−2 5].

6.8.12. Construa o grafico da funcao f(x, y) = sen(xy) na caixaD = [−2 2,−2 2]

118 CAPITULO 6. INTRODUCAO AO MATLAB

Capıtulo 7

Implementacao dosMetodos

Neste capıtulo vamos implementar os metodos numericos que foramestudados anteriormente. Lembramos que o pre-requisito sera ape-nas o conhecimento basico de algoritmos. Caso o leitor nao tenhafamiliaridade com o Matlab, recomendamos a leitura do Capıtulo deIntroducao ao Matlab. Nossa ordem sera:

i) Algoritmo em portugues.

ii) Algoritmo em Matlab (em forma de funcao).

iii) Quando possıvel, funcao pre-definida do Matlab.

7.1 Sistemas Lineares

Algoritmo 7.1.1. Metodo da substituicao retroativa, ou retro-substituicao.Sistema triangular superior.

119

120 CAPITULO 7. IMPLEMENTACAO DOS METODOS

Entrada : aij , i ≥ j, bi, j ≤ n (aij elementos da M. dos Coeficientes.

1 : xn = bn/a(k, k)2 : para k = n− 1 : 13 : soma = bk

4 : para j = k + 1 : n5 : soma = soma− akjxj

6 : fim para7 : xk = soma

akk

8 : fim para

Saıda : x

NO MATLAB

function [retro]=retro(A)[L,C]=size(A);n=L;m=C;x(n)=A(n,m)/A(n,n);for k=n-1:-1:1

soma=A(k,m);for j=k+1:n

soma=soma-A(k,j)*x(j);end

x(k)=soma/A(k,k);endretro=x

Nota: Veja que no Matlab, usamos a matriz ampliada do sis-tema(matriz dos coeficientes + vetor de termos independentes), as-sim trocamos os elementos bi por A(i,m).

Exemplo:

Vamos aplicar a funcao retro() no sistema

2x1 + x2 − x3 = 0x2 − x1 = −2

1/2x3 = 2

7.1. SISTEMAS LINEARES 121

>> A = [2 1 − 1 0; 0 1 − 1 − 2; 0 0 1/2 1]>> retro(A)ans =

1 0 2

Algoritmo 7.1.2. Metodo da eliminacao Gaussiana.Entrada : A = [aij ] Matriz n×m

1 : para k = 1 : n2 : se akk = 03 : para s = k + 1 : n4 : se ask 6= 05 : troque a linha s com linha k6 : fim se7 : fim para8 : fim se9 : para i = k + 1 : n10 : mik = aik/akk

11 : para j = k : m12 : aij = aij −mikakj

13 : fim para14 : fim para15 : fim para

Saıda : matriz triangularA = [aij ]

NO MATLAB

function [egauss]=egauss(A)[L,C]=size(A);

n=L;m=C;for k=1:n

if A(k,k)==0for s=k+1:n

if A(s,k) =0auxiliar=A(k,:);

122 CAPITULO 7. IMPLEMENTACAO DOS METODOS

A(k,:)=A(s,:);

A(s,:)=auxiliar;

end

end

end

for i=k+1:n

m(i,k)=A(i,k)/A(k,k);

for j=k:m

A(i,j)=A(i,j)-m(i,k)*A(k,j);

end

end

end

egauss=A

Nota: A funcao egauss() pode ser composta com a funcao retro()para resolver uma sistema n×n qualquer, ou seja, retro(egauss(A)),onde A e a matriz ampliada do sistema.

Exemplo:

Considere o sistema

2x1 + x2 − x3 = 0x1 + x2 − x1 = −14x1 − x2 − 1/2x3 = 3

>> A = [2 1 − 1 0; 1 1 − 1 − 1; 4 − 1 − 1/2 3]

>> retro(egauss(A))

ans =

1 0 2

Algoritmo 7.1.3. Metodo da eliminacao Gaussiana com pivotea-

7.1. SISTEMAS LINEARES 123

mento.Entrada : A = [aij ] Matriz n×m

1 : para k = 1 : n2 : w = |akk|3 : para s = k + 1 : n4 : se |ask| > w5 : w = |ask|, r = s6 : fim se7 : fim para8 : troque a linha s com linha k9 : para i = k + 1 : n10 : mik = aik/akk

11 : para j = k : m12 : aij = aij −mikakj

13 : fim para14 : fim para15 : fim para

Saıda : matriz triangularA = [aij ]

NO MATLAB

function [egausspiv]=egausspiv(A)[L,C]=size(A);n=L;m=C;for k=1:n

w=abs(A(k,k));for s=k+1:n

if abs(A(s,k))¿ww=abs(A(s,k));r=s;

endendfor i=k+1:n

m(i,k)=A(i,k)/A(k,k);

124 CAPITULO 7. IMPLEMENTACAO DOS METODOS

for j=k:mA(i,j)=A(i,j)-m(i,k)*A(k,j);

endend

endegausspiv=A;

Algoritmo 7.1.4. Decomposicao LU.

Entrada : An×n

1 : para i = 1 : n2 : para j = i : n

3 : uij = aij −i−1∑

k=1

mikukj

4 : para j = i + 1 : n

5 : mji =

(aji −

i−1∑

k=1

mjkukj

)/uii

6 : fim para7 : fim para8 : fim para

Saıda : matrizes L e U

NO MATLAB

function [fatlu]=fatlu(A)[L,C]=size(A); n=L;for i=1:n

for j=i:nu(i,j)=A(i,j);for k=1:i-1

u(i,j)=u(i,j)-m(i,k)*u(k,j);end

endfor j=i+1:n

7.1. SISTEMAS LINEARES 125

m(j,i)=A(j,i);

for k=1:i-1

m(j,i)=m(j,i)-m(j,k)*u(k,i);

end

u(i,j)=u(i,j)/u(i,i);

end

end

L=m U=u

Nota: Nao fizemos nesse algoritmo, mas e necessario completara diagonal principal da matriz L com 1.

Exemplo: Considere a matriz A =

1 1 21 2 30 1 5

.

>> A = [1 1 2; 1 2 3; 0 1 5]

>> fatlu(A)

L =

0 0

1 0

0 1

U =

1 1 2

0 1 1

0 0 4

Algoritmo 7.1.5. Metodo Iterativo de Jacobi.

126 CAPITULO 7. IMPLEMENTACAO DOS METODOS

Entrada : An×n, bn, x0, δ

1 : k = 12 : enquanto‖xk − xk−1‖ > δ3 : para i = 1 : n

4 : xk+1i =

1aii

bi −

n∑

j=1,j 6=i

aiixkj

5 : fim para6 : fim enquanto

Saıda : solucao aproximada xk

NO MATLAB

function [jacobi]=jacobi(A,x,delta)[L,C]=size(A);n=L;m=C;k=2;x(:,2)=1;cont=1;while norm(x(:,k)-x(:,k-1))>delta

k=k+1;if cont==1

k=k-1;cont=0;

endfor i=1:n

x(i,k)=A(i,m);for j=1:n

if j =ix(i,k)=x(i,k)-A(i,j)*x(j,k-1);

endendx(i,k)=x(i,k)/A(i,i)

end

7.1. SISTEMAS LINEARES 127

endjacobi=x;

Nota: A saıda da funcao jacobi() sera dada pelo vetor x naseguinte formatacao:

solucao → x1 x2 . . . xk

↓ ↓ ↓ ↓

x11 x2

1 . . . xk1

x12 x2

2 . . . xk2

......

......

x1n x2

n . . . xkn

Algoritmo 7.1.6. Metodo Iterativo de Gauss-Seidel

Entrada : An×n, bn, x0, δ

1 : k = 12 : enquanto‖xk − xk−1‖ > δ3 : para i = 1 : n

4 : xk+1i =

1aii

bi −

i−1∑

j=1

aijxk+1j −

n∑

j=i+1

aijxkj

5 : fim para6 : fim enquanto

Saıda : solucao aproximada xk

NO MATLAB

function [gausseidel]=gausseidel(A,x,delta)

128 CAPITULO 7. IMPLEMENTACAO DOS METODOS

[L,C]=size(A);

n=L;

m=C;

k=2;

x(:,2)=1;

cont=1;

while norm(x(:,k)-x(:,k-1))>delta

k=k+1;

if cont==1

k=k-1;

cont=0;

end

for i=1:n

x(i,k)=A(i,m);

for j=1:i-1

x(i,k)=x(i,k)-A(i,j)*x(j,k);

end

for j=i+1:n

x(i,k)=x(i,k)-A(i,j)*x(j,k-1);

end

x(i,k)=x(i,k)/A(i,i);

end

end

gausseidel=x;

Nota: A saıda da funcao gausseidel() sera dada pelo vetor x na

7.1. SISTEMAS LINEARES 129

seguinte formatacao:

solucao → x1 x2 . . . xk

↓ ↓ ↓ ↓

x11 x2

1 . . . xk1

x12 x2

2 . . . xk2

......

......

x1n x2

n . . . xkn

Exemplo:

Vamos achar a solucao do sistema{

3x1 + x2 = 42x1 + 6x2 = 8

pelo metodo

de Jacobi e em seguida pelo metodo de Gauss-Seidel com δ = 0.0001

NO MATLAB

>> A = [3 1 4; 2 6 8]

A =3 1 42 6 8

>>jacobi(A,[0 0]’,0.0001)

Columns 1 through 7

0 1.3333 0.8889 1.0370 0.9877 1.0041 0.99860 1.3333 0.8889 1.0370 0.9877 1.0041 0.9986

Columns 8 through 111.0005 0.9998 1.0001 1.00001.0005 0.9998 1.0001 1.0000

>>gausseidel(A,[0 0]’,0.0001)

130 CAPITULO 7. IMPLEMENTACAO DOS METODOS

ans0 1.3333 1.0370 1.0041 1.0005 1.0001 1.00000 0.8889 0.9877 0.9986 0.9998 1.0000 1.0000

Observe que o metodo de Jacobi retornou a solucao exata (1, 1)com δ = 0.0001 em 11 iteracoes, incluindo a solucao inicial, en-quanto o metodo de Gauss-Seidel retornou a solucao exata em 7iteracoes. Essa diferenca tende a aumentar com o tamanho do sis-tema.

7.2 Zeros de Funcao

Algoritmo 7.2.1. Metodo de Localizacao de Zeros.

Entrada : f(x), a, b, n n e o numero de subintervalos

1 : γ =|b− a|

n2 : p0 = a3 : para i = 1 : n4 : pi = pi−1 + γ5 : se f(pi)f(pi−1) ≤ 06 : armazenar o intervalo [pi−1 pi] em um vetor V7 : fim se8 : fimpara

Saıda : V etor V

NO MATLAB

function[MLZ]=MLZ(a,b,n)gama=abs(b-a)/n;p(1)=a; %trocamos p(0) por p(1)j=1;for i=2:n+1

p(i)=p(i-1)+gama;if(f(p(i))*f(p(i-1)))<=0

7.2. ZEROS DE FUNCAO 131

V(j)=p(i-1);V(j+1)=p(i);j=j+2;

endendMLZ=V;

Nota: O retorno da funcao MLZ() e dado pelos intervalos [v1 v2], [v3 v4], . . . , [vk−1 vk]onde estao os possıveis zeros de f(x). O vetor V e dado na seguinteformatacao:

MLZ = V = v1 v2 v3 v4 . . . vk−1 vk

Exemplo:Seja f(x) = x3 − 2x2 + 1 cujos zeros sao −0.6180, 1, 1.6180.

Vamos aplicar a funcao MLZ() no intervalo [−1 2] com n = 10depois com n = 500.

>> MLZ(−1, 2, 10)

ans =-0.7000 -0.4000 0.8000 1.1000 1.4000 1.7000

>> MLZ(−1, 2, 500)

ans =-0.6220 -0.6160 0.9980 1.0040 1.6160 1.6220

Veja que os zeros de f(x) estao nos intervalos [vi vi+1].

Algoritmo 7.2.2. Metodo do Meio Intervalo - MMI.

132 CAPITULO 7. IMPLEMENTACAO DOS METODOS

Entrada : f(x), a, b, δ

1 : enquanto |b− a| > δ

2 : x =a + b

23 : se f(x) = 04 : x e zero, encerrar5 : senao6 : se f(a)f(x) < 07 : b = x8 : senao9 : a = x10 : fim se11 : fim se12 : fim enquanto

Saıda : x aproximacao para o zero de f em [a b]

NO MATLAB

function[MMI]=MMI(a,b,delta)while abs(b-a)>delta

x=(a+b)/2;if f(x)==0

MMI=x;return %termina a funcao

elseif (f(a)*f(x))¡0

b=x;else

a=x;end

endendMMI=x;

7.2. ZEROS DE FUNCAO 133

De acordo com o exemplo do Algoritmo 7.2.1, temos que f(x)possui zeros em [−0.7 − 0.4], [0.8 1.1], [1.4 1.7]. Aplicando afuncao MMI() em cada intervalo com delta = 0.01 temos:

>> MMI(−0.7,−0.4, 0.01)ans =

-0.6156

>> MMI(0.8, 1.1, 0.01)ans =

0.9969

>> MMI(1.4, 1.7, 0.01)ans =

1.6156

Tente fazer com delta = 0.0001, veja que os resultados sao mel-hores.

Algoritmo 7.2.3. Metodo da Secante.

Entrada : f(x), a, b, δ

1 : se f(a)f ′′(a) > 02 : c = a, x0 = b3 : senao4 : c = b, x0 = a5 : fim se

6 : x1 = x0 − f(x0)f(x0)− f(c)

(x0 − c)

7 : n = 18 : enquanto|xn − xn−1| > δ9 : n = n + 1

10 : xn = xn−1 − f(xn−1)f(xn−1)− f(c)

(xn−1 − c)

11 : fim enquanto

Saıda : xn

134 CAPITULO 7. IMPLEMENTACAO DOS METODOS

NO MATLAB

function[secante]=secante(a,b,delta)if (f(a)*ddf(a))>0 %ddf() e a derivada segunda de f(x)

c=a;x(1)=b;

elsec=b;x(1)=a;

endx(2)=x(1)-(f(x(1))*(x(1)-c))/(f(x(1))-f(c));n=2;while abs(x(n)-x(n-1))>delta

n=n+1;x(n)=x(n-1)-(f(x(n-1))*(x(n-1)-c))/(f(x(n-1))-f(c));

endsecante=x(n);

De acordo com o exemplo do Algoritmo 7.2.1, temos que f(x)possui zeros em [−0.7 − 0.4], [0.8 1.1], [1.4 1.7]. Aplicando afuncao secante() em cada intervalo com delta = 0.01 temos:

>> secante(−0.7,−0.4, 0.01)ans =

-0.6163

>> secante(0.8, 1.1, 0.01)ans =

1.0003

>> secante(1.4, 1.7, 0.01)ans =

1.6169

Tente fazer com delta = 0.0001, veja que os resultados sao mel-hores. Compare com o MMI().

Nota: A funcao ddf() deve ser criada como a funcao f().

7.2. ZEROS DE FUNCAO 135

Algoritmo 7.2.4. Metodo de Newton.

Entrada : f(x), f ′(x), a, b, δ

1 : se f(a)f ′′(a) > 02 : x0 = a3 : senao4 : x0 = b5 : fim se

6 : x1 = x0 − f(x0)f ′(x0)

7 : n = 18 : enquanto|xn − xn−1| > δ9 : n = n + 110 : xn = xn−1 − f(xn−1)

f ′(xn−1)

11 : fim enquanto

Saıda : xn

NO MATLAB

function[newton]=newton(a,b,delta)if (f(a)*ddf(a))>0 %ddf() e a derivada segunda de f(x)

c=a;x(1)=b;

elsec=b;x(1)=a;

endx(2)=x(1)-f(x(1))/ddf(x(1));n=2;while abs(x(n)-x(n-1))>delta

n=n+1;x(n)=x(n-1)-f(x(n-1))/ddf(x(n-1));

endnewton=x(n);

Nota: A funcao ddf() deve ser criada como a funcao f().

136 CAPITULO 7. IMPLEMENTACAO DOS METODOS

Algoritmo 7.2.5. Metodo da Iteracao Linear.

Entrada : φ(x), x0, δ

1 : x1 = φ(x0)2 : n = 13 : enquanto |xn − xn−1| > δ4 : n = n + 15 : xn = φ(xn−1)6 : fim enquanto

Saıda : xn

No Matlab podemos encontrar os zeros, utilizando a funcao pre-definida fzero(′funcao′, [a b]). Por exemplo:

Desejamos encontrar o zero de f(x) = sen(x) no intervalo [1 4]

>> x = fzero(′sin(x)′, [1 4]x = 3.1416

No caso polinomial, como exemplo, considere f(x) = x2−3x+2.

>> p = [1 − 3 2] vetor que define o polinomio.

r = roots(p) calcula as raızes(zeros) do polinomio.

r =21

7.3 Interpolacao

Algoritmo 7.3.1. Avaliacao do polinomio interpolador de Lagrange.

7.3. INTERPOLACAO 137

Entrada : x,X = [x0, x1, · · · , xn], f(X) = [f(x0), f(x1), · · · , f(xn)]

1 : soma = 02 : para i = 0 : n3 : P = 14 : para j = 0 : n5 : se j 6= i

6 : P = P(x− xj)(xi − xj)

7 : fim se8 : fim para9 : soma = soma + f(xi)P10 : fim para

Saıda : soma

No Matlab podemos utilizar a funcao interp1. Veja exemplo:

>> X = [1 2 3] %vetor de pontos X.

>> fX = [1 4 9] %vetor imagem f(X)

>> interp1(X, fX, 2.5) %calcula o polinomio interpolador eavalia em 2.5

ans = 6.5

>> p = polyfit(X, fX, 2) %exibe os coeficientes do polinomiointerpolador de grau 2.

p =1.0000 0.0000 0.0000

Logo nosso polinomio interpolador sera p(x) = 1x2 +0x+0 = x2.

138 CAPITULO 7. IMPLEMENTACAO DOS METODOS

7.4 Integracao

Algoritmo 7.4.1. Integracao por trapezios.

Entrada : x0, h

1 : soma = 02 : para i = 1 : n− 13 : xi = xi−1 + h4 : soma = soma + f(xi)5 : fim para

6 : ITr =h

2[f(x0) + 2soma + f(xn)]

Saıda : ITr

No Matlab integramos com o comando trapz() que calcula a in-tegral por trapezios. Por exemplo:

Desejamos calcular∫ 2

0(x2 + 1) dx.

>> x = 0 : 0.01 : 2 faz uma particao do intervalo [0 2] comh = 0.01

>> y = x. ∧ 2 + 1 avalia a funcao no vetor x.

ITR = trapz(x, y) calcula o valor da integral.

ITR = 4.6667

Algoritmo 7.4.2. Integracao pela 1a Regra de Simpson.

7.5. OTIMIZACAO 139

Entrada : x0, h

1 : soma = 02 : para i = 1 : n− 13 : xi = xi−1 + h4 : se (i par)5 : soma = soma + 2f(xi)6 : senao7 : soma = soma + 4f(xi)8 : fim se9 : fim para

10 : IS =h

3[f(x0) + soma + f(xn)]

Saıda : IS

No Matlab utilizamos o comando quad(′f ′, a, b), onde f deve sera funcao a ser integrada no intervalo [a b]. Lembramos que nessecaso a funcao f deve ser escrita com arquivo .m. Por exemplo:

Desejamos calcular a∫ 2

0(x2 + 1) dx.

Arquivo f.m

function [f ] = f(x)f = x. ∧ 2 + 1

>> quad(′f ′, 0, 2)ans = 4.6667

7.5 Otimizacao

Algoritmo 7.5.1. Mınimo de uma funcao(de uma variavel) pelometodo da secao aurea.

140 CAPITULO 7. IMPLEMENTACAO DOS METODOS

Entrada : f(x), a, b, δ

1 : enquanto |b− a| > δ2 : xa = b− 0.618(b− a)3 : xb = a + 0.618(b− a)4 : se f(xa) < f(xb)5 : b = xb

6 : xb = a + 0.618(b− a)7 : senao8 : a = xa

8 : xa = b− 0.618(b− a)8 : fim se9 : fim enquanto

10 : I =xa + xb

2

Saıda : I

NO MATLAB

function[aurea]=aurea(a,b,delta)while abs(b-a)>delta

xa=b-0.618*(b-a);xb=a+0.618*(b-a);if f(xa)<f(xb)

b=xb;xb=a+0.618*(b-a);

elsea=xa;xa=b-0.618*(b-a);

endendI=(xa+xb)/2;aureo=I;

Considerando f(x) = sen(x), vamos encontrar o zero de f(x)em [0 2π] com δ = 0.01, aplicando a funcao que acabamos de criar

7.5. OTIMIZACAO 141

aurea(). Em seguida vamos comparar o resultado com a funcaopre-definida do Matlab fmin().

>> aurea(0, 2 ∗ pi, 0.01)ans =

4.7128

>> fmin(′sin(x)′, 0, 2 ∗ pi)ans =

4.7124Experimente δ = 0.0001.

Algoritmo 7.5.2. Mınimo de uma funcao (duas variaveis) pelometodo do gradiente.

Entrada : f(x), x0, δ

1 : k = 02 : enquanto ‖xk − xk−1‖ > δ3 : gk = ∇f(xk)4 : dk = −gk

5 : αk = mınimo por secao aurea de gk(t) = f(xk + tdk)6 : xk+1 = xk + αkdk

7 : k = k + 18 : fim enquanto

Saıda : xk

NO MATLAB

function[Mgrad]=Mgrad(x,delta)k=2;x=x’; %transforma x em um vetor colunax(:,k)=1;cont=1;while norm(x(:,k)-x(:,k-1))>delta

if cont =1k=k+1;

142 CAPITULO 7. IMPLEMENTACAO DOS METODOS

endgk=gradiente(x(:,k-1)’,0.0001);dk=-gk;ak=aurea(0,1,x(:,k-1)’,dk’,0.0001);x(:,k)=x(:,k-1)+ak*dk;cont=cont+1;

endMgrad=x(:,k)’

A funcao Mgrad() faz uso das funcoes gradiente() e aurea().Vamos conhecer essas funcoes;

gradiente(): Essa funcao calcula o gradiente da funcao f noponto x. O δ serve como grau de precisao. Lembrando que, a funcaof(x) deve serdiferenciavel.

Entrada: x, δSaıda: ∇f(x)

function[gradiente]=gradiente(x,delta)[L,C]=size(x);for i=1:C

k=x;k(i)=x(i)+delta;s(i)=((f(k)-f(x))/delta);

endgradiente=s’;

aurea(): Fizemos uma pequena modificacao(veja abaixo) no Al-goritmo ?? para adaptar ao metodo gradiente. Essa modificacao in-clui na entrada do mesmo o ponto xk e a direcao dk. Lembrandoque, estamos interessados em encontrar o mınimo da funcao gk(t) =f(xk + tdk), e nesse caso, t varia em [a b]. Dessa forma podemosdefinir manualmente a, b de tal forma que xk+ tdk nao saia da caixaonde queremos o mınimo da funcao.

function [aurea]=aurea(a,b,xk,dk,delta)while abs(b-a)>delta

7.5. OTIMIZACAO 143

xa=b-0.618*(b-a);xb=a+0.618*(b-a);if f(xk+xa*dk)<f(xk+xb*dk)

b=xb;xb=a+0.618*(b-a);

elsea=xa;xa=b-0.618*(b-a);

endendI=(xa+xb)/2;aureo=I;

Algoritmo 7.5.3. Mınimo de uma funcao (duas variaveis) por direcaoaleatoria.

Entrada : f(x), x0, δ

1 : k = 02 : enquanto ‖xk − xk−1‖ > δ4 : dk = rand(n, 1)5 : αk = mınimo por secao aurea de gk(t) = f(xk + tdk)6 : xk+1 = xk + αkdk

7 : k = k + 18 : fim enquanto

Saıda : xk

O algoritmo em Matlab para direcoes aleatorias e analogo aometodo do gradiente. Apenas modificamos a direcao dk com a funcaopre-definida do Matlab rand(2, 1) e aumentamos o intervalo da secaoaurea. Veja:

NO MATLAB

function [aleatorio]=aleatorio(x,delta)k=2;x=x’;

144 CAPITULO 7. IMPLEMENTACAO DOS METODOS

x(:,k)=1;cont=1;while norm(x(:,k)-x(:,k-1))>delta

if cont =1k=k+1;

enddk=rand(2,1);ak=aurea(-1,1,x(:,k-1)’,dk’,0.0001);x(:,k)=x(:,k-1)+ak*dk;cont=cont+1;

endaleatorio=x(:,k)’

Exemplo de aplicacao: Considere a funcao f(x1, x2) = (x1 +1)2 +(x2 +2)2. Vamos aplicar as funcoes Mgrad() e aleatorio() como ponto inicial (4, 5) e δ = 0.001. O valor k representa a numero deiteracoes em cada funcao:

>> Mgrad([4 5], 0.001)k = 3Mgrad =

-1.0000 -2.0000

>> aleatorio([4 5], 0.001)k = 60aleatorio =

-1.0027 -1.9969

Veja que o metodo do gradiente resolve com apenas 3 iteracoes,enquanto o metodo aleatorio em 60. Assim fica claro que, parafuncoes diferenciaveis o metodo do gradiente e muito melhor. Masnunca e demais lembrar que, o mesmo so pode ser aplicado emfuncoes diferenciaveis e com ponto inicial na bacia de atracao domınimo.

Tambem podemos utilizar as funcoes pre-definidas do Matlab.Assim para encontrar mınimo de uma funcao de Rn em R, utilizamosa funcao fmins(′f ′, x0). Onde f deve ser uma funcao que recebe umvetor em Rn e x0 deve ser o valor inicial. Veja:

7.6. EXERCICIOS 145

Desejamos encontrar o mınimo da funcao f : R2 −→ R dadapor f(x1, x2) = (x1 + 1)2 + (x2 + 2)2. Tomamos como ponto inicialx0 = (4, 5).

>> x = fmins(′(x(1) + 1) ∧ 2 + (x(2) + 2) ∧ 2′, [4 5]x = −1.0000 − 2.00000

7.6 Exercıcios

7.6.1. Teste os algoritmos nos exercıcios e exemplos, dos capıtulosanteriores.

7.6.2. Implemente em Matlab o metodo da Iteracao Linear.

7.6.3. Utilizando o metodo de localizacao de zeros - MLZ associadocom o metodo da Iteracao Linear encontre os 3 zeros reais de f(x) =x5 − 4x3 + x− 1 no intervalo [−3 3]. Faca o mesmo para o metododo meio intervalo MMI, Secante e Newton.

7.6.4. Implemente em Matlab o metodo de interpolacao de lagrange,cujo algoritmo foi dado. Faca uma funcao que retorne aos coefi-cientes do polinomio interpolador, compare sua funcao com a funcaopre-definida do Matlab. Dica: use sistemas lineares.

7.6.5. Implemente em Matlab os algoritmos de Integracao. Compareos resultados com as funcoes pre-definidas do Matlab.

7.6.6. Na funcao Mgrad() utilizamos a funcao aurea() com o inter-valo fixo em [0 1]. Explique por que na funcao aleatorio() utilizamosa funcao aurea() com o intervalo [−1 1].

Indice Remissivo

Aurea, metodo, 86

Algoritmo, definicao, 96Ampliada, matriz, 2Atratoras, bacias, 90

Bacias de atracao, 90Bolzano, teorema de, 30Briot-Ruffini, metodo de, 62

Cauchy, 38Cauchy, sequencia de, 27Comentarios finais Zeros de funcao,

41Complexos, sistemas lineares,

20Condicional, numero, 17Contınua, funcao, 25Convergencia no metodo da se-

cante, 33Convergencia no metodo de New-

ton, 35Convergencia, metodo de Ja-

cobi e Gauss-Seidel, 19Criterio de linhas, 19Criterio de parada, 14

DDF, 57DDF, formula geral interpolacao,

58

Decomposicao LU, 8Direcao aleatoria, 92Direto Metodo, 4Doolitle metodo, 11

Elementares, operacoes, 4Eliminacao Gaussiana, 8Erro, 17Erro de truncamento, 59

Funcao contınua, 25Funcao de Iteracao, 39Funcao de iteracao, 11Funcao, zeros de uma, 25Funcoes pre-definidas, 104

Gauss metodo, 4Gauss, metodo iterativo de, 15Gaussiana, eliminacao, 8Geometrica, solucao, 2Global, maximo, 83Global, mınimo, 83Gradiente de uma funcao, 88Grout metodo, 11

Infinitas solucoes, 3Inflexao, ponto, 85Interpolacao, 53Interpolacao de Lagrange, 54Interpolacao por DDF, 57

146

INDICE REMISSIVO 147

Inversao de matriz, 10Inversao, matriz, 10Iteracao linear, metodo da, 36Iteracao, funcao de, 11Iterativo, metodo do refinamento,

17Iterativos metodos, 11

Jacobi, metodo, 11

Linear, Sistema, 1Local, maximo, 83Local, mınimo, 83Localizacao de zeros, 41Localizacao de zeros, metodo

de, 27LU decomposicao, 8

Maximo local, 83Metodo Briot-Ruffini, 62Metodo da iteracao linear, 36,

42Metodo da Secao Aurea, 86Metodo da secante, 31, 41Metodo de Doolitle, 11Metodo de Gauss, 4Metodo de Grout, 11Metodo de Localizacao de Ze-

ros, 27Metodo de Newton, 33, 41Metodo do meio intervalo, 29,

41Metodo do Refinamento Itera-

tivo, 17Metodo iterativo de Jacobi, 11Metodo iterativo Gauss-Seidel,

15Metodos Diretos, 4

Metodos Iterativos, 11Mınimo global, 83Mınimo local, 83Matriz ampliada, 2, 4, 5Matriz dos coeficientes, 2Matriz quadrada, 2Matriz triangular inferior, 8Matriz triangular superior, 8Meio intervalo, metodo do, 29Multiplicidade de um zero, 50

Numero condicional, 17, 18Newton, convergencia no metodo

de, 35Newton, metodo, 33

Operacoes elementares, 4Otimizacao, 83

Parada, Criterio de, 14Particao, 28Pivo, 7Pivotacao parcial, 8Ponto de inflexao, 85Ponto fixo, 36

Quadrada, matriz, 2

Refinamento iterativo, metododo, 17

Resıduo, vetor, 17

Script, 105Secao aurea, 86Secante, convergencia no metodo

da, 33Secante, metodo da, 31Seidel, metodo iterativo de, 15Sequencia de Cauchy, 27

148 INDICE REMISSIVO

Sequencia monotona, 30Sistemas Complexos, 20Sistemas Lineares, 1Solucao de um sistema n × n,

3Solucao Geometrica de um sis-

tema, 2Substituicao Retroativa, 9Substituicao retroativa, 6

Teorema de Bolzano, 30Teorema de Rolle, 60Teorema de Weirstrass, 53Teorema do ponto de inflexao,

85Teorema Interpolacao de La-

grange, 54triangular matriz, 8

Vetor incognitas, 2Vetor resıduo, 17Vetor termos independentes, 2

Zeros de funcao, 25Zeros de um polinomio, 43

Referencias Bibliograficas

[1] Leonidas C. Barroso. Calculo Numerico com aplicacoes. Harbra,1987.

[2] Jose Luiz Boldrini. Algebra Linear. Ed. Harbra, 1980.

[3] Djairo Guedes de Figueiredo. Analise I. Ed. LTC, 1996.

[4] Howard. Eves. Introducao a Historia da Matematica. Ed.Polıgono, 1989.

[5] I.N. Hernstein. Topicos de Algebra. Ed. Polıgono, 1970.

[6] Elon Lajes Lima. Curso de Analise, vol.1. Ed. SBM, 1993.

[7] Elon Lajes Lima. Curso de Analise, vol.2. Ed. SBM, 1999.

[8] Elon Lajes Lima. Algebra Linear. Ed. SBM, 1980.

[9] Walter Rudin. Princıpios de Analise Matematica. Ed. Ao LivroTecnico, 1971.

[10] Francis Scheid. Analise Numerica. McGraw-Hill, 1991.

[11] Dercio Sperandio. Calculo Numerico: caracteristicas matemati-cas e computacionais dos metodos numericos. Ed. Prentice Hall,2003.

149