Sumário. 1 ALGORITMOS BÁSICOS 2 1.1 PrecisãodeMáquina... 2 1.2 AlgorítmosBásicos... 3



Documentos relacionados
Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Análise de Arredondamento em Ponto Flutuante

Resolução de sistemas lineares

Universidade Federal de São João Del Rei - UFSJ

Aula 2 - Cálculo Numérico

Notas de Cálculo Numérico

Eduardo Camponogara. DAS-5103: Cálculo Numérico para Controle e Automação. Departamento de Automação e Sistemas Universidade Federal de Santa Catarina

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Capítulo 3 - Sistemas de Equações Lineares

Exercícios 1. Determinar x de modo que a matriz

Representação de números em máquinas

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Capítulo 3 - Sistemas de Equações Lineares

Exercícios Teóricos Resolvidos

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Capítulo 1 - Erros e Aritmética Computacional

2. Representação Numérica

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Problemas de Valor Inicial para Equações Diferenciais Ordinárias

ANÁLISE NUMÉRICA DEC /97

Métodos Numéricos. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho aivaz@dps.uminho.

Unidade II - Sistemas de Equações Lineares

QUESTÕES COMENTADAS E RESOLVIDAS

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

CCI-22 CCI-22. 2) Erros de arredondamento. Matemática Computacional

Aritmética de Ponto Flutuante

Unidade 5: Sistemas de Representação

Universidade Federal de São Carlos Departamento de Matemática Curso de Cálculo Numérico - Turma E Resolução da Primeira Prova - 16/04/2008

Sistemas de Numeração

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta

Lista 1 para a P2. Operações com subespaços

Métodos Numéricos. Turma CI-202-X. Josiney de Souza.

Álgebra Linear. André Arbex Hallack Frederico Sercio Feitosa

INSTITUTO TECNOLÓGICO

Aula 2 Sistemas de Numeração (Revisão)

por séries de potências

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Organização e Arquitetura de Computadores I

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Notas sobre a Fórmula de Taylor e o estudo de extremos

Exercícios Adicionais

Capítulo 5: Aplicações da Derivada

Matemática Computacional - Exercícios

Sistema de equações lineares

Faculdade Sagrada Família

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

Álgebra. SeM MiSTéRio

Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Teoria de Erros

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Equações Diferenciais Ordinárias

[ \ x Recordemos o caso mais simples de um VLVWHPD de duas HTXDo}HVOLQHDUHV nas duas LQFyJQLWDV [ e \.

Cálculo numérico. ln 1 = 0. Representação numérica. Exemplo. Exemplos. Professor Walter Cunha. ln 1. I s

Potenciação no Conjunto dos Números Inteiros - Z

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

PP 301 Engenharia de Reservatórios I 11/05/2011

FACULDADE DE CIÊNCIA E TECNOLOGIA. Cursos de Engenharia. Prof. Álvaro Fernandes Serafim

Sistema de ponto flutuante

ALGORITMOS E FLUXOGRAMAS

Discussão de Sistemas Teorema de Rouché Capelli

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição Teste Chi-Quadrado

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

Distribuição de probabilidades

TÉCNICAS DE PROGRAMAÇÃO

1. Os métodos Não-Paramétricos podem ser aplicados a uma ampla diversidade de situações, porque não exigem populações distribuídas normalmente.

Truques e Dicas. = 7 30 Para multiplicar fracções basta multiplicar os numeradores e os denominadores: 2 30 = 12 5

Algoritmos DCC 119. Introdução e Conceitos Básicos

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

MD Sequências e Indução Matemática 1

Representando Instruções no Computador

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão.

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

a 1 x a n x n = b,

O MÉTODO HÚNGARO PARA RESOLUÇÃO DE PROBLEMAS DE OTIMIZAÇÃO

Eventos independentes

CAPÍTULO 2. Grafos e Redes

Aula 1: Introdução à Probabilidade

Aula 4 Estatística Conceitos básicos

ESPAÇOS MUNIDOS DE PRODUTO INTERNO

O comportamento conjunto de duas variáveis quantitativas pode ser observado por meio de um gráfico, denominado diagrama de dispersão.

Introdução ao estudo de equações diferenciais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Estatística II Antonio Roque Aula 9. Testes de Hipóteses

UFV Universidade Federal de Viçosa DMA Departamento de Matemática MAT 138 Noções de Álgebra Linear

Equações Diferenciais Ordinárias

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

esse determinante se anula. Tomemos a matriz ampliada do sistema, com a 2 :

Noções Básicas Sobre Erros

Gráficos de funções em calculadoras e com lápis e papel (*)

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Matemática Básica Função Logarítmica

R é o conjunto dos reais; f : A B, significa que f é definida no conjunto A (domínio - domain) e assume valores em B (contradomínio range).

Sistemas lineares. Ricardo Biloti 2S/2015. Cálculo Numérico UNICAMP.

Transcrição:

CÁLCULO NUMÉRICO Prof. Dr Rogério de Aguiar Departamento de Matemática CCT-UDESC-JOINVILLE Email: dma2ra@joinville.udesc.br Home Page: www2.joinville.udesc.br/ ~dma2ra/ Joinville, 16 de Fevereiro de 2009

Sumário 1 ALGORITMOS BÁSICOS 2 1.1 PrecisãodeMáquina... 2 1.2 AlgorítmosBásicos... 3 2 ERROS 8 2.1 Sistemasde Numeração... 8 2.2 Aritmética de Ponto flutuante... 10 2.3 RepresentaçãoBinária... 11 2.4 TiposdeErros... 13 2. CálculodoErro... 13 3 SISTEMAS LINEARES 1 3.1 Introdução... 1 3.1.1 SistemasLineares... 1 3.1.2 Normas... 17 3.2 TiposdeAlgorítmos... 19 3.2.1 MétodoDireto... 19 3.2.2 MétodoIterativo... 19 3.2.3 TiposdeErroscomputacionaisnosalgorítmos... 19 3.2.4 EtapasdaResoluçãodeumsistemaLinear... 19 3.3 EstruturadosAlgoritmosCalculadores... 20 3.4 MétododeEliminaçãodeGauss... 22 3.4.1 Introdução... 22 3.4.2 AlgoritmobásicodeGauss... 24 3.4.3 EstratégiadePivotamento... 2 3.4.4 AlgoritmodeGausscompivotamento... 26 3.4. Coondicionamentodeumsistema... 28 3.4.6 Estabilidade e Exatidão... 29 3.4.7 Método de Eliminação de Gauss com Pivotamento e Refinamento... 29 3. MétodosIterativos... 31 3..1 CritériodeLinhas... 36 3..2 CritériodeSassenfeld... 40 1

Capítulo 1 ALGORITMOS BÁSICOS 1.1 Precisão de Máquina PRECISÃO DE MÁQUINA 1) Exercícios: a) Execute o somatório: S = 30000 X para x i =0. e x i =0.11, usando computador ( ou calculadora) e a linguagem de sua preferência b) Escreva e xecute um programa na linguagem de sua preferência para obter à n! X D = 10000 x i) para n = 100000 e x =0.1 ii) para n = 80000 e x =0.12 Queconclusõesvocepodetirar? Precisão de máquina: A precisão de máquina é definida como sendo o menor número positivo em aritmética de ponto flutuante,, tal que (1 + ) > 1. Este número depende totalmente do sistema de representação da máquina: base numérica, total de dígitos na mantissa, forma como são realizadas as operações e do compilador utilizado. É importante conheceros a precisção de máquina porque em vários algoritmos precisamos fornecer como dado de entrada um valor positivo, próximo de zero para ser usado em testes de comparação com zero. O algoritmo a seguir estima a precisão de máquina: Passo 1 A =1 i=1 x i i=1 2

s =1+A Passo 2 A = A/2 s =1+A Passo 3 Faça prec = A 2 Imprima prec i) Teste este algoritmo usando uma linguagem de sua escolha ( ou matlab). Declare as variáveis do programa em precisão simples e execute o programa; em seguida declare as variáveis em precisão dupla e execute novamente o programa. Compare os valores obtidos com o valor obtido ao se dar o comando eps no Matlab ii) Interprete o passo 3 do algoritmo, isto é, por que a aproximação para prec é escolhida como sendo o dobro do último valor de A obtido no passo 2? 1.2 Algorítmos Básicos 1) Produto escalar de dois vetores Dados v e w vetores do R n, o produto interno c = v t w éobtidoatravés do algorítmo c =0 for i =1:n c = c + v(i) w(i) end Exercicio: Escreva um algoritmo para realizar uma operação do tipo : ax + y, denominada saxpy (alpha x plus y) onde α R,x,y R. 2) Produto de matriz por vetor O produto entre uma matriz A m n por um vetor v n 1 (w = A v) pode ser realizado por linhas ou por colunas: i) Versão linhas for i =1:m s =0 for j =1:n s = s + A(i, j) v(j) end w(i) =s end ii) Versão colunas for j =1:n for i =1:m end w(i) =w(i)+a(i, j) v(j) 3

