(Parte 1 de 8)

Universidade Federal de Uberlandia Faculdade de Matematica

Calculo Numerico

Prof. Jose Eduardo Castilho Marco de 2001

Conteudo

1.1 O MatLab3
1.1.1 Calculo na Janela de Comandos3
1.1.2 M-arquivos7
1.2 Exercıcios10

1 Introducao 1

2.1 Isolamento das Raızes1
2.2 Refinamento14
2.3 Metodo da Bisseccao14
2.3.1 Estudo da Convergencia15
2.3.2 Estimativa do Numero de Iteracoes16
2.4 Metodo Iterativo Linear (M.I.L.)17
2.4.1 Criterio de Parada19
2.5 Metodo de Newton-Raphson (M.N.R)20
2.6 Ordem de Convergencia2
2.7 Observacoes Finais24
2.8 Exercıcios25

2 Zeros de Funcoes 1

3.1 Metodos Diretos27
3.1.1 Sistema Triangular Superior28
3.1.2 Metodo de Eliminacao de Gauss29
3.1.3 Pivotamento Parcial32
3.1.4 Calculo da Matriz Inversa34
3.2 Metodos Iterativos38
3.2.1 Criterio de Convergencia40
3.2.2 Metodo Iterativo de Gauss-Jacobi40
3.2.3 Criterio das Linhas42
3.2.4 Metodo Iterativo de Gauss-Seidel4
3.2.5 Criterio de Sassenfeld45
3.3 Observacoes Finais46
3.4 Exercıcios47

CONTEUDO i

4.1 Metodo dos Mınimos Quadrados - Caso Discreto49
4.2 Metodo dos Mınimos Quadrados - Caso Contınuo53
4.3 Ajuste Nao Linear5
4.4 Observacoes Finais56
4.5 Exercıcios58

4 Ajuste de Curvas: Metodo dos Mınimos Quadrados 49

5.1 Forma de Lagrange62
5.2 Forma de Newton63
5.2.1 Construcao do Polinomio64
5.3 Estudo do Erro65
5.4 Escolha dos Pontos67
5.5 Interpolacao Inversa67
5.6 Observacoes Finais68
5.7 Exercıcios70

5 Interpolacao Polinomial 60

6.1 Regra do Trapezio72
6.2 Calculo do Erro73
6.3 Regra do Trapezio Repetida75
6.4 Regra de Simpson 1/376
6.5 Regra de Simpson Repetida78
6.6 Observacoes Finais79
6.7 Exercıcios79

6 Integracao Numerica - Formulas de Newton Cotes 72

7.1 Metodo Euler81
7.2 Metodos da Serie de Taylor83
7.3 Metodos de Runge-Kutta85
7.4 Metodos de Adans-Bashforth8
7.4.1 Metodos Explıcitos89
7.4.2 Metodos Implıcitos90
7.5 Equacoes de Ordem Superior92

Capıtulo 1 Introducao

O Calculo Numerico tem por objetivo estudar esquemas numericos (algoritmos numericos) para resolucao de problemas que podem ser representados por um modelo matematico. Um esquema e eficiente quando este apresenta solucoes dentro de uma precisao desejada com custo computacional (tempo de execucao + memoria) baixo. Os esquemas numericos nos fornecem aproximacoes para o que seria a solucao exata do problema. Os erros cometidos nesta aproximacao sao decorrentes da discretizacao do problema, ou seja passar do modelo matematico para o esquema numerico, e da forma como as maquinas representam os dados numericos.

Como exemplo de discretizacao consideremos que desejamos calcular uma aproximacao para a derivada de uma funcao f(x) num ponto x. O modelo matematico e dado por

Um esquema numerico para aproximar a derivada e dado por tomar h “pequeno” e calcular

Neste caso quanto menor for o valor de h mais preciso sera o resultado, mas em geral, este esquema nao fornecera a solucao exata.

A representacao de numeros em maquinas digitais (calculadoras, computadores, etc) e feita na forma de ponto flutuante com um numero finito de dıgito. Logo os numeros que tem representacao infinita (Ex. 1/3,pi,√ 2) sao representados de forma truncada. Com isto algumas das propriedades da aritmetica real nao valem na aritmetica computacional. Como exemplo, na aritmetica computacional temos

k=0 akN

onde estamos considerando que no primeiro somatorio para cada k fazemos ak/N e depois somamos e no segundo somatorio somamos todos os ak e o resultado da soma dividimos por

CAPITULO 1. INTRODUC AO 2

N. Do ponto de vista analıtico, as duas expressoes sao equivalentes, mas a segunda forma apresenta melhor resultado do ponto de vista computacional, pois realiza menos operacoes e comete menos erro de truncamento. Outro exemplo interessante e que em aritmetica computacional e possıvel que para um dado A exista um ε 6= 0 tal que

Analiticamente a expressao acima e verdadeira se e somente se ε = 0.

Outro fator que pode influenciar no resultado e o tipo de maquina em que estamos trabalhando. Numa calculadora simples que represente os numeros com 7 dıgito terıamos

Enquanto que calculadoras mais avancadas terıamos como resposta um falso 1, pois na realidade, internamente estas calculadoras trabalham com mais dıgito do que e apresentado no visor e antes do resultado ser apresentado este e arredondado.

Os esquemas numericos sao classificados como esquemas diretos e esquemas iterativos.

