Métodos numéricos - erros e sistema lineares
Métodos Numéricos
Exercícios - Erros e Sistemas Lineares
1) Desenvolva um algoritmo em C para realizar a multiplicação de duas matrizes. Não se esqueçam de verificar se a multiplicação é possível antes de realizá-la. Teste os resultados obtidos com aqueles gerados pelo MATLAB. Apresentar a solução de dois casos para as mesmas matrizes: 1º considera precisão simples 2º considere precisão estendida. Comente! Resultados para um exemplo aleatório: Solução 1 – Precisão Simples (C++)
(Obs.: A entrada de dados foi omitida para melhorar a visualização.)
Solução 2 – Precisão Estendida (C++)
(Obs.: A entrada de dados foi omitida para melhorar a visualização)
Solução 3 – MATLAB (Com 4 casas decimais - Format Short)
(Com 14 casas decimais - Format Long)
Percebe-se que, para todos os casos, as soluções foram bem próximas, conforme a tabela abaixo: Precisão Simples (C++) 48.519112 22.669737 54.615360 42.894966 Precisão Estendida (C++) 48.519111 22.669737 54.615364 42.894965 Precisão Dupla (Matlab) 48.5191 / 48.519110565 22.6697 / 22.669736850 54.6154 / 54.615363800 42.8950 / 42.894964800
C(1,1) C(1,2) C(2,1) C(2,2)
C(3,1) C(3,2)
73.790894 35.478710
73.790887 35.478707
73.7909 / 73.7908872697 35.4787 / 35.4787065799
Para as soluções que utilizam dados de precisão simples (dados de tipo float), percebem-se erros de arredondamento a partir da quinta casa decimal, para alguns casos. Para estes dados utilizados em questão, a precisão dos cálculos pode ser considerada boa. Todavia para outros conjuntos de dados e para utilização desta função dentro de outros códigos maiores e mais complexos, os erros de arredondamento encontrados poderiam se propagar e acarretar erros maiores no resultado final. Os resultados utilizando-se a precisão estendida (dados de tipo double long) e aqueles gerados via Matlab são praticamente