Você está na página 1de 6

0

UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

TRABALHO PRATICO 1:

ANÁLISE NUMÉRICA

Discente:

Rodrigo Figueiredo Assis 15.1.8331

João Monlevade

27 de Novembro de 2016

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709


1
UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

INTODUÇÃO

O presente trabalho é uma proposta do professor Álvaro A. F. de Souza, para a


disciplina CSI148 – Análise Numérica. Ele visa o desenvolvimento da programação
de alguns métodos de cálculo numérico estudados em sala. Abaixo segue a relação
de funções solicitadas. Os testes realizados estão em um arquivo separado, que
acompanhará este trabalho.

1. Método de Gauss;
2. Cálculo de determinante;
3. Cálculo do polinômio interpolador linear;
4. Cálculo do polinômio interpolador quadrático;
5. Cálculo do resíduo de uma solução gerado pela aproximação;

O programa desenvolvido gera todos os valores para matrizes e vetores


aleatoriamente. Sendo assim, para obter valores diferentes basta executar o
comando novamente. Além disso, por esses valores serem gerados
aleatoriamente, podem ocorrer alguns erros referentes a sistemas sem ou com
infinitas soluções.

O primeiro contato que se tem com o programa se dá na tela inicial que contém os
dados referentes ao trabalho:

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709


2
UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

Após isso, abrirá o menu principal, onde pode ser solicitado o cálculo de qualquer
um dos métodos solicitados.

Para selecionar qual método, basta inserir o número correspondente. Assim


sendo, para finalizar o programa, deve ser inserido o número 6.

1. MÉTODO DE GAUSS

A função que calcula soluções pelo método de GAUSS, possui a seguinte sintaxe:

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709


3
UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

void metodoGauss(float**, float*, int, int, int);

Essa função recebe uma matriz, um vetor e três números inteiros (linhas, colunas
e tamanho do vetor). A matriz guarda os valores dos coeficientes do sistema,
enquanto o vetor guarda os valores que estão do lado direito da igualdade em cada
equação.

Inicialmente, a função cria uma matriz aumentada, onde ficam todos os coeficientes
e os valores do lado direito da igualdade, para que seja feita a triangulação
(superior) da matriz. Assim, para a realização do cálculo, inicialmente é encontrada
uma constante para cada linha, que zera cada coluna da matriz, e essa constante
foi multiplicada em todos os elementos da mesma linha. Até gerar a matriz
triangular superior.

Após isso, a resolução acontece da parte inferior para a superior. Onde o programa
faz a isolação da variável a ser calculada, e atualiza seu valor para que ela seja
usada na próxima interação.

No final, o programa imprime na tela o valor correspondente a cada variável (x1,


x2,..., xn) direto na matriz.

2. CÁLCULO DE DETERMINANTE

A função responsável pelo cálculo do determinante de uma matriz qualquer, possui


a seguinte sintaxe:

double calculoDeterminante(float**, int);

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709


4
UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

Ela retorna um valor do tipo double. Para a implementação dessa função, foi
observado que a função responsável pelo método de GAUSS não alterava em nada
o valor do determinante. Além disso, após a triangulação superior, o determinante
da matriz se tornava a diagonal principal. Tendo isso em mente, a função do
determinante realiza a triangulação do método de GAUSS e após, multiplica todos
os elementos da diagonal principal.

3. CALCULO DO POLINOMIO INTEPOLADOR LINEAR

A função que calcula os coeficientes do Polinômio Interpolador Linear, possui a


sintaxe abaixo:

P1* polinomioLinear(float**);

Ela retorna um tipo criado P1 que contém dois valores inteiros (a0 e a1) que
armazenam os valores dos coeficientes do polinômio calculado. Nessa função, é
gerada uma matriz aumentada onde são armazenados os valores dos coeficientes
do sistema linear gerador pelos pontos. Assim, para conseguir os valores dos
coeficientes para retornar, basta que seja calculada a solução do sistema. Além
disso, a solução do sistema é calculada utilizando o método de GAUSS. Por fim, a
função armazena os valores dos coeficientes na estrutura P1 e a retorna.

4. POLINOMIO QUADRÁTICO

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709


5
UNIVERSIDADE FEDERAL DE OURO PRETO

INSTITUTO DE CIÊNCIAS EXATAS E APLICADAS

ENGENHARIA ELÉTRICA

A função que realiza os cálculos do polinômio interpolador quadrático, possui uma


sintaxe parecida com a do polinômio linear, porém ela retorna um tipo P2:

P2* polinomioQuadratico(float**);

A estrutura do tipo P2 possui três variáveis do tipo inteiro (a0, a1 e a2) que
armazenam os coeficientes do polinômio quadrático. O método é o mesmo utilizado
na função polinomioLinear, inclusive os cálculos também são feitos usando o
método de GAUSS.

5. CALCULO RESIDUAL

Por fim, a função que calcula o resíduo gerado por uma solução, devido ao
arredondamento é da seguinte forma:

void calculoResiduo(float** matriz, int linhas, int colunas, float* vetor, float*
vetorSolucao, int tamanho);

Ela não possui retorno, sendo assim, imprime os valores do resíduo na tela. O vetor
solução, presente nessa função, é gerado aleatoriamente, assim os valores podem
não corresponder a solução do sistema gerado. Essa função realiza os cálculos
dos resíduos substituindo os valores das variáveis pelos valores no vetorSolução.
Assim, o lado direito e esquerdo da igualdade deveriam ser os mesmos, então
isolando deveriam se anular. Como temos o erro da solução, o resíduo será a
diferença desses valores.

ICEA – UFOP – Rua 36, n° 115 – CEP 35.931-008 – João Monlevade – MG – Brasil

http://www.icea.ufop.br – coec@icea.ufop.br – (31) 3852-8709