end Exercicio: Estude os dois algoritmos e verifique a diferença entre eles. Faça um programa para cada uma das versões acima e efetue o produto de uma matriz de ordem 200 0 por um vetor de ordem 0 1. Efetue a soma das coordenadas do vetor resultante e imprima o resultado. 3) Produto de matrizes Considere as matrizes A m p e B p n. Dois possíveis algoritmos para obter o produto C = A B são: i) for i =1:m for j =1:n s =0 for k =1:p s = s + A(i, k) B(k, j) end C(i, j) =s end end ii) for j =1:n for k =1:r for end end end Exercicio: i =1:m C(i, j) =C(i, j)+a(i, k) B(k, j) Estude os dois algoritmos e verifique a diferença entre eles. Faça um programa para cada uma das versões acima e efetue o produto de uma matriz de ordem 100 0 por uma matriz de ordem 0 100. Efetue a soma dos elementos da diagonal principal e imprima o resultado. 4) Solução de sistema linear para matriz triangular Freqüentemente necessitamos resolver sistemas lineares onde a matriz dos coeficientes é uma matriz triangular superior ou inferior. Abaixo fornecemos alguns algorítmos para resolução de sistemas triangulares: 4.1) Sistema triangular inferior - Substituição direta Considere o sistema triangular inferior a 11 x 1 = b 1 a 21 x 1 + a 22 x 2 = b 2... a n1 x 1 + a n2 x 2 +... + a nn x n = b n Algorítmo i) Versão linhas for i =1:n (ídice das linhas) s =0 for k =1:(i 1) s = s + a(i, k) x(k) 4

end x(i) = (b(i) s) a(i,i) ii) Versão coluna for j =1:n (índice das colunas) x(j) = b(j) a(j,j) for i = j + 1:n (índice das equações) b(i) =b(i) a(i, j) x(j) end end Podemos obter a solução x em cima do vetor b, ouseja,nofinal a solução do sistema é o próprio vetor b, evitandoquesecrieumnovovetorx. iii) Versão coluna com solução em b for j =1:n (índice das colunas) b(j) = b(j) a(j,j) for i = j + 1:n (índice das equações) b(i) =b(i) a(i, j) x(j) end end 4.2) Sistema triangular superior - Retrossubstituição Considere o sistema triangular superior a 11 x 1 + a 12 x 2 + a 13 x 3 +... + a 1n x n = b 1 a 22 x 2 + a 23 x 3 +... + a 2n x n = b 2..... a nn x n = b n i) Algoritmo 1 x n = b(n) a(n,n) for k = n 1:1 s =0 for j = k +1:n s = s + a(k, j) x(j) end x(k) = b(k) s a(k,k) end ii) Algoritmo 2 x n = b(n) a(n,n) for k = n 1:1

x(k) =b(k) for j = k +1:n end x(k) = x(k) a(k,k) x(k) =x(k) a(k, i) x(i) end Estude os dois algorítmos e responda: Qual dos dois algorítmos é mais eficiente? Porquê? Implemente o mais eficiente dos dois algorítmos e resolva o seguinte sistema triangular superior: Ax = y com A =[a ij ] 0 0 onde a(i, j) =i 2 2 j i e y(i) = i, i =1, 2,..., 0. Imprima o vetor solução. ) Matriz Banda: Dizemos que A mxn é uma matriz banda superior com amplitude p se a ij =0para j i>pe banda inferior com amplitude q se a ij =0para i j>q. Exercício: Escreva dois algorítmos (versão linha e versão coluna) para obter oprodutoav, onde A mxn é matriz banda conforme definiçao acima e v nx1. O algoritmo deve ser escrito de modo a tirar proveito da estrutura especial da matriz A. 6) Matriz tridiagonal: Dizemos que A nxn é matriz tridiagonal se a ij =0 para i j > 1. Exercício: Escreva dois algoritmos (versão linha e versão coluna) para obter o produto Av, onde A nxn é matriz tridiagonal e v nx1. O algoritmo deve ser escrito de modo a tirar proveito da estrutura especial da matriz A. 7) Cálculo de exp(x): O objetivo é calcular o valor de e x pela fórmula de taylor até ordem n em torno de zero: exp(x) = 1+x + x2 2! + x3 3! + x4 xn +... + 4! n! Exercício: Escreva um programa em uma linguagem de sua escolha para obter a aproximação para exp(x) usando a fórmula de Taylor. O valor de x e o número de termos da série, n, são dados de entrada deste programa. Calcule exp(x) para vários de valores de x, inclusive valores negativos. Use valores de acima de 100, tente para n=120,10,170,200 8) Cálculo do valor numérico de um polinômio: em muitos problemas numériocos necessita-se calcular o valor numérico de um polinômio avaliado em um ponto x. Considere o polinômio p n (x) =a n x n + a n 1 x n 1 +... + a 2 x 2 + a 1 x + a 0 (a n 6=0) 6

4 Para simplificar, estudaremso o processo analisando um polinômio de grau p 4 (x) =a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 (a 4 6=0) i) uma maneira de calcular o valor de p 4 (c) é usarmos diretamente a expressão de p 4, ou seja p 4 (c) =a 4 c 4 + a 3 c 3 + a 2 c 2 + a 1 c + a 0 (a 4 6=0) ii) outra maneira de calcular o valor de p 4 (c) é reescrevermos o polinômio de outra forma: p 4 (x) =(((a 4 x + a 3 ) x + a 2 ) x + a 1 ) x + a 0 conhecida como forma dos paeênteses encaixados. Deve-se observar que o processo ii) utiliza um número de operações bem menor que o processo i) Vamos estabeler o algorítmo para calcular o valor de p 4 (c) pelo processo ii): = a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 (a 4 6=0) Para calcular o valor de p 4 (x) em x = c, basta fazer sucessivamente: b 4 = a 4 b 3 = a 3 + b 4 c b 2 = a 2 + b 3 c b 1 = a 1 + b 2 c b 0 = a 0 + b 1 c Portanto p 4 (c) =b 0. Exercícios 1) Escreva uma algoritmo para calcular o valor de p n (c) onde c, n, x i (i = 0,..,n),são dados de entrada. Faça um programa e o execute para algun polinômio de ordem maior ou igual que 6 2) Escreva um algoritmo para calcular o valor de p 0 n(c). 7

Capítulo 2 ERROS Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto discreto, ou seja não é possível representar em uma máquina todos os números de um dado intervalo [a, b]. A implicação imediata desse fato é que o resultado de uma simples operação aritmética ou o cálculo de uma função, realizadas com esses números, podem conter erros. A menos que medidas apropriadas sejam tomadas, essas imprecisões causadas, por exemplo, por simplificaçãoo no modelo matemático (algumas vezes necessárias para se obter um modelo matemático solúvel); erro de truncamento (troca de uma série infinita por uma finita); erro de arredondamento (devido a própria estrutura da máquina); erro nos dados (dados imprecisos obtidos de experimentos, ou arredondados na entrada); etc, podem diminuir e algumas vezes destruir, a precisão dos resultados, mesmo em precisão dupla. Assim,nossoobjetivoaquiseráodealertaroleitorparaosproblemasque possam surgir durante a resoluçãoo de um problema, bem como dar subsídios para evitá-los e para uma melhor interpretação dos resultados obtidos. 2.1 Sistemas de Numeração Em princípio, a representaçãoo de um número inteiro no computador não apresenta qualquer dificuldade. Qualquer computador trabalha internamente com uma base fixa β, onde β éuminteiro,β 2. Assim dado um número N 6= 0, ele possui uma única representação da forma N = ±(a n a n 1...a 2 a 1 a 0,a 1 a 2...a n ) β onde a ±i {dígitos}. Podemos escrever N na base β na forma polinomial N = ±(a n β n +a n 1 β n 1 +...+a 2 β 2 +a 1 β 1 +a 0 β 2,a 1 β 1 +a 2 β 2 +...+a n β n ) 8

