Você está na página 1de 7

Chapter 1

COMPUTAO CIENTIFICA
A computao cientca estuda formas de resolver problemas matemticos atravs de algoritmos numricos codicados e transformados em programas que utilizam ferramentas para clculo cientco. Neste captulo apresentamos algumas destas ferramentas.

1.1

Calculadora cientca

Embora a calculadora no se inclua no conjunto de ferramentas utilizadas na computao cientca, importante falar um pouco sobre ela uma vez que ser utilizada pelos alunos no decorrer do curso. O clculo cientco pode ser realizado utilizando qualquer tipo de calculadora? Sim, porm algumas calculadoras no utilizam arredondamento cientco e, neste caso, o resultado das operaes est sujeito a um erro de arredondamento mais grosseiro do que aqueles realizados se a calculadora utiliza arredondamento cientco. Calculadoras que utilizam arredondamento cientco so denominadas calculadoras cientcas. O que arredondamento cientco? Existem outros tipos de arredondamento ? Existem trs tipos de arredondamento: por truncamento, por excesso, cientco. Considere uma mquina de preciso n, onde os valores so expressos por uma expanso de dgitos do tipo d1 d2 ...dn . Suponha

CHAPTER 1. COMPUTAO CIENTIFICA

ainda que o resultado de uma operao, realizada nesta mquina, possuI preciso n + 1 . Utilizando arredondamento por: trucamento: o valor d1 d2 ...dn obtido simplesmente desconsiderado os dgitos que excedem a preciso. excesso: o valor d1 d2 ...dn obtido somando 1 ao valor do dgito dn da expanso. cientco: o valor d1 d2 ...dn obtido utilizando arredondamento por truncamento se dn+1 < 5 e arredondamento por excesso se dn+1 5. Como saber se a calculadora cientca? Realize a operao 2 3. Se o ltimo dgito do valor obtido for 7 ento a calculadora cientca, ou seja, foi aplicado o arredondamento cientco sobre o resultado da operao. Como saber os limites de erro do valor arredondado? No h como saber exatamente o erro de um valor arredondado.mas apenas os limites deste erro. Os limites de erro so calculados atravs do erro absoluto, relativo e do digse. erro absoluto (E A ): E A ( x, x ) = | x x |, onde x o valor exato e x o valor aproximado. erro relativo (ER ): ER ( x, x ) = valor aproximado.
|xx| , |x|

onde x o valor exato x o

nmero de dgitos signicativos exatos (digse) - digse( x, x ) = (0, 3 + log( + ER ( x, x ))), onde igual a b1n quando utilizado o arredondamento cientco e igual a b1n caso contrrio. Exemplo de aplicao da medida de erro - Calcule o erro associado ao valor de 2 em preciso 3. E A ( 2, 1, 41) = 2 1, 41 = |1, 414213562... 1, 41| = 0, 004213562 ER ( 2, 1, 41) = .

21,41| 1,41

E A ( 2, 2) | 2|

0,004213562 |1,41|

= 0, 002988342 0, 3%

DIGSE( x, x ) = (0, 3 + log(1011 + 0, 002988342)) 2, 2246 . =

CHAPTER 1. COMPUTAO CIENTIFICA

1.2

A MBIENTES DE COMPUTAO NUMRICA

Ambientes do tipo CAS (computao algbrica e simblica), bibliotecas numricas e linguagens de programao cientca so as ferramentas que dispomos para o clculo cientco em computadores, ou seja, para a computao cientca. A computao cientca se estabelece atravs da computao numrica, 1 algbrica e grca. A operao 3 + 1 resulta o valor 0, 583... quando uti4 7 lizada computao numrica e 12 computao algbrica utilizada. Alguns ambientes, como Maple e Maxima, renem os trs tipos de computao (ambientes CAS). Outros, como o Matlab e o Octave, renem computao numrica e grca. A seguir esto descritos alguns ambientes de computao numrica.

1.2.1

MAXIMA

Clone pblico do MAPLE. Ambiente de programao matemtica, escrito em LISP, que utiliza linguagem de comandos e oferece computao numrica, simblica e grca; visualizao de grcos 2D e 3D, sendo que depois de gerados os grcos no podem mais ser alterados; salvar o estado da sesso, porm no permite a criao de scripts.

1.2.2

OCTAVE

Clone pblico do MATLAB. Ambiente de programao matemtica que utiliza linguagem de comandos compatvel com o MATLAB e oferece a possibilidade do usurio criar suas prprias funes codicadas na linguagem proprietria ou em C, C++, FORTRAN; visualizao de grcos em 2D e 3D, sendo que depois de gerados os grcos no podem mais ser alterados; denio de scripts para utilizao no ambiente; include de mdulos escritos em C, C++, Fortran. Na instalao fornecido um editor de cdigo da linguagem M-code que o mesmo utilizado pelo Matlab.

1.2.3

MATLAB

Software proprietrio. Ambiente de programao matemtica que utiliza linguagem de comandos e oferece a possibilidade de uso de diversos addons que incluem no ambiente funcionalidades como processamento de imagens e computao distribuda; visualizao grca 2D, 3D e de volume

CHAPTER 1. COMPUTAO CIENTIFICA

com diversos meios do usurio interagir com o grco; criao de scripts para utilizao no ambiente. Na instalao fornecido um editor de cdigo da linguagem M-code.

1.2.4

MAPLE

Software proprietrio. Ambiente de programao matemtica que utiliza linguagem de comandos e oferece a possibilidade de grcos 2D e 3D com diversos meios do usurio interagir com o grco; criao de scripts para utilizao no ambiente; converso do cdigo gerado para C, Java, VisualBasic, Fortran e para a linguagem do Matlab.

