clculo num©rico - ufrgs.br .prefcio...

Download Clculo Num©rico - ufrgs.br .Prefcio Estelivrobuscaabordarost³picosdeumcursodeintrodu§£oaoclculonum©-rico

Post on 30-Sep-2018

220 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Clculo NumricoUm Livro Colaborativo

    Verso Python

    30 de julho de 2018

    Veja a pgina do projeto em:https://www.ufrgs.br/reamat

    https://www.ufrgs.br/reamat
  • Organizadores

    Dagoberto Adriano Rizzotto Justo - UFRGS

    Esequia Sauter - UFRGS

    Fabio Souto de Azevedo - UFRGS

    Leonardo Fernandes Guidi - UFRGS

    Pedro Henrique de Almeida Konzen - UFRGS

    ii

  • Colaboradores

    Este material fruto da escrita colaborativa. Veja a lista de colaboradores em:

    https://github.com/reamat/CalculoNumerico/graphs/contributors

    Para saber mais como participar, visite o site oficial do projeto:

    https://www.ufrgs.br/reamat/CalculoNumerico

    ou comece agora mesmo visitando nosso repositrio GitHub:

    https://github.com/reamat/CalculoNumerico

    iii

    https://github.com/reamat/CalculoNumerico/graphs/contributorshttps://www.ufrgs.br/reamat/CalculoNumericohttps://github.com/reamat/CalculoNumerico
  • Licena

    Este trabalho est licenciado sob a Licena Creative Commons Atribuio-CompartilhaIgual 3.0 No Adaptada. Para ver uma cpia desta licena, visitehttps://creativecommons.org/licenses/by-sa/3.0/ ou envie uma carta paraCreative Commons, PO Box 1866, Mountain View, CA 94042, USA.

    iv

    https://creativecommons.org/licenses/by-sa/3.0/
  • Nota dos organizadores

    Nosso objetivo de fomentar o desenvolvimento de materiais didticos pelacolaborao entre professores e alunos de universidades, institutos de educao edemais interessados no estudo e aplicao de clculo numrico nos mais diversosramos da cincia e tecnologia.

    Para tanto, disponibilizamos em repositrio pblico GitHub todo o cdigo-fonte dos materiais em desenvolvimento sob licena Creative Commons Atribuio-CompartilhaIgual 3.0 No Adaptada (CC-BY-SA-3.0). Ou seja, voc pode copiar,redistribuir, alterar e construir um novo material para qualquer uso, inclusivecomercial. Leia a licena para maiores informaes.

    O sucesso do projeto depende da colaborao! Participe diretamenta da escritados recursos educacionais, d sugestes ou nos avise de erros e imprecises. Todaa colaborao bem vinda. Veja mais sobre o projeto em:

    https://www.ufrgs.br/reamat/CalculoNumerico

    Desejamos-lhe timas colaboraes!

    v

    https://creativecommons.org/licenses/by-sa/3.0/https://www.ufrgs.br/reamat/CalculoNumerico
  • Prefcio

    Este livro busca abordar os tpicos de um curso de introduo ao clculo num-rico moderno oferecido a estudantes de matemtica, fsica, engenharias e outros.A nfase colocada na formulao de problemas, implementao em computadorda resoluo e interpretao de resultados. Pressupe-se que o estudante domineconhecimentos e habilidades tpicas desenvolvidas em cursos de graduao de cl-culo, lgebra linear e equaes diferenciais. Conhecimentos prvios em linguagemde computadores fortemente recomendvel, embora apenas tcnicas elementaresde programao sejam realmente necessrias.

    Nesta verso do livro, fazemos nfase na utilizao da linguagem computacionalPython para a implementao dos mtodos numricos abordados. Recomendamosao leitor ter sua disposio um computador com o interpretador Python 2.7(ou superior) e o conjunto de biblioteca SciPy instalados. No necessrio estarfamiliarizado com esta linguagem, mas recomendamos a leitura do Apndice A,no qual apresentamos uma rpida introduo a esta linguagem com nfase naquiloque mais essencial para a leitura do livro. Alternativamente, existem algumassolues em nuvem que fornecem acesso a consoles online Python. Veja, porexemplo, o CoCalc.

    Os cdigos computacionais dos mtodos numricos apresentados no livro soimplementados em uma abordagem didtica. Isto , temos o objetivo de que a im-plementao em linguagem computacional venha a auxiliar o leitor no aprendizadodas tcnicas numricas que so apresentadas no livro. Implementaes computa-cionais eficientes de tcnicas de clculo numrico podem ser obtidas na srie delivros Numerical Recipes, veja [10].

    vi

    https://www.python.org/https://www.scipy.org/https://www.python.org/https://cocalc.com
  • Sumrio

    Capa i

    Organizadores ii

    Colaboradores iii

    Licena iv

    Nota dos organizadores v

    Prefcio vi

    Sumrio xi

    1 Introduo 1

    2 Representao de nmeros e aritmtica de mquina 32.1 Sistema de numerao e mudana de base . . . . . . . . . . . . . . 32.2 Notao cientfica e notao normalizada . . . . . . . . . . . . . . . 102.3 Representao decimal finita . . . . . . . . . . . . . . . . . . . . . . 12

    2.3.1 Arredondamento de nmeros . . . . . . . . . . . . . . . . . . 122.4 Representao de nmeros em mquina . . . . . . . . . . . . . . . . 16

    2.4.1 Nmeros inteiros . . . . . . . . . . . . . . . . . . . . . . . . 162.4.2 Sistema de ponto fixo . . . . . . . . . . . . . . . . . . . . . . 182.4.3 Sistema de ponto flutuante . . . . . . . . . . . . . . . . . . . 192.4.4 Preciso e psilon de mquina . . . . . . . . . . . . . . . . . 222.4.5 Distribuio dos nmeros . . . . . . . . . . . . . . . . . . . . 22

    2.5 Tipos de erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242.6 Erros nas operaes elementares . . . . . . . . . . . . . . . . . . . . 282.7 Cancelamento catastrfico . . . . . . . . . . . . . . . . . . . . . . . 282.8 Condicionamento de um problema . . . . . . . . . . . . . . . . . . . 312.9 Exemplos selecionados de cancelamento catastrfico . . . . . . . . . 36

    vii

  • viii Clculo Numrico

    3 Soluo de equaes de uma varivel 463.1 Existncia e unicidade . . . . . . . . . . . . . . . . . . . . . . . . . 473.2 Mtodo da bisseo . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    3.2.1 Cdigo Python: mtodo da bisseo . . . . . . . . . . . . . . 533.3 Iterao de ponto fixo . . . . . . . . . . . . . . . . . . . . . . . . . 56

    3.3.1 Teorema do ponto fixo . . . . . . . . . . . . . . . . . . . . . 603.3.2 Teste de convergncia . . . . . . . . . . . . . . . . . . . . . . 633.3.3 Estabilidade e convergncia . . . . . . . . . . . . . . . . . . 643.3.4 Erro absoluto e tolerncia . . . . . . . . . . . . . . . . . . . 65

    3.4 Mtodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . 713.4.1 Interpretao geomtrica . . . . . . . . . . . . . . . . . . . . 723.4.2 Anlise de convergncia . . . . . . . . . . . . . . . . . . . . 73

    3.5 Mtodo das secantes . . . . . . . . . . . . . . . . . . . . . . . . . . 783.5.1 Interpretao geomtrica . . . . . . . . . . . . . . . . . . . . 793.5.2 Anlise de convergncia . . . . . . . . . . . . . . . . . . . . 80

    3.6 Critrios de parada . . . . . . . . . . . . . . . . . . . . . . . . . . . 843.7 Exerccios finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    4 Soluo de sistemas lineares 904.1 Eliminao gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    4.1.1 Eliminao gaussiana com pivotamento parcial . . . . . . . . 944.2 Complexidade de algoritmos em lgebra linear . . . . . . . . . . . . 994.3 Sistemas triangulares . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.4 Fatorao LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    4.4.1 Cdigo Python: Fatorao LU . . . . . . . . . . . . . . . . . 1054.4.2 Custo computacional para resolver um sistema linear usando

    fatorao LU . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.4.3 Custo para resolver m sistemas lineares . . . . . . . . . . . . 1064.4.4 Custo para calcular a matriz inversa de A . . . . . . . . . . 106

    4.5 Mtodo da matriz tridiagonal . . . . . . . . . . . . . . . . . . . . . 1074.6 Condicionamento de sistemas lineares . . . . . . . . . . . . . . . . . 114

    4.6.1 Norma de vetores . . . . . . . . . . . . . . . . . . . . . . . . 1154.6.2 Norma de matrizes . . . . . . . . . . . . . . . . . . . . . . . 1164.6.3 Nmero de condicionamento . . . . . . . . . . . . . . . . . . 117

    4.7 Mtodos iterativos para sistemas lineares . . . . . . . . . . . . . . . 1204.7.1 Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . 1204.7.2 Mtodo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . 1234.7.3 Anlise de convergncia . . . . . . . . . . . . . . . . . . . . 125

    4.8 Clculo de autovalores e autovetores . . . . . . . . . . . . . . . . . 1344.8.1 Mtodo da potncia . . . . . . . . . . . . . . . . . . . . . . . 1344.8.2 Mtodo da iterao inversa . . . . . . . . . . . . . . . . . . . 138

    Licena CC-BY-SA-3.0. Contato: reamat@ufrgs.br

    https://creativecommons.org/licenses/by-sa/3.0/reamat@ufrgs.br
  • SUMRIO ix

    4.9 Exerccios finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    5 Soluo de sistemas de equaes no lineares 1435.1 Mtodo de Newton para sistemas . . . . . . . . . . . . . . . . . . . 146

    5.1.1 Cdigo Python: Newton para Sistemas . . . . . . . . . . . . 1495.2 Linearizao de uma funo de vrias variveis . . . . . . . . . . . . 157

    5.2.1 Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1575.2.2 Matriz jacobiana . . . . . . . . . . . . . . . . . . . . . . . . 159

    6 Interpolao 1626.1 Interpolao polinomial . . . . . . . . . . . . . . . . . . . . . . . . . 1636.2 Diferenas divididas de Newton . . . . . . . . . . . . . . . . . . . . 1686.3 Polinmios de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . 1716.4 Aproximao de funes reais por polinmios interpoladores . . . . 1726.5 Interpolao linear segmentada . . . . . . . . . . . . . . . . . . . . 1756.6 Interpolao cbica segmentada - spline . . . . . . . . . . . . . . . . 177

    6.6.1 Spline natural . . . . . . . . . . . . . . . . . . . . . . . . . . 1796.6.2 Spline fixado . . . . . . . . . . . . . . . . . . . . . . . . . . 1816.6.3 Spline not-a-knot . . . . . . . . . . . . . . . . . . . . . . . . 1826.6.4 Spline peridico . . . . . . . . . . . . . . . . . . . . . . . . . 183

    7 Ajuste de curvas 1857.1 Ajuste de uma reta . . . . . . . . . . . . . . . . . . . . . . . . . . .

View more