Sistema Binário β =2 Dígitos = {0, 1} Sistema Octal β =8 Dígitos = {0, 1, 2, 3, 4,, 6, 7} Sistema Decimal β =10 Dígitos = {0, 1, 2, 3, 4,, 6, 7, 8, 9} Sistema Duodecimal β =12 Dígitos = {0, 1, 2, 3, 4,, 6, 7, 8, 9,A,B} Sistema Hexadecimal β =16 Dígitos = {0, 1, 2, 3, 4,, 6, 7, 8, 9,A,B,C,D,E,F} Exemplos: ConversãodeBase2parabase10 (0001) 2 =0 2 3 +0 2 2 +0 2 1 +1 2 0 =(1) 10 (1000) 2 =1 2 3 +0 2 2 +0 2 1 +0 2 0 =(8) 10 (10, 1) 2 =1 2 1 +0 2 0 +1 2 1 =2+0+0. =(2.) 10 (11) 2 =1 2 1 +1 2 0 =(2) 10 (1, 111) 2 =1 2 0 +1 2 1 +1 2 2 +1 2 3 =(1.87) 10 Conversão de Base 10 para base 2 - Método da Divisão - Números Inteiros (N) 10 =(1r n 1...r 3 r 2 r 1 ) 2 Exemplos: (18) 10 = (10010) 2 18 2 =9,r 1 =0 9 2 =4,r 2 =1 4 2 =2,r 3 =0 2 2 =1,r 4 =0 Método da Multiplicação - Números Fracionários 2 N = N 1 2 bn 1 c = N 2 2 bn 2 c = N 3. 2 bn n c = I (ondeiéumnúmerointeiroebn i c éapartefracionáriaden i ) 9

(N) 10 =(0, [N 1 ][N 2 ][N 2 ]...I), onde [N i ] éaparteinteiraden i. Exemplo: (0, 187) 10 =(0, 0011) 2 0, 187 0, 37 0, 370 0, 7 0, 7 1, (0, 6) 10 =0, 100110011001... 0, 6 1, 2 0, 2 0, 4 0, 4 0, 8 0, 8 1, 6 0, 1, 00 0, 6 1, 2 0, 2 0, 4... Se o número é formado de parte inteira e fracionária, faz-se a conversão da parte inteira pélo método da multiplicação e separadamente da parte fracionária pelo método da multiplicação, depois junta-se a duas partes. Exemplo; (1, 16) 10 = 1111, 0010100011110101110000101000111101011100. Parte inteira (1) 10 = (1111) 2 1 2 =7,r 1 =1 7 2 =3,r 2 =1 3 2 =1,r 3 =1 Parte Fracionária (0, 16) 10 =0, 0010100011110101110000101000111101011100... 0, 16 0, 32 0, 96 1, 92 0, 76 1, 2 0, 32 0, 64 0, 92 1, 84 0, 2 1, 04 0, 64 1, 28 0, 84 1, 68 0, 04 0, 08 0, 28 0, 6 0, 68 1, 36 0, 08 0, 16 0, 36 0, 72... 0, 6 1, 12 0, 72 1, 44 0, 12 0, 24 0, 44 0, 88 0, 24 0, 48 0, 88 1, 76 0, 48 0, 96 Observe que a dízima 00101000111101011100 se repete 2.2 Aritmética de Ponto flutuante Usuarios Humanos : Trabalham e pensam em sistema de base 10 Computador: Efetua armazenamento e operações aritméticas no sistema de base 2 Representação em ponto flutuante N = ±0.d 1 d 2...d t β e 10

onde d i = dígitos da mantissa 0 d i β 1, d i 6=0(Sistema normalizado) β =base e = expoente, e [ M,M] Exemplo β =10 t =3 e [, ] N = ±0.d 1 d 2 d 3 10 e (d 1 6=0) Menor número representado neste sistema n = 0.100 10 N = 0.999 10 Neste caso Número maior que 99900 provoca overflow Número menor que 10 6 provoca underflow O valor mínimo (em valor absoluto) que é possível representar no sistema de ponto flutuante é designado por underflow O valor máximo (em valor absoluto) que é possível representar no sistema de ponto flutuante é designado por overflow No decorrer da execução de um algoritmo se o overflow ocorre verifica-se um erro fatal responsável pelo fim precipitado da execução Não confundir underflow com precisão de máquina ( maq ), embora ambos sejam pequenos, a precisão máquina depende do número de dígitos na mantissa enquanto que o underflow é determinado pelo número de dígitos no campo do expoente (e) Num sistema de ponto flutuante temos 0 < underflow < maq < overflow 2.3 Representação Binária Os computadores modernos utilizam apenas o sistema binário, isto é, todas as informações armazenadas ou processadas no computador usam apenas DUAS grandezas, representadas pelos algarismos 0 e 1. Essa decisão de projeto devese à maior facilidade de representação interna no computador, que é obtida através de dois diferentes níveis de tensão. Havendo apenas dois algarismos, portanto dígitos binários, o elemento mínimo de informação nos computadores foi apelidado de bit (uma contração do inglês binary digit). Armazenamento no computador 11

O armazenamento de números no computador é feito armazenando-se o número no sistema binário. Portanto o computador armazena e efetua cálculo no sistema de base dois (β =2). O armazenamento de cada dígito é chamado BIT (binary digit). 1BYTE=8bits Exemplo: Computador de 32 Bits ( 4 BYTES) Para cada número existem 32 posições disponiveis que devem armazenar um sequência de zeros e ums Para o sinal temos: BIT =0, sinal positivo (+) BIT=1, sinal negativo (-) Exemplo: Máquina de Calcular β =2 d i {0, 1} t =10 10 Dez dígitos na mantissa M =1 exp [ 1, 1] (em base10) exp [ 1111, 1111] (Em base 2) Representação interna de um número nessa calculadora Exemplo: (2) 10 = (11001) 2 =0, 11001 2 =0, 11001 2 101 Maior valor representado nesta calculadora 0, 1111111111 2 1111 = (32736) 10 12

Menor valor representado nesta calculadora 0, 1111111111 2 1111 = (32736) 10 2.4 Tipos de Erros ERROS INERENTES: os erros inerentes aparecem na criação ou simplificação de um modelo matemático de determinado sistema, ou ainda nas medidas em geral ERROS DE DISCRETIZAÇÃO: Os erros de discretização, ou aproximação, ou truncamento são os erros cometidos quando se substitui qualquer processo infinito por um processo finito ou discreto. Exemplo: e = X n=0 Exercicio: a) Calcule o valor de pela série acima usando 3,10,0 e 1000 termos da série b) Obtenha o valor de e através de algum programa ( ou calculadora), considere este valor de e como sendo exato e calcule os erros relativo e absoluto em relação aos obtidos pelo seu programa ERROS DE ARREDONDAMENTO: Surgem quando trabalhamos com máquinas digitais para representar os números reais. Em geral trabalha-se com arredondamento para o número de ponto flutuante mais próximo ou com arredondamento por falta 2. Cálculo do Erro Erro Absoluto: é a diferença entre o valor exato de um número x edeseuvalor aproximado x E A = x x Erro Relativo: O erro relativo é definido como sendo o erro absoluto dividido pelo valor aproximado E R = E A x = x x x O Erro relativo indica um percentual de erro Exemplo: Tomando π (3.14, 3.1) como sendo aproximação de π temos E A = π π < 0.01 Exemplo: Seja x = 2112, 9 aproximação de um número x tal que E Ax < 0.1, ou seja, x (2112.8, 2113) Seja y representado por y =.3 tal que E Ay < 0.1, ou seja, y (.2,.4). Observe que os erros absolutos têm o mesmo limitante superior. Podemos dizer que têm a mesma precisão? Calculando o erro relativo 1 n! 13

E Rx = E Ax < 0.1 x 2112.9 = 4.7 10 E Ry = E Ay y < 0.1.3 = 0.02 Logo o valor de x é representado com maior precisão que o número y. Vamos estudar três tipos de erros: 14

Capítulo 3 SISTEMAS LINEARES 3.1 Introdução Trataremos agora de resolver sistemas lineares, que por simplicidade chamaremos apenas SELAS, usando métodos numéricos de fácil implementação computacional. Não nos preocuparemos com o formalismo excessivo por tratar-se de um curso básico e qualquer aprofundamento teórico será remetido a bibliografia conveniente. Todo o nosso desenvolvimento será voltado à resolução de sistemas de ordem n x n, ou seja, a matriz A dos coeficientes é uma matriz quadrada, pois o caso geral onde A é de ordem m x n pode ser reduzido ao caso n x n Os métodos numéricos para resolução de sistemas de equações visam obter uma solução do sistema, mesmo que este tenha infinitas soluções, e sendo assim só nos interessará sistemas que possuam solução. Os sistemas que não possuem solução podem ser identificados através dos métodos numéricos mas nenhuma ênfase será dado a este caso. Vamos ocupar-nos com duas classes gerais de algoritmos para resolução do sistema Ax = y, onde A M(n, n)) ex, y são vetores de dimensão n, reaisou complexos. 3.1.1 Sistemas Lineares Uma equação linear é uma equação da forma a 1 x 1 + a 2 x 2 + a 3 x 3 +... + a n x n = b na qual a 1,a 2,a 3,..., a n são os respectivos coeficientes das variáveies x 1,x 2,x 3,..., x n e b é o termo independente. Os números a 1,a 2,a 3,..., a n e o termo independente b geralmente são números conhecidos e as variáveis x 1,x 2,x 3,..., x n são as incógnitas. Os valores das variáveis que transformam uma equação linear em uma identidade, isto é, que satisfazem a equação, constituem sua solução. Esses valores 1

