Por acaso anda perdido?

quinta-feira, novembro 01, 2007

A análise numérica e os problemas do Milénio

Muitas vezes alguns leigos questionam a importância da análise numérica. Segundo a visão destes, análise numérica resume-se a uma colecção de fórmulas que devem ser utilizadas para resolver exercícios! Quem acha que isto é análise numérica, está muito enganado! Análise numérica é mais do que isto.
Para começar a explicar o que é análise numérica, convém dar alguns exemplos porque Análise Numérica significa dar exemplos!
Um primeiro exemplo vem da resolução de equações não-lineares como por exemplo, encontrar os pontos em que os gráficos das funções exp(-x) e x (figura seguinte) se intersectam.
Um outro exemplo vem da área da computação gráfica que consiste em representar utilizando software, figuras e sólidos geométricos no plano e espaço, respectivamente.




Analiticamente, o primeiro problema (figura da direita) não é possível encontrar uma solução exacta. No entanto, usando o teorema do ponto fixo (de Banach), podemos construir um algoritmo iterativo que converge para a solução desejada. Se olharmos bem para este último exemplo, um teorema é um algoritmo e um algoritmo pode ser programável. Logo um teorema é algo que pode ser programável.
O segundo problema pode ser visto como um problema de interpolação utilizando splines. Para quem não saiba, um spline não é mais que uma função por ramos, em que cada ramo é um polinómio.



Na análise matemática (ou cálculo), as funções por ramos polinomiais (ou splines) são o problema pois não contínuas e diferenciáveis, em geral. Em análise numérica elas são a solução pois permitem representar um conjunto de dados que contém singularidades (veja um exemplo na figura à esquerda, uma interpolação de dados aleatórios usando o polinómio de Newton e usando Splines cúbicos naturais). Por exemplo, para representar um tetraedro, nós nunca podemos usar uma função diferenciável pois deste modo nunca conseguiríamos representar os lados e as faces de um tetraedro.






Para percebermos o porquê da análise numérica devemos recuar até ao princípio do século e olhar para os 23 problemas propostos por David Hilbert. Caso não saibam, 7 destes problemas ainda estão por resolver. Estes foram em considerados em 2000 pela Clay Mathematics Institute como os problemas do milénio. Um dos mais apetecíveis é o estudo da existência e regularidade das equações de Navier-Stokes. A imagem à direita representa um fluido turbulento que pode ser modelado por estas equações.








Se repararem na formulação dos problemas, todos eles nos pedem soluções analíticas. Porém, como podem imaginar, a sua solução teórica (caso exista) é muito complexa, não fosse a Clay Mathematics Institute oferecer um milhão de dólares a quem os conseguir resolver.
No entanto, caso não saibam, quando David Hilbert (foto à esquerda) propôs os 23 problemas no início do século XX, o seu objectivo foi o de estimular o desenvolvimento da matemática. O mais curioso é que durante o último milénio ocorreu aquilo a que se chama uma verdadeira revolução industrial na matemática.

No início do século XX, a matemática deixou de se preocupar com problemas da Mecânica Clássica e passou a preocupar-se com questões provenientes de outras ciências como a Economia, Biologia, Física Moderna (Relatividade e Mecânica Quântica), Química entre outras.


Já no decorrer do século XX, várias áreas da matemática deram grandes avanços como a Análise Complexa, Análise Funcional, Teoria dos operadores e a Teoria das distribuições (ou funções generalizadas).
Com estas teorias, a matemática reduziu o estudo de equações diferenciais aparentemente complicadas ao estudo de equações que envolvam operadores. Com estas abordagens os matemáticos deixaram de dar tanta importância à resolução explícita das equações começaram a dar mais relevo a outro tipo de questões com o estudo qualitativo destas como questões de existência, unicidade e regularidade das soluções.
Nos anos 70, emergiu a Análise Numérica como complemento da Análise Funcional. Passou-se a dar menos importância ao estudo de erros de medições e aproximações e começou-se a dar mais importância à resolução de equações funcionais usando métodos tais como o método de diferenças finitas, método dos elementos finitos, método dos elementos de fronteira, métodos espectrais e o método de decomposição de domínios .Mais recentemente foram introduzidos métodos baseados em wavelets


Por outro lado, emergiu no seio da área da Análise Numérica uma nova área essencialmente preocupada com a manipulação de matrizes de grandes dimensões e ao desenvolvimento de packages em C++ e Fortran tais como a LINPACK e LAPACK.

Estas foram desenhadas especialmente para serem utilizadas em supercomputadores (veja na imagem da esquerda o Supercomputador do instituto Konrad-Zuse Berlin) e para criar linguagens de programação de altíssimo nível como por exemplo o Matlab. Esta nova área designa-se por Álgebra Linear Numérica, sendo que parte deste desenvolvimento deve-se essencialmente a Jack Dongarra, Cleve Moler e James Demmel. Tornou-se assim indispensável o desenvolvimento de métodos iterativos dado que o número de dados do nosso problema é proporcional ao aumento do número de condição de uma matriz. O desenvolvimento de métodos iterativos centrou-se inicialmente no desenvolvimento de métodos para matrizes simétricas e definidas positivas (método dos gradientes conjugados ). Actualmente o estudo deste tipo de métodos centra-se essencialmente em matrizes genéricas que são invertíveis mas não necessariamente simétricas nem definidas positivas (GMRES, Bi-CGSTAB), métodos estes baseados na teoria dos subespaços de Krylov. Um dos grandes impulsionadores destes métodos foi Van der Vorst . Actualmente os métodos numéricos baseados em subespaços de Krylov estão no main-stream da matemática pois estão directamente envolvidos na resolução numérica das equações de Navier-Stokes, melhor dizendo, Computational Fluid Dynamics. Neste tipo de problemas como as equações de Navier-Stokes, a análise numérica veio dar resposta às necessidades em áreas como a aeronáutica, automação, naval, farmacêutico (quem diria !!!) e químico, por exemplo. O moral da história é que na vida prática, ninguém se pode dar ao luxo de esperar que alguém resolva analiticamente o problema.

Na vida prática o que todos esperamos é encontrar soluções imediatas para os problemas, e para tal, a análise numérica é a maneira mais rápida de darmos uma primeira resposta aos nossos problemas reais.

PS: Texto de opinião escrito em Novembro de 2005 e revisto em Maio 2006

2 comentários:

Godinho disse...

Boa tarde,

Se não fosse incómodo, podias-me explicar como é que se faz o método do ponto fixo em matlab ou mathematica, para sistemas de equações não lineares em R^4? Se puderes diz qualquer coisa.

Obrigado.

nfaust disse...

Podemos tratar deste assunto por e-mail. O meu contacto pessoal em http://nelson-faustino.tk/

Para os interessados, um pouco de Benzina

ou o break do Sócrates

O tipo que escreve neste blog lado a lado com um dos seus ídolos

O tipo que escreve neste blog lado a lado com um dos seus ídolos

Quite recently

I was Lost ... in Ghent (Belgium). If you wish to see some pictures from Antwerp, Brugges, Brussels and Ghent click here!

Já agora ...

Visitam mais blogues que um idoso de 69 anos anos? Então cliquem aqui!