Sei sulla pagina 1di 8

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

COLEGIADO DE ENGENHARIA ELÉTRICA

PROJETO COMPUTACIONAL 2

JUAZEIRO
2019
UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO
COLEGIADO DE ENGENHARIA ELÉTRICA

PROJETO COMPUTACIONAL 2

DISCIPLINA: CÁLCULO NUMÉRICO


PROF. DR. LINO MARCOS DA SILVA

DISCENTES:
CAMILA STEFANI DOS SANTOS SILVA
GRASIELI DE SOUZA RIBEIRO
JOÃO VICTOR OLIVEIRA DO SANTOS
MARLEY SILVA RIBEIRO
SABRINNA GISELLE QUEIROZ SILVEIRA

JUAZEIRO
2019
1. INTRODUÇÃO

Com o crescimento acelerado dos métodos de produção uns dos principais problemas
que os engenheiros enfrentam é a solução de problema que envolvem sistemas lineares.
Diante disso, para solucionar tais problemas são utilizados métodos algébricos que
manualmente demoraria muito tempo, por isso o desenvolvimento e aprimoramento de
programas computacionais é fundamental para o desenvolvimento da sociedade
moderna. Com isso, os métodos utilizados nesse projeto serão: (Fatoração de Cholesky,
Matriz de Hilbert e Método de Gauss-Jacobi).
Sendo que, um sistema linear é um conjunto de n equações do tipo:

Tal sistema pode ser representado de uma forma de matriz n x n (Linha x Coluna).
A- Matriz dos coeficientes de ordem n x n
B- Vetor solução de ordem n x 1
X- Vetor de incógnitas n x 1

Ax= b

Diante disso, concluímos que dependendo da ordem da matriz tais soluções só podem
ser encontradas por meios computacionais, por Métodos Diretos (Fatoração de
Cholesky) ou Métodos Iterativos (Gauss-Jacobi).

2. MÉTODOS IMPLEMENTADOS

2.1. Método da Fatoração de Cholesky

Para utilizar esse método, é necessário que se A é simétrica de ordem n x n,


positiva definida (𝑥 𝑡 Ax>0 para todo x ∈ R, x≠0).

Então A pode ser decomposta unicamente no produto GGt, onde G é matriz


triangular inferior com elementos diagonais positivos. A decomposição é feita da seguinte
forma do teorema LU, a matriz diagonal de ordem n sendo simétrica, então sua fatoração
é;
Logo; o Teorema de Cholesky afirma que se A é uma matriz simétrica positiva
definida, então existe uma matriz triangular inferior de diagonal exclusivamente positiva.
Visto que,A = GGT. Então resolver Ax=b é igual a solucionar Gy=b e depois GT x = y.

2.2. Método Iterativo de Gauss-Jacobi

O método iterativo de Jacobi é um algoritmo usado para resolver sistemas de


equações lineares. De maneira iterativo de Jacobi é um método clássico que criado no
século XVIII. Essa técnica é mais eficiente para solucionar sistemas lineares de
pequenas dimensões. Visto que, em relação aos outros o tempo requerido para obter um
mínimo de precisão é maior. Contudo, para sistemas com grande porcentagem de zeros,
tal método aparece como alternativa mais utilizadas.

Logo;
Dada uma matriz quadrada de n equações lineares:

Ax = b
em que:

Então A pode ser decomposto num componente diagonal D e o resto R:

O sistema de equações lineares pode ser reescrito como:

O método de Jacobi é um método iterativo que resolve o membro esquerdo da


expressão em ordem a x ao usar o método resultante da iteração anterior no membro
direito. Analiticamente, isto pode ser escrito como:
3. PROBLEMA
3.1 Matrizes mal condicionadas
Uma grande parte dos problemas na resolução de sistemas lineares é a propagação de
erros, visto que todos os cálculos feitos por uma máquina utilizam arredondamentos,
sendo esses mais discrepantes ao utilizarmos matrizes mal condicionadas, pois os erros
se propagam de forma mais significativa. Para saber se uma matriz é mal condicionada,
temos que:
Mal Condicionamento = ||A|| • ||A−1 ||
Um exemplo recorrente é a matriz de Hilbert, porque quanto maior a dimensão, maior o
mal condicionando.
3.2. Matriz Fill-in
O preenchimento ou fill-in é usado em uma matriz que é dita esparsa, ou seja, quando ela
possui mais elementos nulos do que não nulos, essa característica é mantida nos sistemas
de problemas de programação linear de grande porte para a economia de memória e
armazenamento de dados. O preenchimento ocorre após uma fatoração A = GGT, quando
os elementos inferiores a diagonal da matriz A são ocupados por elementos não nulos na
matriz triangular L. O fill-in na matriz muda o zero inicial para um valor não nulo durante
a execução do algoritmo, para reduzir os requisitos de memória e o número de operações
aritméticas usadas durante o algoritmo.
4. RESULTADOS E DISCUSSÕES
4.1 Problema 1 letra (a)
4.1.1 Entradas
O programa recebe um número n solicitado ao usuário como entrada, usado como
dimensão das matrizes que serão construídas.
A matriz H inicia como uma matriz de dimensão nxn composta por zeros.
b como uma matriz de 1 coluna e n linhas, sendo um vetor inicialmente composto por
zeros.
● Construção das matrizes
O algoritmo da matriz de Hilbert funciona a partir da introdução por parte do usuário
do tamanho da matriz quadrada nxn. Então a partir dessa informação são construídos
a matriz e o vetor de acordo com as funções que as regem.
1
𝑀𝑎𝑡𝑟𝑖𝑧 𝑑𝑒 𝐻𝑖𝑙𝑏𝑒𝑟𝑡 ℎ𝑖𝑗 = 𝑖 = 1, … , 𝑛 𝑒 𝑗 = 1, … , 𝑛.
𝑖+𝑗−1
𝑛
1
𝑉𝑒𝑡𝑜𝑟 𝑏 ∑
𝑖+𝑗−1
𝑗=1