são denominados raízes das equações lineares. A um conjunto de equações lineares se dá o nome de sistema de equações lineares e tem a seguinte representação: a 11 x 1 + a 12 x 2 + a 13 x 3 +... + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 +... + a 2n x n = b 2...... a m1 x 1 + a m2 x 2 + a m3 x 3 +... + a mn x n = b m Os valores das variáveis que transformam simultaneamente as equações de um sistema de equações lineares em uma identidade, isto é, que satisfazem cada equação do sistema constituem sua solução. Diz-se que dois sistemas de equações lineares são equivalentes quando admitem a mesma solução. Exemplo 1 Os sistemas 2x +3y =11 x + y = 3 e 10x 2y =38 3x +y = 7 são equivalentes pois possuem as mesmas soluções, x =4e y =1 Quanto as soluções, três casos podem ocorrer: 1) O sistema possui uma única solução. Neste caso dizemos que os sistema é compatível e determinado 2) O sistema possui infinitas soluções. Neste caso dizemos que o sistema é compatível e indeterminado. 3) O sistema não possui nenhuma solução. Neste caso dizemos que o sistema é incompatível. Os algoritmos desenvolvidos para sistemas lineares são feitos para sistemas de orden n n, ou seja, para sistermas onde a matriz dos coeficientes é quadrada. Se o sistema não for quadrado teremos dois casos: Sistermas Sobredeterminados: Neste caso o sistema possui um número de equações maior que o número de varáveis, ou seja, a matriz dos coeficientes é m n com m > n.para resolver numericamente este tipo de sistema devemos escolher n equações deste sistema e resolver o sistema n n correspondente. Obtida a solução, sibstituimos a solução encontrada nas m n equações restantes, se a solução encontrada satisfizer as m n equações, a solução encontrada é de fato a solução do sistema m n. Se a solução encontrada não satisfizer as m n equações restantes o sistema será incompatível ( não possuirá solução) Sistemas Subdeterminados: Neste caso o sistema possui um número de equações menor que o número de varáveis, ou seja, a matriz dos coeficientes é m n com m<n.um sistema deste tipo terá infinitas soluções ou será incompatível. Para resolver numericamente este tipo de sistema devemos escolher n m variáveis do sistema e atribuir valores a estas variáveis ( na prática 16

esta atribuição irá depender do problema prático que se deve resolver) e resolver numericamente o sistema n n resultante. A solução do sistema m n será a solução encontrada numericamente junto com os valores atribuidos às variáveis. 3.1.2 Normas Definição 2 Uma norma ( ou norma vetorial) em R n éumafunçãoquepara cada x R n associa um número real kxk, chamado norma de x, talqueas seguintes propriedades são satisfeitas para todo x, y R n e α R i) kxk > 0 se x 6= 0 e kxk =0seesomentesex =0 (positiva definida) ii) kαxk = α kxk (homogeneidade absoluta) iii) kx + yk kxk + kyk (desigualdade triangular) Exemplos de normas: Seja x R n 1) Norma Euclidiana kxk 2 = Ã n X i=1 x i 2! 1 2 =(x T x) 1 2 A discitância entre dois vetores x e y pertencentes a R n é dada por: v ux d(x, y) =kx yk 2 = t n x i y i 2 Teorema 3 (DesigualdadedeCauchy-Shwartz)Paratodox, y R n : i=1 i=1 i=1 Ã nx n! 1 X Ã! 2 n 1 2 X x i y x i i 2 y i 2 ou em termos produto escalar e normas: i=1 2) Norma um 3) Norma infinito x y kxk 2 kyk 2 nx kxk 1 = x i i=1 kxk = max x i 1 i n 4) Norma p: Para qualquer número real p 1 17

kxk p = à n X i=1 x i p! 1 p Exercício: Faça o gráfico do conjunto de pontos x do plano cartesiano R 2 que satisfazem: a) kxk p =1, para p =1, 3, 2, 4,, 6, 7, 8 e b) kxk =1 Definição 4 Uma norma ( ou norma matricial) em R n x éumafunçãoque para cada A R n n associaumnúmerorealkak, chamado norma de A, tal queasseguintespropriedadessãosatisfeitasparatodox, y R n e α R i) kak > 0 se x 6= 0 e kak =0seesomenteseA = 0 (positiva definida) ii) kαak = α kak (homogeneidade absoluta) iii) ka + Bk kak + kbk (desigualdade triangular) iv) kabk kakkbk Exemplos de normas matriciais: 1) Norma de Frobenius 1 2 nx nx kak F = 2) 3) 4) para p =2anorma é chamada norma espectral. Observação Defina kak 1 = kak = a 2 ij i=1 j=1 max 1 j n max 1 i n à X n! a ij i=1 nx a ij j=1 kaxk p kak P =max x 6= 0 kxk p kaxk kak 2 =max 2 x 6= 0 kxk 2 kak max = max a ij 1 i, j n Claramente esta função satisfaz as propriedades i),ii),iii) da norma matricial mas não satisfaz a propriedade iv, portanto esta função não é uma norma matricial. Mostre atavés de um exemplo que esta função não satisfaz a propriedade iv) da norma matricial. 18

3.2 Tipos de Algorítmos 3.2.1 Método Direto Um método é dito direto quando a solução exata x é obtida realizando-se um número finito de operações aritméticas em R. O algoritmos diretos servem para implementar computacionalmente os métodos diretos. Exemplo: Método de Cramer, Método de Eliminação de Gauss 3.2.2 Método Iterativo Um método é dito iterativo ( iteratio vem do grego e quer dizer repetição) quando a solução x é obtida como limite de uma seqüência de aproximações sucessivas x 1,x 2, x 3,..., x n,... Exemplo: Método de Gauss Seidel Método de Jacobi 3.2.3 Tipos de Erros computacionais nos algorítmos Algoritmos Diretos Nos algoritmos diretos e erro total é dado pôr E total = Erro de Entrada + Erro de aritmética Neste caso o E total é devido ao ERRO DE ARREDONDAMENTO. Algoritmos Iterativos Tal como nos algoritmos diretos, nos algoritmos iterativos também cometemos erros de entrada e os erros de aritmética. Há ainda nos métodos iterativos o erro de discretização, ou seja, vamos truncar (cortar) a seqüência infinita (unknown char)x i ý após n iterações. Assim o erro total é dado pôr: E total = Erro de arredondamento + erro de truncamento 3.2.4 Etapas da Resolução de um sistema Linear As etapas que devem ser seguidas para resolução de um SELA são: 1) Descomplexificação 2) Estruturação 3) Cálculo Descomplexificação Seja o sistema Ax = y com A e y de componentes complexos. Fazemos A = A 0 + ia 00 onde i 2 = 1, A 0 e A 00 tem componentes reais. Fazemos também x = x 0 +x 00 e y = y 0 + y 00,ondex 0, x 00,y 0 e y 00 tem componentes reais. Dai o sistema descomplexificado fica em forma matricial da seguinte maneira: 19

A0 A 00 x0 00 y0 00 A 00 A 0 = x y que é um sistema de 2nx2n com componentes reais Exemplo. Seja o sistema complexo: 6i 2+2i x1 = 2+2i 3+i x 2 2 6 2 x 0 1 2 3 2 1 x 0 2 6 2 2 2 1 2 3 x 00 1 x 00 2 1 0 1 = 0 0 0 Exercício. Descomplexifique os sistemas: a) 1 2i i x1 i = i 0 x 2 1 1 2 i 2 0 i x 1 x 2 = 2 i i 1 i 0 1 i +1 3.3 Estrutura dos Algoritmos Calculadores x 3 Veremos agora a estrutura dos algoritmos direto e iterativo. A estrutura que apresentaremos para o método direto é a estrutura do método de eliminação degausseaestruturadométodoiterativoseráaestruturadosmétodode Gauss-Jacobi e Gauss-Seidel. a) Método direto sem refinamento 20

b) Método direto com refinamento b) Método iterativo 21

Figura 3.1: 3.4 Método de Eliminação de Gauss 3.4.1 Introdução O método direto mais conhecido e mais usado para resolução de SELA denso de porte pequeno a médio é o método de eliminação de Gauss. Pôr sistemas de pequeno porte entende-se uma ordem até 30 e para médio porte podemos ter sistemas de ordem até 0. Vamos considerar o sistema Ax = y onde A R nxn e x, y R n. Vamos calcular a solução de Ax = y em duas etapas: 1) Triangularização. Consiste em transformar a matriz A numa matriz triangular superior mediante um número finito de operações elementares linha. As operações consideradas serão as seguintes: a) L i L j, permutação das linhas L i el j b) L i kl i, substituição da linha L i pela linha kl i onde k R c) L i L i + kl j, substituição da linha L i pela linha L i mais a linha kl j Computacionalmente usaremos somente a operação c) na forma L i L i + ml j onde m será chamado de multiplicador e a linha L j será chamada linha de apoio. O elemento da linha de apoio que está na diagonal será chamado de pivô. 2) Retrossubstituição Consiste no cálculo das componentes de x, solução de Ax = y, a partir da solução imediata do último componente de x e então substituirmos regressivamente nas equações anteriores. Exemplo. 22