Os esquemas diretos sao aqueles que fornecem a solucao apos um numero finito de passos. Por exemplo o esquema que apresentamos para o calculo da derivada. Os esquemas iterativos sao aqueles que repetem um numero de passos ate que um criterio de parada seja satisfeito. Como exemplo considere o algoritmo que e usado para determinar a precisao de uma maquina digital

Algoritmo: Epsilon da Maquina

fim enquanto

OutPut: 2Ep

O criterio de parada e (1 + Ep) ≤ 1 e cada execucao do laco Enquanto e chamado de iteracao. Maquinas diferentes apresentarao resultados diferentes.

Um outro fator que pode influenciar nos resultados e a linguagem de programacao usada na implementacao dos algoritmos (Pascal, Fortran, C++, MatLab , etc). Diferentes linguagens podem apresentar diferentes resultados. E mesmo quando usamos uma mesma linguagem, mas compiladores diferentes (Ex. C++ da Borland e C++ da Microsoft), os resultados podem apresentar diferencas. Existem varias bibliotecas de rotinas numericas em diversas linguagens e algumas disponıveis na Internet. Um exemplo e a LIMPACK: uma colecao de rotinas em Fortran para solucao de sistemas lineares.

Para exemplificar os esquemas numericos, que estudaremos nos proximos capıtulo, usaremos o MatLab pela sua facilidade de programacao. Todo o material desta apostila e baseado nas referencias: [?] e [?].

CAPITULO 1. INTRODUC AO 3

O MatLab surgiu nos anos 1970 como um Laboratorio de Matrizes para auxiliar os cursos de Teoria Matricial, Algebra Linear e Analise Numerica. Hoje, a capacidade do MatLab se estende muito alem da manipulacao de matrizes. Ele e tanto um ambiente quanto uma linguagem de programacao, e um de seus aspectos mais poderosos e que os problemas e as solucoes sao expressos numa linguagem matematica bem familiar. Devido a sua capacidade de fazer calculos, visualizacao grafica e programacao, num ambiente de facil uso, o MatLab torna-se uma ferramenta eficiente para a compreensao tanto de topicos fundamentais quanto avancados a uma gama de disciplinas. Nosso objetivo e dar uma rapida visao dos comandos e funcoes basicas do MatLab para exemplificar os topicos do curso de Calculo Numerico. Maiores detalhes podem ser obtidos em ??.

Apesar das ultimas versoes do MatLab ter expandido sua capacidade, o elemento basico dos dados ainda e um vetor, o qual nao requer declaracao de dimensao ou tipo de variavel. O MatLab e um sistema interativo, onde os comandos podem ser executados na janela de comandos ou por programas. Estes programas sao conhecidos como m-arquivos ( ou arquivos com extensao .m) e serao discutidos posteriormente. Em primeiro lugar vamos discutir alguns comandos basicos que serao util para a manipulacao de dados na janela de comandos e nos m-arquivos.

1.1.1 Calculo na Janela de Comandos

Um calculo simples pode ser executado na janela de comandos digitando as instrucoes no prompt como voce faria numa calculadora. Por exemplo ans = o resultado e mostrado na tela como ans ( abreviatura de “answer”). Os sımbolos dos operadores aritmeticos sao dados na Tabela 1.1. As expressoes sao calculadas da esquerda para a direita, com a potenciacao tendo a maior precedencia, seguido da multiplicacao e divisao (mesma precedencia) e pela adicao e subtracao (tambem com mesma precedencia).

As Variaveis A forma de armazenar o resultado para uso posterior e pelo uso de variaveis.

EDU>> s=3+4+7+12

CAPITULO 1. INTRODUC AO 4

Tabela 1.1: Operadores Aritmeticos

Operacao Sımbolo

Adicao a + b

Multiplicacao a ∗ b

Subtracao a − b

Divisao a/b ou b\a Potenciacao ab

O nome da variavel pode consistir de no maximo 31 caracteres, iniciando sempre por um caracter alfa seguido de qualquer combinacao de caracteres do tipo alfa , numerico e underscores. Ex. resultado_da_soma_2. Ao contrario de outras linguagens, o MatLab diferencia as variaveis que usam letras minusculas e maiusculas. Isto e as variaveis Contas, contas, conTas e CoNtAs, sao consideradas como quatro variaveis diferentes. Todas as variaveis sao armazenadas internamente e podem ser usadas a qualquer momento. Para saber quais as variaveis que estao ativas utilizamos o comando who. Para eliminar a variavel conta, usamos o comando clear conta. As variaveis sao tratadas como matrizes, apesar dos escalares nao serem apresentados na notacao matricial. Um vetor linha pode ser definido como

Tambem podemos separar os elementos por vırgula. Ja um vetor coluna pode ser definido da seguinte forma

CAPITULO 1. INTRODUC AO 5

Os elementos na i-esima linha e na j-esima coluna, denotados por aij podem ser obtidos pelo comando a(i,j), por exemplo a(2,3)=7. Note que os elementos no MatLab sao indexados iniciando em 1. Em algumas situacoes necessitamos de vetores com alguma estrutura particular. Por exemplo, um vetor cujo o primeiro termo vale −2 e o ultimo vale 3 e os termos intermediarios variam um passo de 0.5. Este vetor pode ser definido pela linha de comando

EDU>> v=-2:0.5:3

(Parte 1 de 8)

Comentários