Onde temp recebe o hij, elementos de H


E uma soma_temp recebe o soma_temp anterior mais o temp, assim calcula a matriz b ao
mesmo tempo de H.
4.1.2 Fatoração de Cholesky
A partir da matriz H serão criadas uma matriz G e uma G transposta G T.
Para o programa fazer o cálculo do x resultado do sistema linear, ele primeiro verifica se
a matriz é definida positiva, usando um if que compara o elemento da diagonal principal
com os outros elementos da mesma linha, se a soma dos outros elementos for maior que
o número da diagonal principal dessa linha o programa para pois a matriz é definida
negativa.
Exemplo: Temos uma matriz:
a11 a12 a13
a21 a22 a23
a31 a32 a33
Se a11 – a12 + a13 < 0 a matriz não pode ser utilizada e o break quebra o for da fatoração.
Após verificada, passa para o LU, onde L recebe G, que será o fator de Cholesky e U
recebe GT. E roda a resolução do sistema usando a fatoração.
4.1.3 Saídas
A tela mostra as matrizes construídas: a matriz de Hilbert Hn, a matriz b, as diagonais
superior e inferior L e U e a matriz x resultado.
4.1.4 Resultados
As matrizes x de dimensão 3 e 5 dá matrizes do tipo (1 1 ... 1)T, como esperado, na
dimensão 10 o valor começa a ser apenas aproximado, na dimensão 15 a matriz de Hilbert
passa a ser negativa então não pode ser utilizada porque sua solução sofre grandes
mudanças resultantes do mau condicionamento das matrizes. A tabela mostra as matrizes
resultantes para cada dimensão:
Dimensão Matriz x
Matriz de Ordem 3 1
1
1
Matriz de Ordem 5 1
1
1
1
1
Matriz de Ordem 10 1
1.0000002
0.9999952
1.0000435
0.9997923
1.0005708
0.9990638
1.0009046
0.9995252
1.0001044
Matriz de Ordem 15 Não pode ser utilizada
Tabela 1. Matrizes resultantes
4.2 Problema 1 letra (b)
4.2.1 Entradas
● Construção da Matriz
O temp receberá os elementos que comporão a diagonal da matriz A, sua primeira linha
e sua primeira coluna, os outros elementos da matriz serão nulos.
1
temp =
i

O programa aplica a fatoração de Cholerky feito no item (a) para essa matriz.
4.2.2 Resultados
A tela mostrará a matriz A e a matriz L que serão comparadas.
Após a fatoração a matriz G elimina os elementos nulos da matriz A, então na matriz L
os elementos abaixo da diagonal serão diferentes de 0. Na imagem mostra as matrizes A
e L.

Figura 1 – comparação das matrizes


Para uma matriz A com uma dimensão de grande porte a fatoração G não irá eliminar
todos os resultados não nulos abaixo da diagonal.
4.2 Problema 2
4.2.1 Entradas
Será usada a mesma matriz A do problema 1 (b).
E a matriz b que tinha sido criada inicialmente nula, somando 1 a todos os elementos,
fazendo assim uma matriz com coordenadas iguais a 1.
4.2.2 Saída
O primeiro loop é o número de interações, máximo 100.
O segundo é o erro.
4.2.3 Resultados
O método de Gauss-Jacobi consegue calcular para a matriz de Hilbert de dimensão 15x15,
mas o programa para pelo número máximo de implementações, e as coordenadas da
matriz resultante são aproximadas de 1. Se houvesse um número maior de interações os
elementos se aproximariam mais de 1.

5. CONCLUSÃO
Ao trabalharmos com matrizes mal condicionadas e com grande propagação de erros,
vimos que nenhum método é perfeito em sua execução, pois para alguns sistemas, a
solução pode depender sensivelmente de seus coeficientes, ao ponto de que pequenas
incertezas em seus valores provocam grandes alterações na solução final, portanto é de
fundamental importância estar preparado para resultados ruins que fogem da resposta
correta. Para isso, utilizamos meios em que é passado ao usuário os problemas que a
resolução pode acarretar, cabe a pessoa encarregada de analisar e fazer a verificação da
solução.

6. REFERÊNCIAS

SILVA, Lino Marcos da. Modificações na fatoração controlada de Cholesky


para acelerar o precondicionamento de sistemas lineares no contexto de pontos
interiores. Campinas: Universidade Estadual de Campinas (UNICAMP), Instituto de
Matemática, Estatística e Computação Científica. 2014.
FRANCO, Neide Maria Bertoldi. Cálculo Numérico. Instituto de Ciências
Matemáticas e de Computação, Universidade de São Paulo.
CUNHA, Francisco Gêvane Muniz. CASTRO, Jânio Kléo de Souza. Cálculo
Numérico Licenciatura em Matemática. Fortaleza: Universidade Aberta do Brasil;
Instituto Federal de Educação, Ciência e Tecnologia do Ceará. Ministério da Educação,
2010.
ASANO, Claudio Hirofume. COLLI, Eduardo. Cálculo Numérico:
Fundamentos e Aplicações. Departamento de Matemática Aplicada – IME-USP, 2009.

Potrebbero piacerti anche