Escolar Documentos
Profissional Documentos
Cultura Documentos
MINAS GERAIS
1a LISTA DE EXERCCIOS:
Erros e Sistemas Lineares
Belo Horizonte
07 de abril de 2015
1. Introduo
A soluo computacional de um dado problema desenvolvida atravs das
tcnicas de clculo numrico. Para que a aplicao desses tcnicas seja possvel, deve-se
seguir a sequncia de quatro etapas: definio do problema, modelagem matemtica,
soluo numrica e anlise dos resultados.
Ao definir um problema, espera-se chegar a uma determinada soluo atravs da
manipulao matemtica das variveis que influenciem essa soluo. Nessa primeira
etapa, so, ento, identificadas essas variveis e os possveis resultados para a soluo
do problema.
A modelagem matemtica consiste em se obter equaes que relacionem as
variveis conhecidas com os resultados possveis. J a soluo numrica, comea pela
escolha do mtodo numrico mais apropriado para as condies do problema. Passa-se,
ento, para a sua descrio computacional atravs da elaborao de um algoritmo, que,
por sua vez implementado numa das linguagens de programao existentes.
Finalmente, o programa editado em um arquivo e executado pelo computador.
Atravs da anlise dos resultados possvel verificar se houve adequao da
soluo numrica ao problema real, anteriormente definido. Observa-se tambm, nessa
etapa, os possveis erros que a modelagem matemtica e sua implementao pode
incorrer.
Este relatrio tem o objetivo de introduzir alguns mtodos na soluo
computacional de problemas de lgebra linear. Procura-se a implementao de
algoritmos prticos, com baixo custo computacional e com menor infringncia de erros.
Utiliza-se a linguagem de programao C++ para elaborao dos algoritmos e sua
compilao pelo programa DEV C/C++. Para melhor segurana em relao ao uso das
tcnicas apresentadas, comparou-se alguns resultados com os obtidos pelo programa
Matlab.
2. Exerccios Propostos
1) Desenvolva um algoritmo em C para realizar a multiplicao de duas matrizes.
No se esqueam de verificar se a multiplicao possvel antes de realiz-la.
Teste os resultados obtidos com aqueles gerados pelo MATLAB. Considerar
preciso simples e preciso estendida. Para comparar os resultados calcule a
norma 2 da matriz resultado. Comente!
2) Desenvolva um algoritmo em C para resolver sistemas lineares triangulares
(Superior e Inferior). Teste os resultados obtidos com aqueles gerados pelo
MATLAB. Considerar preciso simples e preciso estendida. Para comparar os
resultados calcule a norma 2 da matriz resultado. Comente!
3) Desenvolva um algoritmo em C para resolver sistemas lineares utilizando
eliminao de Gauss com pivoteamento. Como subproduto calcule o
determinante da matriz. Considerar preciso simples e preciso estendida. Para
comparar os resultados calcule a norma 2 da matriz resultado. Comente!
2
Propriedade
Comprimento total
Bits na mantissa
Bits no expoente
Base
Expoente mximo
Expoente mnimo
Maior nmero
Menor nmero
Dgitos decimais
Simples
32
23
8
2
127
-126
Preciso
Dupla
64
52
11
2
1023
-1022
16
Estendida
80
64
15
2
16383
-16382
19
{
4
contLinha = 0;
contColuna = 0;
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main ()
{
//Variaveis com numeros de linhas e colunas da matriz 1
int numeroLinhaMatriz1 = 0;
int numerocolunasMatriz1 = 0;
//Variaveis com numeros de linhas e colunas da matriz 2
int numeroLinhaMatriz2 = 0;
int numerocolunasMatriz2 = 0;
//Entrada de dados com os numero de linhas e colunas das matrizes
printf ("****** Primeira Matriz ******\n");
printf ("Entre com o numero de linhas da matriz 1 (maximo 10): ");
scanf ("%d",&numeroLinhaMatriz1);
printf ("Entre com o numero de colunas da matriz 1 (maximo 10): ");
scanf ("%d", &numerocolunasMatriz1);
printf ("\n****** Segunda Matriz ******\n");
printf ("Entre com o numero de linhas da matriz 2 (maximo 10): ");
scanf ("%d", &numeroLinhaMatriz2);
printf ("Entre com o numero de colunas da matriz 2 (maximo 10): ");
scanf ("%d", &numerocolunasMatriz2);
if (numerocolunasMatriz1 == numeroLinhaMatriz2)
{
//Numero de elementos da matriz resultante
int numeroElementosMatrizResultante = numeroLinhaMatriz1 * numerocolunasMatriz2;
printf ("\n\nNumero de elementos da matriz resultante: %d\n", numeroElementosMatrizResultante);
//Alocando a primeira matriz
long double matriz1[10][10];
//Alocando a segunda matriz
long double matriz2[10][10];
int contLinha, contColuna;
long double valor;
//Preenchedo a matriz 1
printf ("\n****** Entre com os valores da primeira matriz ******\n");
for (contLinha=0; contLinha<numeroLinhaMatriz1; contLinha++)
{
for (contColuna=0; contColuna<numerocolunasMatriz1; contColuna++)
{
valor = 0;
printf ("Linha %d coluna %d: ", contLinha, contColuna);
scanf ("%Lf", &valor);
matriz1[contLinha][contColuna] = valor;
}
}
}
else
{
2 Exerccio:
0 x1 c1
0 x 2 c 2
.
.
.,. ... ...
l nn x cn
n
l11 0
l 21 l 22
... ...
l n1 l n 2
i 1
xi
ci lij x j
j 1
lij
, i 1,2,..., n.
. .
... ... .,. ... ...
0 u nn x d
0
n n
di
xi
j i 1
uii
ij
xj
, i n, n 1,...,1.
10
valor = 0;
printf ("Linha %d coluna %d: ", contLinha, contColuna);
scanf ("%f", &valor);
matriz[contLinha][contColuna] = valor;
}
}
else
{
if(seSuperiorOuInferior == 'S' || seSuperiorOuInferior == 's')
{
if(contLinha<contColuna)
{
matriz[contLinha][contColuna]=0;
}
else
{
valor = 0;
printf ("Linha %d coluna %d: ", contLinha, contColuna);
scanf ("%f", &valor);
matriz[contLinha][contColuna] = valor;
}
}
else
{
printf("ERRO!!! ESSE SISTEMA NO TRIANGULAR);
}
}
}
}
float matrizResultado[10];
float numerador;
float denominador;
int count = 0;
//Se for superior
if(seSuperiorOuInferior == 'S' || seSuperiorOuInferior == 's')
{
for (int i = ordemDoSistema-1; i >= 0; i--)
{
numerador = 0;
denominador = 0;
numerador = matrizTermosIndependentes[i];
for(int j = 0; j < count; j++)
{
numerador -= matriz[i][i+j+1] * matrizResultado[i +j+ 1];
}
denominador = matriz[i][i];
matrizResultado[i] = numerador / denominador;
count = count + 1;
}
}
11
else
{
if(seSuperiorOuInferior == 'I' || seSuperiorOuInferior == 'i')
{
for (int w = 0; w < ordemDoSistema; w++)
{
numerador = 0;
denominador = 0;
numerador = matrizTermosIndependentes[w];
for(int j = 0; j < count; j++)
{
numerador -= matriz[w][w - j -1] * matrizResultado[w - j - 1];
}
denominador = matriz[w][w];
matrizResultado[w] = numerador / denominador;
count = count + 1;
}
}
}
//Imprime matriz resultado
printf ("\n******Resultado******\n");
for (int k=0; k < ordemDoSistema; k++)
{
printf ("%f\n", matrizResultado[k]);
}
// Clculo da norma 2
float adiciona = 0;
float normaMatriz = 0;
for(int w=0;w<ordemDoSistema;w++)
{
adiciona=adiciona+pow(matrizResultado[w],2);
}
//sqrt(parameter) function for square root, declared in math.h
normaMatriz=sqrt(adiciona);
printf("\n Norma da Matriz: %f\n",normaMatriz);
system("pause");
}
12
13
}
}
}
float matrizResultado[10];
float numerador;
float denominador;
int count = 0;
//Se for superior
if(seSuperiorOuInferior == 'S' || seSuperiorOuInferior == 's')
{
for (int i = ordemDoSistema-1; i >= 0; i--)
{
numerador = 0;
denominador = 0;
numerador = matrizTermosIndependentes[i];
for(int j = 0; j < count; j++)
{
numerador -= matriz[i][i+j+1] * matrizResultado[i +j+ 1];
}
denominador = matriz[i][i];
matrizResultado[i] = numerador / denominador;
count = count + 1;
}
}
else
{
if(seSuperiorOuInferior == 'I' || seSuperiorOuInferior == 'i')
{
for (int w = 0; w < ordemDoSistema; w++)
{
numerador = 0;
denominador = 0;
numerador = matrizTermosIndependentes[w];
for(int j = 0; j < count; j++)
{
numerador -= matriz[w][w - j -1] * matrizResultado[w - j - 1];
14
}
}
//Imprime matriz resultado
printf ("\n******Resultado******\n");
for (int k=0; k < ordemDoSistema; k++)
{
printf ("%f\n", matrizResultado[k]);
}
float soma = 0;
float normaMatriz = 0;
for(int z = 0;z<ordemDoSistema;z++)
{
soma=soma+pow(matrizResultado[z],2);
}
//sqrt(parameter) function for square root, declared in math.h
normaMatriz=sqrt(soma);
printf("\n Norma da Matriz: %d\n",normaMatriz);
system("pause");
return 0;
}
3 Exerccio:
.O mtodo da eliminao de Gauss consiste em transformar o sistema linear
original num outro sistema linear equivalente com matriz dos coeficientes triangular
superior, pois estes so de resoluo imediata. Dizemos que dois sistemas lineares so
equivalentes quando possuem a mesma soluo. O determinante de sistemas lineares
equivalentes so iguais.
Com (n 1) passos o sistema linear Ax = B transformado num sistema
triangular equivalente: Ux= C, o qual se resolve facilmente por substituies.
Obtm-se a soluo de Ax= B em trs etapas:
1 etapa: Matriz Completa
Consiste em escrever a matriz completa ou aumentada do sistema linear original.
15
2 etapa: Triangulao
Consiste em transformar a matriz A numa matriz triangular superior, mediante uma
seqncia de operaes elementares nas linhas da matriz.
3 etapa: Retro-substituio
Consiste no clculo dos componentes x1, x2, ..., xn, soluo de Ax= B, a partir da
soluo do ltimo componente (xn), e ento o substitui regressivamente nas equaes
anteriores.
Teorema: Seja Ax = B um sistema linear. Aplicando sobre as equaes deste sistema
uma seqncia de operaes elementares escolhidas entre:
i) Trocar a ordem de duas equaes do sistema;
ii) Multiplicar uma equao do sistema por uma constante no nula;
iii) Adicionar um mltiplo de uma equao a uma outra equao;
obtemos um novo sistema Ux= C e os sistemas Ax= B e Ux= C so equivalentes.
O algoritmo para o mtodo de eliminao de Gauss requer o clculo dos
multiplicadores:
a cada etapa
chamado de piv.
Se o piv for nulo ou se o piv estiver prximo de zero uma ateno especial de
ve ser tomada, pois impossvel trabalhar com um piv nulo. E trabalhar com um piv
prximo de zero pode resultarem resultados totalmente imprecisos. Isto porque em
qualquer calculadora ou computador os clculos so efetuados com preciso finita, e
pivs prximos de zero so origem a multiplicadores bem maiores que a unidade que,
por sua vez, origina uma ampliaodos erros de arredondamento.
Para se contornar esses problemas deve-se adotar uma estratgia de
pivoteamento, ou seja, adotar um processo de escolha da linha e/ou coluna pivotal.
Esta estratgia consiste em:
i) no incio da etapa k da fase de escalonamento, escolher para piv o elemento de maior
mdulo entre os coeficientes:
.
ii) trocar as linhas k e se for necessrio.
A seguir so apresentados os algoritmos desenvolvidos para a resoluo de
sistemas lineares pelo mtodo de Gauss com pivotamento, na preciso simples e
estendida respectivamente. Para a resoluo do sistema triangular superior resultante,
16
17
18
{
novaordem = novaordem - 1;
}
}
printf("\n\n************* MATRIZ TRIANGULAR SUPERIOR ******************\n");
for (x=0; x<ordem; x++)
{
for (y=0; y<ordem; y++)
{
printf ("Linha %d coluna %d: %10f \n", x, y, triangsuperior[x][y] );
}
}
19
RESULTADOS
1 Exerccio:
O algoritmo rodado em Dev C++, com preciso simples, apresentou o seguinte
resultado:
****** Primeira Matriz ******
Entre com o numero de linhas da matriz 1: 5
Entre com o numero de colunas da matriz 1: 2
****** Segunda Matriz ******
Entre com o numero de linhas da matriz 2: 2
Entre com o numero de colunas da matriz 2: 7
Numero de elementos da matriz resultante e igual a: 35
****** Entre com os valores da primeira matriz ******
Linha 0 coluna 0: 3.145
Linha 0 coluna 1: 0.234
Linha 1 coluna 0: 0.002
Linha 1 coluna 1: 10.42
Linha 2 coluna 0: 8.44
Linha 2 coluna 1: 0.03
Linha 3 coluna 0: 6.12
Linha 3 coluna 1: 0.15
Linha 4 coluna 0: 0.014
Linha 4 coluna 1: 12
****** Entre com os valores da segunda matriz ******
Linha 0 coluna 0: 2.35
Linha 0 coluna 1: 6.36
Linha 0 coluna 2: 0.179
Linha 0 coluna 3: 0.098
Linha 0 coluna 4: 0.432
Linha 0 coluna 5: 9.32
Linha 0 coluna 6: 7.77
Linha 1 coluna 0: 4.32
Linha 1 coluna 1: 8.43
Linha 1 coluna 2: 0.086
Linha 1 coluna 3: 3.75
20
21
0.2340
0.0020
10.4200
8.4400
0.0300
6.1200
0.1500
0.0140
12.0000
2.3500
6.3600
0.1790
0.0980
0.4320
9.3200
7.7700
4.3200
8.4300
0.0860
3.7500
0.7340
8.9500
7.3300
8.4016
21.9748
0.5831
1.1857
1.5304
31.4057
26.1519
45.0191
87.8533
0.8965
39.0752
7.6491
93.2776
76.3941
19.9636
53.9313
1.5133
0.9396
3.6681
78.9293
65.7987
15.0300
40.1877
1.1084
1.1623
2.7539
58.3809
48.6519
51.8729
101.2490
1.0345
45.0014
8.8140
107.5305
88.0688
B =
Resultado =
norma =
287.1871
>>
No houve diferenas significativas da preciso simples para a dupla. Observouse que com uma maior preciso, o comprimento da matriz fica levemente inferior.
22
2 Exerccio:
O algoritmo rodado em Dev C++, com preciso simples, apresentou o seguinte
resultado para um sistema triangular superior:
Digite a ordem do sistema (maximo 10): 3
O Sistema e triangular superior ou inferior?
(Digite S para superior ou I para inferior): S
Entre com a matriz dos termos independentes
Termo 0: 1.4142135
Termo 1: 3.1415926
Termo 2: 1.7320508
******Resultado******
-1.083555
1.441051
0.637186
2.7183
1.4142
1.4142
1.7321
2.7183
23
>> B
B =
1.4142
3.1416
1.7321
>> c=inv(A)*B
c =
-1.0836
1.4411
0.6372
>> norm(c)
ans =
1.9123
******Resultado******
0.450158
1.356178
-0.461151
Norma da Matriz: 1.501507
Press any key to continue . . .
24
2.7183
1.4142
1.4142
1.7321
2.7183
>> C=inv(A)*B
C =
0.4502
1.3562
-0.4612
>> norma=norm(C)
norma =
1.5015
3 Exerccio:
O mtodo de Gauss com pivoteamento foi rodado e apresentou os seguintes
resultados para preciso simples:
****** Ordem do Sistema ******
Entre com a ordem do sistema (maximo 10): 3
25
4.000000
Linha 0 coluna 1:
-6.000000
Linha 0 coluna 2:
5.000000
Linha 1 coluna 0:
0.000000
Linha 1 coluna 1:
5.000000
Linha 1 coluna 2:
1.500000
Linha 2 coluna 0:
0.000000
Linha 2 coluna 1:
0.000000
Linha 2 coluna 2:
1.200000
26
Linha 0 coluna 2: 5
Linha 1 coluna 1: 5
Linha 1 coluna 2: 1.5
Linha 2 coluna 2: 1.2
******Resultado******
2.000000
-1.000000
3.000000
28
Onde:
so incrementos espaciais;
o incremento temporal; e , o
Tm-se, portanto:
Onde:
)+
)+
)+
E para o tempo:
Para aplicar as equaes 4.5 e 4.6 tem-se que discretizar a regio com elementos
regulares. O sistema de coordenadas pode ser cartesiano ou polar, e os elementos
quadrados, retangulares ou hexagonais. A figura 4.2 ilustra a clula introduzida por Yee
para discretizao tridimensional.
29
(
)+
30
(
(
)
)
) ]
,
onde:
a mxima velocidade de fase;
As condies de fronteira devem ser usadas convenientemente para simular a
extenso da soluo no infinito.
Existem, porm,vrias tcnicas aplicveis s fronteiras de modo a simular o
espao aberto. O mtodo das diferenas finitas um mtodo de resoluo de problemas
que englobam equaes diferenciais parciais. Tais problemas so definidos
univocamente por trs caractersticas: seja por uma equao diferencial parcial, como
o caso das equaes de Laplace ou de Poisson; seja pela delimitao de um domnio; ou
at mesmo por condies de contorno e/ou por condies iniciais.
O mtodo de diferenas finitas um dos mais populares na anlise de problemas
no domnio do tempo. Dentre as vrias aplicaes do mtodo, em engenharia eltrica,
destacam-se:
A equao 4.9 mostra que o campo eltrico total dado pela soma do campo
eltrico incidente com o campo eltrico espalhado. Da mesma forma, por meio da
equao 4.10, tem-se que o campo magntico total a soma dos campos magnticos
incidente e espalhado.
Em uma situao em que o espao destitudo de corpos, tem-se que toda
medida de campo realizada, em qualquer que seja o ponto desse espao, indica um valor
de campo igual ao campo original produzido pela antena. Entretanto, em situaes em
que um espalhador esteja presente, o objeto iluminado pelos campos eletromagnticos
incidentes e h interao entre estes campos e os campos espalhados, caracterizando
assim, o fenmeno do espalhamento eletromagntico. Assim, tem-se que duas entidades
distintas esto envolvidas neste fenmeno: os campos eletromagnticos e o espalhador.
Considerando-se uma regio fonte de campo eletromagntico e outra onde se
situa um objeto espalhador, o fenmeno de espalhamento ocorre nessa segunda regio.
As influncias dos campos incidentes sobre o espalhador so computadas por meio de
expresses analticas para os campos incidentes originais. Dessa maneira, para o clculo
do campo eletromagntico total, necessrio somente encontrar a parcela do campo
espalhado. Tem-se, tambm, que as ondas eletromagnticas geradas pela fonte
propagam-se pelo espao livre 0 e que a geometria do
espalhador e seu material podem ser considerados arbitrrios.
O espalhamento eletromagntico pode ser modelado matematicamente atravs
das
equaes de campo eletromagntico e das condies de contornos inerentes ao
problema tratado. As equaes de campo, eltrico e magntico, so obtidas atravs das
equaes de Maxwell, conforme demonstrado na explicao do Mtodo das Diferenas
Finitas.
Mtodo Sem Malhas
Diferentemente dos mtodos baseados em malhas, os mtodos sem malha so
caracterizados pelo uso de um conjunto de ns espalhados pelo domnio do problema,
ao invs de uma malha ou grid. Um dos gargalos computacionais desses mtodos o
processamento dos ns, cujo tempo muito grande quando comparado, por exemplo,
com o Mtodo de Elementos Finitos (FEM). Apesar disso, o processamento de cada n
pode ser feito de maneira independente, tornando o processo facilmente paralelizvel. .
Cada n contribui com uma linha do sistema, no interferindo na contribuio dos
demais ns.
32
Embora existam vrios tipos de mtodos sem malha, discute-se aqui em maiores
detalhes o MLPG (Meshless Local Petrov Galerkin method) para a resoluo de
problemas eletromagnticos, principalmente problemas estticos (eletrostticos e
magnetostticos). Esse mtodo foi escolhido por ser um mtodo bastante flexvel e por
ser considerado um mtodo verdadeiramente sem malha.
O conjunto de equaes simplificadas para os casos eletrosttico e
magnetosttico combinadas com as condies de contorno so denominados forma forte
para os problemas eletrostticos e magnetostticos.
Como no existe uma malha para dar conectividade aos ns, um desafio para
esse mtodo determinar com eficincia quais ns pertencem vizinhana de um
determinado n. Para resolver esse problema, utiliza-se uma rvore de busca
denominada kd-tree. Outra dificuldade dos mtodos sem malha est na imposio das
condies de contorno de Dirichlet quando as funes de forma no apresentam a
propriedade do delta de Kronecker, o que o caso para funes de forma construdas a
partir do mtodo de mnimos quadrados mveis (MLS).
No FEM, o processo de gerao da malha pode ser extremamente custoso e no
apresenta a facilidade de ser paralelizado. Alm disso, mtodos com malha nem sempre
so apropriados para quaisquer tipos de problemas, como aqueles em que a
configurao espacial muda com o tempo (e.g. fluidos) ou problemas em que a presena
de elementos degenerados so comuns.
Apesar do grande avano de mtodos tradicionais baseados em malha, existem
casos em que se justifica a utilizao de mtodos sem malha e a paralelizao de tais
mtodos os torna mais competitivos.
O MLPG se difere de outros mtodos sem malha baseados no mtodo de
Galerkin, pois a abordagem Petrov-Galerkin permite que as funes de teste e de forma
sejam diferentes. Esse procedimento torna possvel a soluo do problema global
atravs de integraes de vrios subdomnios locais, ao invs de se resolver uma nica
integrao sobre todo o domnio, como acontece no EFG (Element Free Galerkin). Cada
subdomnio pode ter qualquer tamanho ou forma geomtrica e o conjunto de
subdomnios deve cobrir completamente o domnio global.
Nos mtodos sem malha, a funo de aproximao pode ser definida usando
diferentes abordagens, como o mtodo de Mnimos Quadrados Mveis (MLS),
Reproducing Kernel Particle Method (RKPM), Funes de Base Radial (RBF),
aproximaes polinomiais, entre outras.
A abordagem Petrov-Galerkin, utilizada no MLPG, permite que as funes de
teste e de peso sejam diferentes. Para ilustrar o conceito do MLPG, considere um
domnio arbitrrio
descrito por um conjunto de nos dispostos em seu interior e ao
longo de seu contorno . Considera-se como vlida em a seguinte forma fraca:
33
Onde
a funo de forma do n e
k que so usadas para calcular a aproximao.
o nmero de ns da vizinhana do n
ao
Nos metodos sem malha, a funo de aproximao (2) pode ser definida usando
diferentes abordagens, como o mtodo de Minimos Quadrados Moveis (MLS),
Reproducing Kernel Particle Method (RKPM), Funcoes de Base Radial (RBF),
aproximaes polinomiais, entre outras.
Algumas possveis funes que podem ser usadas para definir W, como a funo
degrau de Heaviside ou a funo de peso MLS. Assume-se que W definido pela
funo de Heaviside, i.e. W = 1, o que leva a:
34
4.2. SEP
Anlise de Redes Eltricas
Os sistemas eltricos de potncia nos tempos atuais so, na maioria das vezes,
sistemas complexos, formados a partir de sistemas regionais de mdio porte,
interligados uns aos outros, resultando numa grande rede eltrica, que pode conter
milhares de barras trifsicas e equipamentos, tais como geradores sncronos,
transformadores, autotransformadores, linhas de transmisso e cargas.
Para tratar esses equipamentos de uma forma interligada e dirigida para sistema
ser de grande porte, eles devem ser representados por seus modelos de circuito, no
domnio das fases ou das componentes simtricas, resultando em matrizes de
impedncia ou admitncia primitivas. A interligao destes equipamentos de maneira a
formar a rede eltrica tratada atravs de matrizes de incidncia, que descrevem como
cada um dos elementos est disposto na rede eltrica, dando total informao sobre a
sua topologia. Elas so essenciais para, entre outras funes, se determinar as
formulaes nodal e de lao de redes eltricas.
35
linhas e
so tais que:
grafo esto dispostos numa determinada malha ou lao . Assim, seus elementos
so
tais que:
em que
36
4. Concluses
Esse trabalho propiciou o amadurecimento das tcnicas de mtodos numricos
para sistemas lineares, bem como da programao na linguagem C++. Avaliou-se os
erro susceptveis, diferentes tipos de a preciso e verificou-se um alto custo
computacional dessa linguagem para precises maiores.
5. Referncias Bibliogrficas
38