• Nenhum resultado encontrado

Todos os modelos desta pesquisa foram implementados na linguagem Objective Caml2(LEROY

et al., 2004). As principais motiva¸c˜oes para esta escolha foram (GRINGS, 2006):

1. Programa¸c˜ao multiparadigma. Embora a OCaml, fundamentalmente, perten¸ca `a fam´ılia das linguagens funcionais, ela tamb´em permite os estilos de programa¸c˜ao imperativo e orientado a objetos, todos de maneira integrada no pr´oprio projeto da linguagem;

2. Gerˆencia autom´atica de mem´oria. Todas as aloca¸c˜oes e desaloca¸c˜oes de mem´oria est˜ao a cargo do pr´oprio compilador, o que torna a programa¸c˜ao menos propensa a erros.

3. Portabilidade. Os programas escritos nessa linguagem podem ser compilados, pra- ticamente, sem altera¸c˜ao, em diferentes vers˜oes do Unix (incluindo Linux e MacOS X) e do Microsoft Windows.

4. Gera¸c˜ao de c´odigo eficiente. OCaml possui um gerador de c´odigo nativo r´apido e eficiente. A qualidade do c´odigo gerado ´e competitiva com a qualidade daqueles gerados por compiladores C e, algumas vezes, at´e melhor3.

5. A linguagem possui um interpretador. Al´em do compilador, OCaml tamb´em possui um interpretador, o que acelera o ciclo de desenvolvimento de programas.

6. Grande n´umero de bibliotecas. OCaml possui v´arias bibliotecas constru´ıdas na

pr´opria linguagem para um grande n´umero de aplica¸c˜oes, indo desde estruturas de 2

Dispon´ıvel em http://caml.inria.fr

3

Para uma compara¸c˜ao entre diferentes implementa¸c˜oes de v´arias linguagens de programa¸c˜ao, consul- tar http://shootout.alioth.debian.org

dados at´e rotinas de c´alculo num´erico. Al´em disto, devido `a facilidade de integra¸c˜ao de c´odigos escritos em outras linguagens, o sistema permite que virtualmente todas as bibliotecas escritas nessas linguagens sejam facilmente incorporadas.

7. Comunidade ativa de usu´arios. Objective Caml possui uma grande e ativa comuni- dade de usu´arios espalhados pelo mundo. Assim, a resolu¸c˜ao de eventuais problemas e d´uvidas sobre algum ponto de implementa¸c˜ao ´e grandemente facilitada.

8. Boa documenta¸c˜ao. Os usu´arios e os implementadores da linguagem escrevem boa documenta¸c˜ao, prontamente acess´ıvel pelo site da linguagem ou na Internet.

Um dos objetivos secund´arios desta pesquisa foi demonstrar a grande adaptabilidade e eficiˆencia de linguagens declarativas, sobretudo, as linguagens funcionais, em proble- mas em que, normalmente, s˜ao usadas linguagens imperativas como C ou Fortran. Para alcan¸car este objetivo, todos os procedimentos num´ericos foram implementados ou reim- plementados em Ocaml.

Muitas rotinas para a manipula¸c˜ao matricial e resolu¸c˜ao de sistemas lineares, como a decomposi¸c˜ao LU, foram originalmente escritas em C ou Fortran (PRESS et al., 1993). Resolveu-se, ent˜ao, reimplement´a-las em OCaml, e isto foi essencial para a manuten¸c˜ao e comunica¸c˜ao dos c´odigos entre os v´arios membros da equipe concentrados em Uberlˆandia e em Utah, nos Estados Unidos.

As implementa¸c˜oes dos filtros de Kalman e dos filtros H foram portadas de Ma-

tlab (SIMON, 2001b; SIMON, 2001a) para Ocaml, com ganho consider´avel de eficiˆencia. As transformadas de ondaletas, implementadas segundo o esquema de lifting, foram, em parte, escritas diretamente em OCaml, a partir de descri¸c˜oes algor´ıtmicas (SWEL-

DENS; SCHR ¨ODER, 1996) e, em parte, portadas do c´odigo da biblioteca LIFTPACK4,

escrita em C.