Seja o sistema 3x 1 +2x 2 + x 4 = 3 9x 1 +8x 2 3x 3 +4x 4 = 6 6x 1 +4x 2 8x 3 = 16 3x 1 8x 2 +3x 3 4x 4 = 18 Neste caso temos 3 2 0 1 3 A = 9 8 3 4 6 4 8 0 e y = 6 16 3 8 3 4 18 Considere agora a matriz ampliada do sistema 3 2 0 1 3 9 8 3 4 6 6 4 8 0 16 3 8 3 4 18 Transformaremos agora matriz A em uma matriz triangular superior sendo que as operações que serão usadas para modificar a matriz A serão aplicadas em toda a matriz ampliada. Nosso objetivo final será obter uma matriz ampliada na forma: b 11 b 12 b 13 b 14 z 1 0 b 22 b 23 b 24 z 2 0 0 b 33 b 34 z 3 0 0 0 b 44 z 4 Para chegarmos a uma matriz nesta forma faremos a triangulação zerando os elementos da coluna que estão abaixo do pivô, sendo assim num primeiro passo transformaremos os elemento a 21,a 31,a 41 em zero. Num segundo passo transformaremos os elementos a 32, a 42 em zero e assim por diante até obtermos nossa matriz triangularizada. Continuando nosso exemplo temos então que nesse primeiro passo a linha de apoio será a linha L 1 eopivôseráoelementoa 11 =3: 3 2 0 1 3 L 2 L 2 + 9 3 L 1 0 2 3 1 3 L 3 L 3 + ( 6) 3 L 1 0 8 8 2 10 L 4 L 4 + 3 3 L 1 0 10 3 1 Observe que o multiplicador não é escolhido aleatoriamente e sim calculado para cada elemento que esta sendo zerado, temos então que para anular o elemento a 12 o multiplicador é calculado da forma m 12 = a 12 /pivôenestecaso m 12 = 9/3. Para o elemento a 13 temos m 13 = ( 6)/3 eparaoelementoa 14 temos m 14 = 3/3. Assim a regra geral para o multiplicador é: multiplicador = - ( elemento que vai ser zerado) / pivô Continuando a triangulação temos então nesse segundo passo que a linha de apoio é a linha L 2 eopivôseráoelementoa 22 =2: 23

3 2 0 1 3 L 3 L 3 + ( 8) 2 L 0 2 3 1 3 1 0 0 4 2 2 L 4 L 4 + ( 10) 2 L 1 0 0 12 0 0 No terceiro passo a linha de apoio será a linha L 3 eopivôseráa 33 =4: 3 2 0 1 3 0 2 3 1 3 0 0 4 2 2 L 4 L 4 + ( 12) 0 0 0 6 6 4 L 1 Assim chegamos na matriz ampliada do sistema: 3x 1 +2x 2 +0x 3 + x 4 = 3 2x 2 3x 3 + x 4 = 3 4x 3 2x 4 = 2 6x 4 = 6 Calcularemos agora a solução do sistema 3.4.1 pois o sistema (3.4.1) é equivalente ao sistema (3.4.1) e portanto tem as mesmas soluções que o sistema (3.4.1): 1) Da última equação retiramos o valor de x 4 diretamente. 6x 4 =6 x 4 = 1 2) Substituindo o valor de x 4 na terceira equação obtemos x 3. 4x 3 2x 4 =2 4x 3 2( 1) = 2 x 3 =0 3) Substituindo x 3 ex 4 na segunda equação obtemos x 2. 2x 2 3x 3 + x 4 = 3 2x 2 3.0+( 1) = 3 x 2 = 1 4) Substituindo x 4,x 3,x 2 na primeira equação obtemos x 1 3x 1 +2x 2 + x 4 =3 3x 1 +2( 1) + ( 1) = 3 x 1 =2 Logo a solução do sistema 3.4.1 será, na forma matricial, é 2 x = 1 0 1 Daremos agora o algoritmo básico do método de eliminação de Gauss que contém as etapas de triangularização e retrossubstituição que são de fácil implementação computacional. As operações no algoritmo básico de Gauss são feitas em precisão simples. 3.4.2 Algoritmo básico de Gauss 1) Entrada de dados Leia n, a ij,y i para i =1(1)n; j =1(1)n 2) Triangularização Para k =1(1)n 1 Para i = k +1(1)n m ik = a ik /a kk Para j = k +1(1)n 24

a ij = a ij + m ik.a kj fim j y i = y i + m ik.y k fim i fim k 3) Retrossubstituição x n = y n /a nn Para k = n 1( 1)1 x k = y k Para i = k +1(1)n x k = x k a ki.x i fim i x k = x k /a kk fim k 4) Saida de dados imprima solução, imprima x i,parai =1(1)n Observação: Observe que neste algoritmo não é previsto a divisão pôr zero no cálculo do multiplicador, assim se ocorrer o elemento a kk =0deve-sepermutar linhas antes de entrar com os dados da matriz A de modo a evitar divisão por zero. O algoritmo básico de Gauss pode apresentar problemas no que diz respeito à exatidão dos resultados. Uma das causas mais comuns de erros é quando ocorre termos um pivô muito pequeno e o multiplicador muito grande causando o aumento do erro de arredondamento. 3.4.3 Estratégia de Pivotamento Este método nada mais é do que o mesmo algoritmo de Gauss com uma troca sistemática de linhas de modo a minimizar os erros de arredondamento e para tal a escolha dos pivôs é feita de acordo com o esquema: Primeiro pivô: Elemento de maior valor absoluto na coluna 1 a 11 = max a i1, i =1,..., n Segundo pivô: Elemento de maior valor absoluto na coluna 2 da matriz resto 2

a 22 = max a i2,i =2,..., n Continuando o processo temos o k-ésimo pivô a kk = max a ik, i = k,..., n Exemplo. Consideremos agora somente a matriz A do sistema 2 30 11 10 1 7 20 8 9 Neste caso devemos permutar as linhas L 1 e L 3 para obter o maior pivo da primeira coluna que será 20, depois permutar L 2 com L 3 para obter o maior pivo da segunda coluna que será 30. A operação efetuada será da forma: Neste caso devemos permutar as linhas L 1 e L 3 para obter o maior pivo da primeira coluna que será 20, A operação efetuada será da forma: 2 30 11 10 1 7 L 1 L 3 20 8 9 10 1 7 20 8 9 2 30 11 Na prática em determinado programa não faremos a troca efetiva das linhas necessárias, mas criaremos um novo vetor que apontará onde ( em que nova posição) estará certa linha. Assim, se sub(i) indica tal vetor, no início do programa teremos sub(i) =i para i =1(1)n. Como os elementos abaixo da diagonal principal nao são considerados após a triagularização utilizaremos estes espaços para armazenar os multiplicadores de cada linha em cada passo para posterior utilização. Logo a matriz triangularizada ( supondo que não houve trocas) fica: a 11 a 12 a 13 a 1n m 21 a 22 a 23 a 2n m 31 m 32 a 33 a 3n m 41 m 42 m 43 a 43..... m n1 m n2 m n3 a nn 3.4.4 Algoritmo de Gauss com pivotamento "Triangularização" Entrada n, a ij,b i : i =1(1)n, j =1(1)n) Para i =1(1)n sub(i) =i Fim i Para k =1(1)n 26

max =0 Para i = k(1)n vabs = a sub(i),k Se max < vabs então max = vabs indx = i fim se Fim i Se max =0 saida matriz singular fim se j = sub(k) sub(k) =sub(indx) sub(indx) =j pivo = a sub(k),k Para i = k +1(1)n a sub(i),k = a sub(i),k pivo Para j = k +1(1)n Fim j a sub(i),j = a sub(i),j + a sub(i),k a sub(k),j Fim i Fim k "Retrosubstituição" x n = b sub(n) a sub(n),n Para k =(n 1) (1)n x k = b sub(k) Para i =(k +1)(1)n b i = b i + a sub(i),k b k Fim i Fim k Saida x k,k=1(1)n. x k = x k a sub(k),i x i x k = x k a sub(k),k 27

