2
Programa com interface gr´ afica para testes e estudo de solu¸ oes para problemas de ponto de sela. ´ Italo C. Nievinski Lima * Luiz M. Carvalho Faculdade de Engenharia, FEN, UERJ, Cep 20550-900, Rio de Janeiro, RJ E-mail: [email protected], [email protected]. RESUMO 1 Problema de ponto de sela Em [2], temos que o problema de ponto de sela para matrizes reais ´ e caracterizado por sua matriz de coeficientes em blocos 2 × 2 apresentada abaixo: A B C D x 1 x 2 = b 1 b 2 ou Ax = b, (1) A R n×n , B T , C R m×n , D R m×m com n m. (2) Exclu´ ımos explicitamente os casos onde A ou um ou ambos B e C s˜ ao nulos. Quando o sistema linear descreve um problema de ponto de sela (generalizado), os blocos constituintes A, B, C e D satisfazem uma ou mais das seguintes condi¸ oes: [C1] A ´ e sim´ etrica: A = A T ; [C2] a parte sim´ etrica de A, H = 1 2 (A + A T ), ´ e positiva semidefinida; [C3] B = C; [C4] D ´ e sim´ etrica (D = D T ) e positiva semidefinida; [C5] D = 0 (a matriz nula). O estudo de m´ etodos de solu¸c˜ ao deste tipo de sistema demanda esfor¸co e investimento de tempo em testes e compara¸c˜ oes de resultados para diferentes estruturas de matrizes, m´ etodos, reordenamentos, precondicionadores, aproxima¸c˜ oes entre outros fatores. 2 SaddleOO - A toolbox O objetivo desse projeto ´ e criar um programa que ser´ a uma toolbox para desenvolver e testar etodos de solu¸c˜ oes num´ ericas, com ˆ enfase em problemas de ponto de sela, fornecendo entre suas ferramentas: bibliotecas de m´ etodos de solu¸c˜ oes de sistemas lineares, formas de operar a multiplica¸c˜ ao matriz × vetor, precondicionadores, decomposi¸c˜ oes e ordenamentos, entre outras, desenvolvido dentro do paradigma da orienta¸c˜ ao a objeto e com interface gr´ afica. Um dos pontos importantes do programa ser´ a uma ferramenta que gera relat´ orios com os dados obtidos da resolu¸ ao dos problemas para uma an´ alise detalhada do m´ etodo. A estrutura de classes no paradigma da orienta¸ ao a objeto permite oferecer liberdade para implementar ideias em novas classes sem modificar a estrutura como um todo. Isto permite que usu´ arios possam adicionar ferramentas ` a toolbox com facilidade, umas das grande propostas do projeto. O trabalho n˜ ao visa fornecer novos m´ etodos num´ ericos, mas ser uma ferramenta ´ util no desenvolvimento e testes para os mesmos, pretendendo ser uma inova¸c˜ ao neste sentido, visto que n˜ ao tomamos conhecimento de nenhuma outra ferramenta com este prop´ osito para Matlab. O desenvolvimento do programa se inicia em Matlab, para realiza¸ ao de testes simples e como um prot´ otipo. J´ a com um prot´ otipo em funcionamento, adaptar ou reescrever em C++, onde a orienta¸c˜ ao a objeto ´ e mais eficiente e os testes podem ser rodados em problemas mais dif´ ıceis, * bolsista de Mestrado Faperj 866 ISSN 1984-8218

Programa com interface gr a ca para testes e estudo de ... · interface gr a ca, e contempla mais de 200 formas de se resolver um sistema linear com matrizes de ponto de sela atrav

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programa com interface gr a ca para testes e estudo de ... · interface gr a ca, e contempla mais de 200 formas de se resolver um sistema linear com matrizes de ponto de sela atrav

Programa com interface grafica para testes e estudo desolucoes para problemas de ponto de sela.

Italo C. Nievinski Lima∗ Luiz M. CarvalhoFaculdade de Engenharia, FEN, UERJ,

Cep 20550-900, Rio de Janeiro, RJ

E-mail: [email protected], [email protected].

RESUMO

1 Problema de ponto de sela

Em [2], temos que o problema de ponto de sela para matrizes reais e caracterizado por suamatriz de coeficientes em blocos 2× 2 apresentada abaixo:[

A BC D

] [x1x2

]=

[b1b2

]ou Ax = b, (1)

A ∈ Rn×n, BT ,C ∈ Rm×n, D ∈ Rm×m com n ≥ m. (2)

Excluımos explicitamente os casos onde A ou um ou ambos B e C sao nulos. Quando osistema linear descreve um problema de ponto de sela (generalizado), os blocos constituintes A,B, C e D satisfazem uma ou mais das seguintes condicoes:

[C1] A e simetrica: A = AT ; [C2] a parte simetrica de A, H = 12(A + AT ), e positiva

semidefinida; [C3] B = C; [C4] D e simetrica (D = DT ) e positiva semidefinida; [C5] D = 0 (amatriz nula).

O estudo de metodos de solucao deste tipo de sistema demanda esforco e investimento detempo em testes e comparacoes de resultados para diferentes estruturas de matrizes, metodos,reordenamentos, precondicionadores, aproximacoes entre outros fatores.

2 SaddleOO - A toolbox

O objetivo desse projeto e criar um programa que sera uma toolbox para desenvolver e testarmetodos de solucoes numericas, com enfase em problemas de ponto de sela, fornecendo entresuas ferramentas: bibliotecas de metodos de solucoes de sistemas lineares, formas de operar amultiplicacao matriz × vetor, precondicionadores, decomposicoes e ordenamentos, entre outras,desenvolvido dentro do paradigma da orientacao a objeto e com interface grafica. Um dospontos importantes do programa sera uma ferramenta que gera relatorios com os dados obtidosda resolucao dos problemas para uma analise detalhada do metodo. A estrutura de classes noparadigma da orientacao a objeto permite oferecer liberdade para implementar ideias em novasclasses sem modificar a estrutura como um todo. Isto permite que usuarios possam adicionarferramentas a toolbox com facilidade, umas das grande propostas do projeto. O trabalho nao visafornecer novos metodos numericos, mas ser uma ferramenta util no desenvolvimento e testes paraos mesmos, pretendendo ser uma inovacao neste sentido, visto que nao tomamos conhecimentode nenhuma outra ferramenta com este proposito para Matlab.

O desenvolvimento do programa se inicia em Matlab, para realizacao de testes simples e comoum prototipo. Ja com um prototipo em funcionamento, adaptar ou reescrever em C++, onde aorientacao a objeto e mais eficiente e os testes podem ser rodados em problemas mais difıceis,

∗bolsista de Mestrado Faperj

866

ISSN 1984-8218

Page 2: Programa com interface gr a ca para testes e estudo de ... · interface gr a ca, e contempla mais de 200 formas de se resolver um sistema linear com matrizes de ponto de sela atrav

Figura 1: SaddleOO aba Solver GES com as atuais opcoes para para a resolucao do problema,com as opcoes para gerar relatorios em TEX ou XLS.

com matrizes de maior ordem, com maior velocidade, utilizando pacotes de reconhecida eficaciana comunidade cientıfica como o BLAS, Lapack e Metis. Pensa-se tambem na sua integracao comsoftwares que resolvem sistemas lineares oriundos de diversas aplicacoes cientıficas e industriais,como o IFISS em MATLAB [1], e grandes pacotes para computacao cientıfica como Trilinos emC++ e PETSc em C.

3 Resultados e implementacoes

Uma primeira versao do programa ja esta em funcionamento em MATLAB, inclusive cominterface grafica, e contempla mais de 200 formas de se resolver um sistema linear com matrizes deponto de sela atraves da combinacao de diferentes precondicionadores, reordenamentos e solvers.Tabelas com resultados e dados dos testes ja podem ser gerados em planilhas em formato XLSou TEX para compilacao em PDF. Esta versao ja foi apresentadana edicao passada do CNMAC[4], mas conta com uma serie de bug fixes e melhorias de algumas funcoes. Estamos agoraparalelamente desenvolvendo uma segunda versao com uma estrutura diferente e adicionandonovos recursos a primeira versao, como a possibilidade de trabalhar com matrizes divididas emum numero maior de blocos. Uma necessidade para a aplicacao do programa em um projeto emparceria com a Petrobras. Serao entao adicionados novos metodos de solucao, vizualizacao deresultados e relatorios. Algumas informacoes desta nova versao foram apresentadas em [3].Palavras-chave: MATLAB, orientacao a objeto, problemas de ponto de sela, sistemas lineares,Interface Grafica

Referencias

[1] H. Elman;D. Silvester; A. Wathen, Finite Elements and Fast Iterative Solvers with appli-cation in incompressible fluid dynamics. Oxford University Press, 2005.

[2] M. Benzi; G. H. Golub; J. Liesen, Numerical solution of saddle point problems. ActaNumerica, 14 (2005) 1-137.

[3] Nievinski Lima, Italo. C.. ; CARVALHO, L. M. . Um programa com interface grafica parao estudo de solucoes para problemas de ponto de sela. In: I CMAC Sudeste, 2011, Anaisdo CMAC-SE 2011, Uberlandia - MG, 2011.

[4] Nievinski Lima, Italo. C.. ; CARVALHO, L. M. . MATLAB com Orientacao a Objeto ParaSistemas Lineares em Problemas de Ponto de Sela. In: CNMAC, 2010, Aguas de Lindoia -SP. Anais do CNMAC, 2010. v. 3.

867

ISSN 1984-8218