1.3

B IBLIOTECAS NUMRICAS

As bibliotecas numricas se caracterizam como uma coleo de subprogramas utilizados no desenvolvimento de software. A seguir esto descritas algumas bibliotecas numricas e identicados alguns repositrios de bibliotecas.

1.3.1

BLAS

Bibliotecas numricas de lgebra linear, escritas em C e FORTRAN.

1.3.2

EISPACK

Bibliotecas numricas de autovalores e autovetores, escritas em FORTRAN .

1.3.3

LINALG

Bibliotecas numricas de lgebra linear, escritas em C++ .

1.3.4

LINPACK

Bibliotecas numricas de sistemas lineares e mnimos quadrados, escritas em FORTRAN.

CHAPTER 1. COMPUTAO CIENTIFICA

1.3.5

NAG

Repositrio de bibliotecas numricas escritas em C, FORTRAN 90 e MATLAB.

1.3.6

NML

1.4

R EPOSITRIO DE BIBLIOTECAS NUMRICAS

Repositrio de bibliotecas numricas escritas em C segundo a losoa de software livre (Free Software Directory - http://directory.fsf.org/).

1.4.1

Bibliotecas JAVA

Repositrio de biblioteca numricas escritas em JAVA, sendo que: Java Numerics: http://math.nist.gov/javanumerics/ possui links bem interessantes. Apache commons math: http://commons.apache.org/math/userguide/overview.html muito boa e bem documentada.

1.5

L INGUAGENS DE PROGRAMAO CIENTFICA

Linguagem de programao cientca voltada para clculos e, portanto, dispe de recursos para manipulao especcos sobre a string-numrica. Apenas a linguagem FORTRAN foi escrita com propsitos cientcos. Todas as demais linguagens que suportam processamento cientco carecem de bibliotecas e funcionalidades importantes para a realizao do processamento numrico. A seguir so apresentados exemplos de linguagens de programao utilizada na computao cientca.

1.5.1

FORTRAN

Criada na dcada de 50, o FORTRAN foi a primeira linguagem de programao de alto nvel usada, principalmente, em cincia da computao e anlise numrica. Antes dela toda a codicao era desenvolvida na linguagem assembler. A linguagem FORTRAN foi especialmente projetada para computao cientca. As principais vantagens da linguagem so

CHAPTER 1. COMPUTAO CIENTIFICA

sua simplicidadee o grande nmero de bibliotecas numricas disponveis. A desvantagem o controle (bastante) rudimentar da declarao de variveis e da entrada/sada de dados. O FORTRAN 90 uma extenso do FORTRAN 77 que incorpora melhorias na linguagem como, por exemplo, alocao dinmica de memria. Uma desvantagem desta verso da linguagem a inexistncia de um compilador barato sendo que perspectiva desta situao mudar nos prximos anos quase inexistente.

1.5.2

Criada entre os anos 60 e 70, a linguagem foi originalmente desenvolvida para a codicao de sistemas operacionais. O sistema operacional UNIX, por exemplo, foi escrito na linguagem C. A linguagem bastante exvel e poderosa. As principais vantagens da linguagem so o controle da declarao de variveis e as facilidades de controle da entrada/sada de dados. A principal desvantagem que como no foi escrita com propsitos cientco, carece de bibliotecas e funcionalidades cientcas importantes como, por exemplo, aritmtica complexa. Caractersticas herdadas das linguagens de baixo nvel tornam, por vezes, a programao cientca um pouco mais complicada mas isto compensado pela ecincia na execuo dos processos.

1.5.3

C++

Extenso da linguagem C desenvolvida para a programao orientada a objetos. A linguagem particularmente apropriada para o desenvolvimento de projetos que envolvem equipes com muitas pessoas e o reaproveitamento de cdigo.

1.5.4

JAVA

Linguagem orientada a objetos baseada na linguagem C. a primeira verdadeiramente multiplataforma e que pode ser executada em qualquer sistema operacional. Dispe de um amplo conjunto de bibliotecas (ou APIs). Programas em Java so formados por uma coleo de classes armazenadas independentemente e que so carregadas apenas no momento de utilizao.

CHAPTER 1. COMPUTAO CIENTIFICA

10

1.5.5

MATLAB

O MATLAB um software proprietrio de alto desempenho utilizado para realizar clculos com matrizes (MATrix LABoratory) podendo funcionar como calculadora ou linguagem de programao cintca. Os comandos da linguagem so bastante semelhantes a forma como as expresses algbricas so escritas e isto torna seu uso bastante intuitivo e simples. A aquisio do software no garante que o acesso as toolboxes disponveis (bibliotecas), assim quem for usar o MATLAB com uma toolbox ter de comprar o MATLAB e a toolbox desejada. O MATLAB tem um tradutor que converte a simulao em cdigo C/C++ e um compilador que gera arquivos executveis, porm estes arquivos so completamentes dependentes de bibliotecas dinmicas (DLLs) do prprio MATLAB, de modo que para rodar o executvel necessrio antes instalar o MATLAB no computador. O MATLAB desenvolvido em JAVA. Como o repositrio de toolboxes do MATLAB muito grande, muito difcil encontrar algo que j no esteja pronto.

1.5.6

PYTHON

Criada em 1991, uma linguagem de domnio pblico interpretada, imperativa, orientada a objetos, de tipagem dinmica e forte. A linguagem foi projetada com a losoa de enfatizar a importncia do esforo do programador sobre o esforo computacional, ou seja, ela prioriza a legibilidade do cdigo sobre a velocidade de processamento.

Você também pode gostar