3.4. Coondicionamento de um sistema Um problema é mal condicionado ou "sensível"se pequenas alterações nos dados de entrada ocasionam grandes erros no resultado final Definição: Dado o SELA Ax = y seu número de condicionamento é dado por Cond(A) = A. A 1 Propriedades do Cond(A): 1. Cond(A) 1 pois 1= I = A.A 1 A. A 1 = Cond(A), onde I é a matriz identidade. 2. Cond(I) =1 3. Cond(αA) =Cond(A), α R Logo quanto maior for o valor de Cond(A) mais sensível será o sistema Exemplo: Em uma empresa o encarregado da remessa de mercadorias faz a pesagem de varias caixas verdes e brancas antes que elas sejam enviada para os pontos de venda. Consideremos agora um dia em particular onde o encarregado pesou 11 caixas brancas e caixas verdes totalizando 10,1 Kg, em seguida pesou 9 caixas brancas e 4 caixas verdes totalizando 8,2 Kg. No ponto de venda o encarregado da recepção também efetuou a mesma pesagem, ou seja, pesou 11 caixas brancas e caixas verdes totalizando 10,7 Kg e pesou também 9 caixas e 4 caixas verdes totalizando 8,6 Kg. A diferença de pesos se justifica devido as pesagens serem feitas em balanças diferentes Suponhamos agora que com estes dados desejamos saber o peso de cada caixa verde e de cada caixa branca. Com isso teremos dois sistemas, um referente a pesagem de saida e outro referente a pesagem de chegada: Referente ½ a primeira pesagem temos o sistema I 11b +v = 10, 1 9b +4v = 8, 2 Resoluçãodosistemas 11 10, 1 L 9 4 8, 2 2 L 2 9 11 L 1 Logo v =0, 7 b =0, 6 Referente ½ a segunda pesagem temos o sistema II 11b +v = 10, 7 9b +4v = 8, 6 11 10, 1 0, 8181 0, 0909 0, 06636 Resoluçãodosistemas 11 10, 7 L 9 4 8, 6 2 L 2 9 11 L 1 v =1, 7 b =0, 2 Calculando o erro relativo nos dados de entrada temos: 10, 1 10, 7 y 1 = e y 8, 2 2 = 8, 6 E r = ky 1 y 2 k = 0, 6 =0, 0 ky 2 k 10, 7 11 10, 7 0, 8181 0, 0909 0, 14 28

Logo tivemos um erro de % nos dados de entrada Calculando agora o erro relativo nas soluções temos: 0, 7 1, 7 x 1 = e x 0, 6 2 = 0, 2 E r = ky 1 y 2 k = 1 =0, 9 ky 2 k 1, 7 Logo tivemos um erro de 9% nas soluções. Com isso verificamos que uma pequena alteração nos dados de entrada provocou um erro muito grande nos dados de saida o que indica que o sistema é mal condicionado. Para finalizar ester exemplo vamos agora calcular o número de condicionamento do sistema. Neste caso a matriz A dos coeficieentes é: 11 A = 9 4 cond(a) =kak A 1 = 11 4 9 4 =16 20 = 9 11 320 O que confirma o mal condicionamento do sistema. Projeto A matriz de Hilbert é definida por H =[h ij ] onde h ij = 1 i+j 1 a) Construa a matriz H, matrizdehilbertdeordem20 20. b) Determine, usando computador, o número de condicionamento da matriz de Hilber de ordem 20 20. 3.4.6 Estabilidade e Exatidão Um algoritmo é estável se o resultado produzido for relativamente insensível a perturbações durante a computação Estabilidade de um algoritmo é análoga ao condicionamento do problema original Exatidão é a proximidade entre solução calculada da solução exata do problema. A exatidão depende do condicionamento do problema assim como da estabilidade do algoritmo A inexatidão pode resultar de aplicar algoritmos estáveis a problemas mal condicionados ou algoritmos instáveis a problemas bem condicionados 3.4.7 MétododeEliminaçãodeGausscomPivotamento erefinamento O método de eliminação de Gauss, mesmo com pivotamento, não produz em geral nenhuma estimativa sobre a exatidão da resposta. Com a técnica dos refinamentos podemos ter a medida da exatidão da resposta bem como avaliar se o sistema dado é bem ou mal condicionado. Descrição do Método 29

Primeiro passo: Obter uma aproximação via Gauss com pivotamento. Segundo passo: Refinarasoluçãoobtidaapartirdex n gerando uma aproximação x n+1 e obtendo mediante condições de convergência x = lim x n Gerações das Aproximações Para que o refinamento seja eficaz e realmente melhore a solução encontrada pelo algorítmo básico de Gauss todas as operações efetuadas no reinamento devem ser feitas em precisão dupla Dado Ax = y com aproximação x 1 queremos determinar z 1 tal que x = x 1 + z 1 eparaissoprecisaremosdoresíduoqueédefinido por r = y Ax. Primeiro refinamento: Determinar z 1 x = x 1 + z 1 z 1 = x x 1 Az 1 = Ax Ax 1 = y Ax 1 = r 1 Logo para determinarmos z 1 devemos resolver o sistema Az 1 = r 1. Note que resíduo r 1 é facilmente determinado. Daí calcula-se z 1 lembrando que só precisamos efeturar as mudanças em r 1 e aplicar a rotina de retrossubstituição. Assim x 2 = x 1 + z 1 onde z 1 indica o valor de z 1 arredondado Segundo refinamento: Como x 2 éumasoluçãoaproximadadosistemaax = ydevemos determinar uma nova aproximação x 3 e seguindo o mesmo raciocínio usadonoprimeirorefinamento devemos determinar z 2 como solução do sistema logo Az 2 = Ax Ax 1 = y Ax 2 = r 2 x 3 = x 2 + z 2 onde z 2 indica o valor de z 21 arredondado Terceiro refinamento: Idem aos anteriores. Assim teremos constituido um sequência (x 1, x 2, x 3,...)de aproximações da soluçõa exata do sistema para a qual veremos uma condição de convergência. ParaaanálisedocomportamentodoSELAcomousoderefinamentos poderemos detectar o mal condicionamento sem calcular o Cond(A) diretamente ou aproximandamente. Se os resíduos r 1, r 2, r 3,..., r n são pequenos mas as correções z 1, z 2, z 3,..., z n são grandes então o SELA é mal condicionado. 30

3. Métodos Iterativos Seja os Sistema Linear Ax = y onde: A matriz de coeficientes n n x vetor de variáveis n 1 b vetor independente (constantes) n 1 Converter o sistema de equações em um processo iterativo Ax = y x = Cx + g = ϕ(x), onde: C matriz com dimensões n n g vetor com dimensões n 1 ϕ(x) função de iteração matricial EsquemadoMétodoIterativo Partido da aproximação inicial x (o), constrói-se uma seqüência iterativa de vetores: x (1) = Cx (0) + g = ϕ(x (0) ). x (2) = Cx (1) + g = ϕ(x (1) ) Forma geral x (k) = Cx (k 1) + g = ϕ(x (k 1) ) Se a sequência é tal que x (k+1) = ϕ(x (k) ) lim k x(k) = a a = Ca + g então α é solução do sistema Ax = y Critério de parada Erro absoluto E Ak = x (k) x (k 1) = max x (k) i=1,..,n i x (k 1) i 31

Erro Relativo E Rk = x (k) x (k 1) x (k) = max x (k) i=1,..,n i max x (k) i i=1,..,n x (k 1) i Dada uma precisão ovetorx (k) será escolhido como uma aproximação da solução se EA k < ou dependendo do caso ER k < Método Iterativo de Gauss-Jacobi Considere o sistema linear: a 11 x 1 + a 12 x 2 + a 13 x 3 +...a 1n x n = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 +...a 2n x n = b 2...... a n1 x 1 + a n2 x 2 + a n3 x 3 +...a nn x n = b n Supondo a ii 6=0, i =1, 2,..., n, isola-seovetorx mediante a separação pela diagonal da matriz de coeficientes. x (k+1) 1 = 1 (b 1 a 12 x (k) 2 a 13 x (k) 3... a 1n x n (k) ) a 11 x (k+1) 2 = 1 (b 2 a 21 x (k) 1 a 23 x (k) 3... a 2n x n (k) ) a 22. x n (k+1) = 1 (b n a n1 x (k) 1 a n2 x (k) 2... a nn 1 x (k) n 1 a ) nn Com isso obtemos o esquema de iteração, onde: C = x = Cx + g 0 a 12 /a 11 a 13 /a 11 a 1n /a 11 a 21 /a 22 0 a 23 /a 22 a 2n /a 22......... a n1 /a nn a n2 /a nn a n3 /a nn 0 b 1 /a 11 b 2 /a 22 g =. b n /a nn 32