Todo o programa envolvendo as curvas e superf´ıcies de B´ezier foi escrito diretamente a partir da modelagem matem´atica descrita nos cap´ıtulos 5 e 6. Este c´odigo est´a inclu´ıdo no apˆendice B.

4

8 Conclus˜ao

As tentativas iniciais de usar o filtro de Kalman ou o filtro H, para encontrar um modelo preditivo para a ocorrˆencia de varia¸c˜oes verticais das velocidades de derivas zonais, n˜ao se revelaram promissoras. A raz˜ao para esse insucesso parece estar no fato de que ambos os filtros necessitam de um modelo f´ısico completo do fenˆomeno sendo estudado. Nenhum modelo com tal exatid˜ao ´e conhecido pelos geof´ısicos para as derivas iˆonicas. Devido a esta lacuna, a aplica¸c˜ao imediata dos filtros n˜ao pareceu ser vi´avel.

A abordagem utilizando as ondaletas para filtrar as perturba¸c˜oes indesejadas para obter um modelo de deriva zonal, considerando as varia¸c˜oes verticais e tempo geomagne- ticamente calmo, produziu resultados razo´aveis. Embora a forma das curvas obtidas se aproximasse da intui¸c˜ao dos geof´ısicos e tamb´em dos dados experimentais, os resultados, em geral, ficaram abaixo do esperado. Tentaram-se muitas formas de ondaletas-m˜ae, mas em nenhum dos experimentos, conseguiu-se suavizar a curva resultante, eliminando as oscila¸c˜oes, principalmente aquelas causadas pelos tra¸cos F espalhados.

N˜ao foi poss´ıvel a utiliza¸c˜ao de uma mistura de ondaletas com filtro de Kalman, descrita no Cap´ıtulo 4, por raz˜oes similares `aquelas do insucesso do uso do filtro de Kalman sozinho: o n˜ao conhecimento de um modelo f´ısico subjacente.

que todas as abordagens anteriores e possibilitou a constru¸c˜ao do modelo emp´ırico das derivas de plasma usado pela equipe de geof´ısicos (FEJER et al., 2005).

O desenvolvimento de ferramentas num´ericas para a constru¸c˜ao de modelos emp´ıricos voltados para a modelagem das derivas zonais do plasma ionosf´erico, baseado em polinˆo- mios de Bernstein, ´e a principal contribui¸c˜ao deste trabalho. Apesar de sua simplicidade e do n´umero relativamente pequeno de parˆametros, essa t´ecnica de modelagem n˜ao havia, ainda, sido usada em geof´ısica espacial, embora seja utilizada em outras ´areas, tais como a modelagem geom´etrica auxiliada por computador. A jun¸c˜ao da curva de B´ezier, com o controle da suaviza¸c˜ao de sua forma no ajuste pelo m´etodo dos m´ınimos quadrados, que leva em considera¸c˜ao erros de medi¸c˜ao, foi uma das principais raz˜oes do sucesso desta empreitada; sendo a outra, a alta competˆencia t´ecnica dos pesquisadores geof´ısicos envol- vidos, vindos do Instituto de Pesquisas Espaciais, no Brasil, e do Center for Atmospheric and Space Sciences, da Universidade Estadual de Utah, nos EUA.

O objetivo secund´ario desta pesquisa foi efetivamente alcan¸cado, pois confirmou-se a adequa¸c˜ao de linguagens declarativas (tal como as linguagens funcionais, representadas neste trabalho pelo Objective Caml) em problemas de modelagem num´erica, em que, nor- malmente, linguagens imperativas como C ou Fortran, s˜ao usadas. O n´umero de linhas de c´odigo implementadas em todos os experimentos, incluindo os n˜ao bem sucedidos, n˜ao su- perou 1600, contando, nesse n´umero, a vasta quantidade coment´arios espalhados ao longo do c´odigo. A eficiˆencia do c´odigo gerado foi de t˜ao alta qualidade que, em momento algum, se pensou em substituir OCaml por outra linguagem. A clareza do c´odigo permitiu que as equipes compartilhassem informa¸c˜oes e sugerissem modifica¸c˜oes de melhora ao longo do processo de pesquisa, funcionado como uma linguagem de especifica¸c˜ao execut´avel.

Documentos relacionados