O métdo de Gauss- Jacobi consiste em, dado um aproximação inicial x (0), obter uma sequência de aproximações x 1, x 2,..., x k pela fórmula de recorrência x (k+1) = Cx (k) +g. Observe que o processo iterativo utiliza somente estimativas da iteração anterior. Exemplo 1 Resolver o sisterma 10x + y +2z =.2 x +y +3z =6. 2y +7z =. com a aproximação inicial x (0) = 0.1 0. 0 Esquema iterativo Esquema iterativo vetorial x (k+1) = 1 10.2 y (k) 2z (k) y (k+1) = 1 6.+x (k) 3z (k) z (k+1) = 1 7.+2y (k) 0 1 2.2 10 10 10 C = 1 3 0 e g = 6. 0 2. 7 7 0 7 com precisão =10 3 =0.001 x (k+1) = Cx (k) +g Geração das Aproximações x (1) = 0 1 2 10 10 1 3 0 0.1.2 10 0. + 6. = 0.47 1. 32 0 2. 7 7 0 0 0.928 71 4 7 x (2) = 0 1 2 10 10 1 3 0 0.47.2 10 0.207 28 7 1. 32 + 6. = 0.837 87 2 0 2. 7 7 0 0.928 71 4 1. 162 87 7 Verificando a precisão: 0.207 28 7 x (2) x (1) = 0.837 87 2 0.47 0.267 714 3 1. 32 = 0.482 142 8 1. 162 87 0.928 71 4 0.234 28 6 x (1) x (2) =0.482 142 8 > x (3) = 0 1 2.2 10 10 0.207 28 7 10 0.208 642 9 1 3 0 0.837 87 2 + 6. = 0.643 742 9 0 2. 7 7 0 1. 162 87 7 1. 02 102 0.208 642 9 0.267 714 3 0.476 37 2 x (3) x (2) = 0.643 742 9 0.482 142 8 = 1. 12 886 1. 02 102 0.234 28 6 0.790 816 4 x (3) x (2) =1. 12 886 > x (4) = 0 1 2.2 10 10 0.208 642 9 10 0.2 60 3 1 3 0 0.643 742 9 + 6. = 0.726 667 4 0 2. 7 7 0 1. 02 102 0.969 640 8 7 33

0.2 60 3 0.208 642 9 0.046 962 4 x (4) x (3) = 0.726 667 4 0.643 742 9 = 0.082 924 0.969 640 8 1. 02 102 0.0 461 2 x (4) x (3) =0.082 924 > x () = 0 1 2.2 10 10 0.2 60 3 10 0.28 40 1 1 3 0 0.726 667 4 + 6. = 0.769 336 6 0 2. 7 7 0 0.969 640 8 0.993 333 7 0.28 40 1 0.2 60 3 0.002 799 8 x () x (4) = 0.769 336 6 0.726 667 4 = 0.042 669 2 0.993 333 0.969 640 8 0.023 692 7 x () x (4) =0.042 669 2 > x (6) = 0 1 2.2 10 10 0.28 40 1 10 0.249 399 6 1 3 0 0.769 336 6 + 6. = 0.7 680 9 0 2. 7 7 0 0.993 333 7 1. 00 2 0.249 399 6 0.28 40 1 0.009 00 x (6) x () = 0.7 680 9 0.769 336 6 = 0.013 6 7 1. 00 2 0.993 333 0.012 191 x (6) x () =0.013 6 7 > x (7) = 0 1 2.2 10 10 0.249 399 6 10 0.248 326 9 1 3 0 0.7 680 9 + 6. = 0.746 64 9 0 2. 7 7 0 1. 00 2 1. 001 623 7 0.248 326 9 0.249 399 6 0.001 072 7 x (7) x (6) = 0.746 64 9 0.7 680 9 = 0.009 116 1. 001 623 1. 00 2 0.003 902 x (7) x (6) =0.009 116 > x (8) = 0 1 2.2 10 10 0.248 326 9 10 0.20 018 9 1 3 0 0.746 64 9 + 6. = 0.748 691 6 0 2. 7 7 0 1. 001 623 7 0.999 018 0.20 018 9 0.248 326 9 0.001 692 x (8) x (7) = 0.748 691 6 0.746 64 9 = 0.002 126 7 0.999 018 1. 001 623 0.002 604 x (8) x (7) =0.002 126 7 > x (9) = 0 1 2.2 10 10 0.20 018 9 10 0.20 327 1 1 3 0 0.748 691 6 + 6. = 0.70 92 7 0 2. 7 7 0 0.999 018 0.999 626 2 7 0.20 327 1 0.20 018 9 0.000 308 2 x (9) x (8) = 0.70 92 7 0.748 691 6 = 0.001 901 1 0.999 626 2 0.999 018 0.000 607 7 x (9) x (8) =0.001 901 1 > 1 2.2 0 x (10) 10 10 0.20 327 1 10 0.20 01 = 1 3 0 0.70 92 7 + 6. = 0.70 289 7 0 2. 7 7 0 0.999 626 2 7 1. 000 169 34

0.20 01 0.20 327 1 0.000 311 6 x (10) x (9) = 0.70 289 7 0.70 92 7 = 0.000 303 1. 000 169 0.999 626 2 0.000 42 8 x (10) x (9) =0.000 42 8 < Logo a solução com a precisão desejada é 0.20 01 x (10) = 0.70 289 7 1. 000 169 Podemos continuar a calcular novas iterações para obtermos uma solução com maior pecisão 0.249 937 2 0.249 993 2 0.20 011 9 x (11) = 0.749 901 7, x (12) = 0.749 937 6, x (13) = 0.70 01 1. 000 083 0.999 971 9 0.999 982 2 0.20 002 0.249 997 9 0.249 999 4 x (14) = 0.70 013 1, x (1) = 0.749 998, x (16) = 0.749 997 2 1. 000 004 1. 000 004 0.999 999 4 0.20 000 4 0.20 000 1 0.249 999 9 x (17) = 0.70 000 2, x (18) = 0.70 000 6, x (19) = 0.7 0.999 999 2 1.0 1.0 0.2 x (20) = 0.70 000 0 1.0 Portanto a solução é x (20) == 0.2 0.7. Facilmente se verifica que esta é a 1.0 solução exata do sistema. Exemplo 2 0. 20 0. 14. 2 = ½ 0 0.1 0.7 2. 07 0.x +20y =14.2 0.1 com aproximação inicial de x 0x +0.1y =2.07 (0) = 0. Esquema ½ iterativo x = 1 0. (14.2 20y) y = 1 0.1 (2.07 0x) 0 20 14.2 C = 0. 0 e g = 0. 2.07 0.1 0 0.1 x (k+1) = Cx (k) + g 0 x (1) 20 = 0. 0.1 14.2 0 + 0. 8. 2.07 = 0.1 0 0. 0.1 200. 7 0 x (2) 20 = 0. 8. 14.2 0 + 0. 7999. 2.07 = 0.1 0 200. 7 0.1 3999. 3 0 x (3) 20 = 0. 7999. 14.2 0 + 0. 160000. 2.07 = 0.1 0 3999. 3 0.1 4000001. 3

x (4) = 0 20 0. 0 0.1 0 160000. + 4000001. 14.2 0. 2.07 = 0.1 Observe que neste caso a sequência está divergindo. 1. 6 10 7 8 8. 000 000 10 3..1 Critério de Linhas Teorema (Critério das linhas) Seja o sistema linear eseja: Se α k = Ax = y np a kj j=1 j6=k a kk α = max α k < 1 k=1,...,n, então o método Gauss-Jacobi gera uma seqüência x (k)ª convergente para a solução do sistema dado, independentemente da escolha da aproximação inicial x (0) Observação: No caso do exemplo 1, o sistema satisfaz o critério das linhas e no caso do exemplo 2 o sistema não satifaz o critério das linhas. Note que o critério das linhas é uma condição suficiente mas não necessária, ou seja, se a matriz dos coeficientes satisfaz o critério das linhas então o método de Gauss-Jacobi é convergente se se a matriz dos coeficientes não satisfaz o critério das linhas então nada se pode afirmar ( o sistema pode convergir ou divergir). Exemplo 1: Seja a matriz do exemplo dado anteriormente: A = 10 2 1 1 1 2 3 10 α 1 = (2+1) 10 =0, 3 < 1 α 2 = (1+1) =0, 4 < 1 α 3 = (2+3) 10 =0, 2 < 1 Tem-se a convergência garantida para qualquer vetor inicial. Exemplo 2: Seja o sistema de equações lineares: 36

x 1 + x 2 =3 x 1 3x 2 = 3 α 1 = 1 1 =1 α 2 = 1 3 As condições de convergência do teorema não são satisfeitas, entretanto o Método de Gauss-Jacobi gera uma seqüência convergente para a solução exata x = 3 2. Se as condições de suficiência não são satisfeitas, não significa que o método não possa convergir. Exemplo 3: Considere o sistema linear: 3 2 T x 1 +3x 2 + x 3 = 2 x 1 +2x 2 +2x 3 =3 0x 1 +6x 2 +8x 3 = 6 A = 1 3 1 α 1 = (3+1) 1 =4> 1 2 2 α 2 = (+2) 2 =3, > 1 0 6 8 α 3 = (0+6) 8 =0, 7 < 1 As condições do teorema não são satisfeitas. Uma solução possível é permutar as equações. Seja no exemplo permutar a primeira equação com a segunda equação: A = 2 2 1 3 1 0 6 8 α 1 = (2+2) 1 =0, 8 < 1 α 2 = (1+1) 3 =0, 66 < 1 α 3 = (0+6) 8 =0, 7 < 1 As condições passam a ser satisfeitas e a convergência é garantida para qualquer vetor inicial. Este tipo de procedimento nem sempre é possível. Método Iterativo de Gauss-Seidel Assim como no Método de Gauss-Jacobi o sistema linear Ax = y 37

é escrito na forma equivalente: x = Cx + g Como no Método Gauss-Jacobi, é realizada uma separação diagonal, e o processo iterativo de atualização é seqüencial, componente por componente. A diferença é que, no momento de realizar-se a atualização das componentes do vetor numa determinada iteração, a formulação utiliza as componentes da iteração já atualizadas na iteração atual, com as restantes não atualizadas da iteração anterior. Por exemplo, ao se calcular a componente x (k+1) j da iteração (k+1), utiliza-se no cálculo as componentes já atualizadas x (k+1) 1,x (k+1) 2,..., x (k+1) j 1 com as componentes ainda não atualizadas da iteração anterior. x (k) j+1,x(k) j+2,..., x(k) n x (k+1) 1 = 1 (b 1 a 12 x (k) 2 a 13 x (k) 3 a 14 x (k) 4... a 1n x (k) n ) a 11 x (k+1) 2 = 1 (b 2 a 21 x (k+1) 1 a 23 x (k) 3 a 24 x (k) 4 a... a 2nx (k) n ) 22 x (k+1) 3 = 1 (b 3 a 31 x (k+1) 1 a 32 x (k+1) 2 a 34 x (k) 4... a 2n x n (k) ) a 22. x n (k+1) = 1 (b n a n1 x (k+1) 1 a n2 x (k+1) 2 a n3 x (k+1) 3... a nn 1 x (k+1) n 1 a ) nn Exemplo: Resolver o sistema linear utilizando o Método Iterativo de Gauss- Seidel, comexemplo: Resolver o sistema linear utilizando o Método Iterativo de Gauss-Seidel, com e tolerância. x (0) =[0, 0, 0] T 10 2 x 1 + x 2 + x 3 = 3x 1 +4x 2 + x 3 =6 3x 1 +3x 2 +6x 3 =0 38

O processo iterativo é dado por: Para k=0 e x (k+1) 1 = 1 ( x(k) 2 x (k) 3 ) x (k+1) 2 = 1 (6 3x(k+1) 1 x (k) 3 4 ) x (k+1) 3 = 1 (0 3x(k+1) 1 3x (k+1) 2 ) 6 Cálculo de E (1) R : : Para k =1e (1) 1 = (1) 2 = x (1) (1) 3 = E (1) R x (0) =[0, 0, 0] T x (1) = 1 0, 7 0, 87 x (1) 1 x (0) 1 = 1, 0 0 =1, 0 2 x (0) 2 = 0, 7 0, 0 =0, 7 3 x (0) 3 = 0, 87 0 =0, 87 x (1) i=1,3 (1) i max = max x (1) i=1,3 i = 1, 0 =1, 0 > 1, 0 x (1) =[1, 0, 0, 7, 0, 87] T (2) 3 = (2) 1 = (2) 2 = x (2) = 1, 02 0, 9 0, 987 x (2) 1 x (1) 1 = 1, 02 1, 0 =0, 02 x (2) 2 x (1) 2 = 0, 9 0, 7 =0, 20 3 x (1) 3 = 0, 987 ( 0, 87) =0, 112 x (2) E (2) R i=1,3 (2) i max = max x (2) i=1,3 i = 0, 20 =0, 197 > 1, 02 39

Para k=2 e : x (2) =[1, 002, 0, 9, 0, 987] T (3) 1 = (3) 2 = (3) 3 = x (3) = 1, 007 0, 9912 0, 9993 x (3) 1 x (2) 1 = 1, 07 1, 02 =0, 017 x (3) 2 x (2) 2 = 0, 9912 0, 9 =0, 0412 3 x (2) 3 = 0, 9993 ( 0, 987) =0, 0118 x (3) E (3) R i=1,3 (3) i max = max x (3) i=1,3 i x = é solução com erro menor que 0, 0. = 3..2 Critério de Sassenfeld Seja o sistema linear 0, 0412 =0, 0408 < 1, 007 1, 007 0, 9912 0, 9993,comA dimensão n n eseja: Ax = y β 1 = a 12 + a 13 + a 14 +... + a 1n a 11 eparaj =2, 3,...n: β j = a j1 β 1 +... + a jj 1 β j 1 + a jj+1 +... +. a j1 a jj Define-se β = max β j j=1,..,n. Se β < 1, então o Método de Gauss-Seidel gera uma sequência convergente para a solução do sistema, qualquer que seja o vetor inicial. Além disso, quanto menorforovalordeβ mais rápida é a convergência. 40

Exemplo: Verificar as condições de convergência do Método de Gauss-Seidel no sistema abaixo: 2x 1 + x 2 +3x 3 =3 x 2 + x 3 =1 x 1 + 3x 3 =3 a) Critério de Linhas não satisfaz. b) Critério de Sassenfeld α 1 = 1+3 2 =2> 1 β 1 = 1+3 =2> 1 2 não satisfaz. Como a convergência do Método de Gauss-Seidel é fortemente dependente da posição das equações, pode-se trocar a posição das equações. Tentativa 1: Troca-se a primeira equação pela terceira equação. x 1 + 3x 3 =3 x 2 + x 3 =1 2x 1 + x 2 +3x 3 =3 a) Critério de Linhas não satisfaz. b) Critério de Sassenfeld α 1 = 0+3 1 =3> 1 β 1 = 0+3 =3> 1 1 não satisfaz. Tentativa 2: Troca-se a primeira coluna pela terceira coluna na equação anterior. 3x 3 +0x 2 + x 1 =3 x 3 x 2 +0x 1 =1 3x 3 + x 2 +2x 1 =3 a) Critério de Linhas 41

α 1 = 1 3 =0.33 < 1 satisfaz. α 2 = 1 1 =1 não satisfaz. b) Critério de Sassenfeld satisfaz. β 1 = 1 3 =0.33 < 1 satisfaz. β 2 = 1 1 3 1 =0.33 < 1 β 3 = 3 1 3 +1 1 3 = 4 2 6 < 1 satisfaz. Com a última modificação o sistema passa a ser convergente para qualquer vetor inicial. Modificações desse tipo são puramente acadêmicas e são difíceis de serem realizadas em sistemas reais. Principalmente pelas dimensões dos problemas, resultando num grande esforço computacional, e das incertezas quanto a sua eficiência. Exemplo : Verifique a convergência do sistema abaixo pelo critério de linhas esassenfeld. Critério de Linhas 2x 1 + x 2 =3 x 1 + x 2 =4 Não satisfaz Critério de Sassenfeld α 1 = 1 2 α 2 =1 β 1 = 1 2 β 2 = 1 1 2 1 = 1 2 42

Satisfaz Exemplo : Verifique a convergência do sistema abaixo pelo critério de linhas esassenfeld. x 1 +0, x 2 0, 1x 3 +0, 1x 4 =0, 2 0, 2x 1 + x 2 0, 2x 3 0, 1x 4 = 2, 6 0, 1x 1 0, 2x 2 + x 3 +0, 2x 4 =1, 0 0, 1x 1 +0, 3x 2 +0, 2x 3 + x 4 = 2, Algoritmo de Gauss-Seidel Variáveis utilizadas no algoritmo: Inteiras: i, j, N; Reais: num, den, e ; Vetores: x, y, b; Matriz: a. INICIO 1) Dados de Entrada Leia e {e é a precisaõ desejada} Leia itmax {itmax é o número máximo de iterações desejadas} Para i =1até N faça Leia b i {b i são os termos independentes do sistema} Leia x i {x i são as coordenadas do vetor aproximação inicial} Fim para Para i =1 até N faça Para j =1até N faça Leia a ij Fim para Fim para 2) Repita num =0 den =0 Para i =1até N faça y i =0 {y i é o x k+1 i ) Para j =1 até N {a ij são os coeficientes do sistema linear} faça Se i 6= j então y i = y i + a ij x j Fim para yi = 1 (b i y i ) a ii Se num < y i x i então { guarda o max y i x i } num = y i x i Fim se Se den < y i então { guarda o max y i } 43