You are on page 1of 41

Marcos Paulo de Mesquita

Matemtica Intervalar: Princpios e a Ferramenta C-XSC

Monograa de Graduao apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias da disciplina Projeto Orientado para obtno do ttulo de Bacharel em Cincia da Computao.

Orientador Jones Oliveira de Albuquerque

Lavras Minas Gerais - Brasil 2002

Marcos Paulo de Mesquita

Matemtica Intervalar: Princpios e a Ferramenta C-XSC

Monograa de Graduao apresentada ao Departamento de Cincia da Computao da Universidade Federal de Lavras como parte das exigncias da disciplina Projeto Orientado para obtno do ttulo de Bacharel em Cincia da Computao.

Aprovada em 19 de Julho de 2002

Profa. Renata Couto Moreira

Prof. Ricardo Martins de Abreu Silva

Jones Oliveira de Albuquerque (Orientador)

Lavras Minas Gerais - Brasil

A minha irm Madalena e ao meu cunhado Nogueira que hoje, de longe, e to perto, compartilham comigo este momento de felicidade.

vi

Agradecimentos
Agradeo a Deus por me permitir estar aqui. Agradeo a minha me por toda renncia e doao. Agradeo aos meus irmos Alice, Beto, Melinha, Milene, Marialva, Maria Helena e Madalena que, com muito amor, sempre estiveram do meu lado. Agradeo aos meus sobrinhos Rafaella, Tiago, Daiana, Amanda, Leonardo, Vanessa, Aline, Anglica, Andrelise, Dalise, Daniel e Danilo que so minha motivao maior. Agradeo a Sonila por todo carinho e dedicao. Agradeo aos amigos Danilo, Dalton e Ana Maria por tudo que me ensinaram. Agradeo aos amigos Vanessa, Alisson, Deive Paulo Srgio, Joseane, Alessandra, Jerusa, Giselle e Glucia por todas as palavras de motivao. Agradeo aos companheiros, e acima de tudo, amigos do 107, Fbio, Samuel, Bruno, Thiago, Pablo, Shaolin e Cristiano por toda fora e companheirismo. Agradeo a minhas amigas e amigos da PROEX por toda demonstrao de respeito e amizade. Agradeo ao Professor Jones por todo apoio e compreenso.

vii

viii

Resumo
A computao cientca digital consiste numa seqncia nita de operaes aritmticas. Por outro lado, a soluo exata de um problema matemtico, na maioria da vezes, requer uma seqncia innita de operaes aritmticas exatas. A Matemtica Intervalar uma teoria matemtica que se apresenta como uma soluo no somente para o controle rigoroso e automtico de erros de resultados das computaes numricas, mas tambm para o tratamento e modelagem da incerteza em computao. Este trabalho descreve os principais conceitos desta teoria e apresenta uma ferramenta computacional, C-XSC, utilizada na implementao de algoritmos intervalares.

ix

Sumrio
1 2 Introduo A Aritmtica Intervalar 2.1 Breve Histrico da Aritmtica Intervalar . . . . . 2.2 Intervalo de Nmeros Reais . . . . . . . . . . . . 2.3 O Conjunto II . . . . . . . . . . . . . . . . . . . R 2.4 Operaes aritmticas em II . . . . . . . . . . . R 2.4.1 Soma Intervalar . . . . . . . . . . . . . . 2.4.2 Pseudo Inverso Aditivo Intervalar . . . . 2.4.3 Subtrao Intervalar . . . . . . . . . . . 2.4.4 Multiplicao Intervalar . . . . . . . . . 2.4.5 Pseudo Inverso Multiplicativo Intervalar . 2.4.6 Diviso Intervalar . . . . . . . . . . . . . 2.4.7 Incluso Monotnica . . . . . . . . . . . 2.5 Denies Topolgicas em II . . . . . . . . . . R 2.5.1 Intervalo Simtrico . . . . . . . . . . . . 2.5.2 Interseco de dois Intervalos . . . . . . 2.5.3 Unio de dois Intervalos . . . . . . . . . 2.5.4 Unio Convexa de dois Intervalos . . . . 2.5.5 Distncia entre dois Intervalos . . . . . . 2.5.6 Mdulo de um Intervalo . . . . . . . . . 2.5.7 Dimetro de um Intervalo . . . . . . . . 2.5.8 Ponto Mdio de um Intervalo . . . . . . 2.5.9 Incluso Intervalar . . . . . . . . . . . . 2.6 Funes Intervalares . . . . . . . . . . . . . . . 2.6.1 Imagem Intervalar de uma Funo Real . 2.6.2 Avaliao Intervalar de uma Funo Real xi 1 3 3 4 4 5 5 6 6 7 8 8 8 9 9 9 9 9 10 10 10 11 11 11 11 13

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . .

A Biblioteca C-XSC 3.1 Tipos de Dado Padro, Funes e Operadores Pr-Denidos 3.2 Avaliao de Expresses com Alta Exatido . . . . . . . . . 3.3 Aritmtica de Mltipla-Preciso Dinmica . . . . . . . . . . 3.4 Entrada e Sada em C-XSC . . . . . . . . . . . . . . . . . . 3.5 CToolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Como obter a C-XSC . . . . . . . . . . . . . . . . . . . . . Estudo de Casos 4.1 O Mtodo de Newton Real . . . . . . . . . . . . . . . . 4.2 O Mtodo de Newton Intervalar . . . . . . . . . . . . . 4.2.1 Implementao do Mtodo de Newton Intervalar 4.3 Avaliao de Expresses Aritmticas . . . . . . . . . . 4.3.1 Funes de Duas Variveis . . . . . . . . . . . . 4.3.2 Diferencial de Segunda Ordem . . . . . . . . . . 4.4 Zeros de Funes . . . . . . . . . . . . . . . . . . . . . Concluses

. . . . . .

. . . . . .

. . . . . .

15 16 17 17 18 18 18 19 19 20 21 22 22 23 23 25

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

xii

Lista de Figuras

4.1

Mtodo de Newton Real . . . . . . . . . . . . . . . . . . . . . .

A@ 987542' 0('&$ 6' 31 )%

2.3 2.4 2.5 2.6 2.7 2.8 2.9

 #"  !
xiii

 

2.1 2.2

Representao geomtrica de II . . . . . . . . . . . . . . . . . . R Intervalos na reta real R: (a) Intervalo I ; (b) intervalo e (c) intervalo . . . . . . . . . . . . . . Representao geomtrica da interseco em R . . . . . . . . . . I Representao geomtrica do ponto mdio de um intervalo em R . I Representao geomtrica da distncia em R . . . . . . . . . . . . I Representao geomtrica do mdulo de um intervalo em R . . . . I Representao geomtrica do dimetro de um intervalo em R . . . I Representao geomtrica do ponto mdio de um intervalo em R . I . . . . . . . . . . Imagem intervalar de

5 6 9 10 10 10 11 11 12 20

Captulo 1

Introduo
Os problemas da Computao Cientca se concentram fundamentalmente em trs aspectos: na criao do modelo computacional que reita de forma mais el possvel a realidade em questo, no controle e anlise dos erros que ocorrem no processo computacional e na escolha das tcnicas de programao adequadas para desenvolvimento de software cientco. Salienta-se aqui que a qualidade de um resultado, em computao cientca, depende do conhecimento e do controle que se possa ter sobre seu erro. Algoritmos convencionais, normalmente utilizados em Computao Cientca, chamados de algoritmos pontuais, computam uma estimativa para uma resposta, e, talvez, um erro estimado. O usurio no pode armar a exatido da resposta estimada sem o auxlio de uma anlise de erro, que extensa, dispendiosa e nem sempre vivel. Existem trs fontes de erros em computao numrica: (i) a propagao de erro nos dados e parmetros iniciais, que a mais sria, porque no possvel torn-la arbitrariamente pequena via computao adicional, (ii) o erro de arredondamento e (iii) o erro de truncamento. As tcnicas intervalares consistem em uma alternativa para alcanar limites garantidos para os resultados de computaes cientcas, atravs do controle rigoroso e automtico do erro do resultado. A Anlise de Intervalos, uma teoria matemtica com origem na dcada de 60 [MY59], tem por objetivo responder questo da exatido e da ecincia que aparece na prtica da Computao Cientca. Ela est interessada em tcnicas que podem ser programadas por computador, contendo em sua computao uma anlise rigorosa, completa e automtica dos erros de resultado. Em 1974, Leslie Fox propem uma anlise combinando diferentes reas como anlise intervalar, topologia intervalar, lgebra intervalar e outras [RIB01]. 1

Tcnicas intervalares manipulam dados e parmetros inicias como intervalos, com o indicativo do erro mximo presente nestes valores antes que os mesmos sejam introduzidos no computador. Apresentam-se esquemas computacionais que tratam tanto do problema da propagao do erro destes dados e parmetros iniciais ao longo do processo computacional, assim como dos erros de arredondamento e truncamento. A propagao do erro nos dados iniciais e a acumulao do erro de arredondamento em qualquer seqncia nita de operaes aritmticas podem ser ambas rigorosamente controladas simplesmente pela utilizao de aritmtica de mquina. Desta forma algoritmos intervalares, em contraste com os algoritmos pontuais, computam um intervalo como soluo, com a garantia de que a resposta pertence a este intervalo [HE01]. Portanto, resultados intervalares carregam sempre consigo a segurana de sua qualidade e o grau de sua incerteza, pois o dimetro de um intervalo soluo um indicativo da inuncia do erro do dado de entrada no erro do resultado nal obtido. Este um tipo de anlise de sensibilidade, que pode substituir execues de simulao repetidas e dispendiosas. Atingir uma soluo intervalar signicativa requer uma fundamentao matemtica cuidadosa de todos os estgios do desenvolvimento do algoritmo e sua implementao. Os algoritmos a serem desenvolvidos devem ser algoritmos intervalares, e no verses intervalares de algoritmos pontuais.. O uso de ambientes de programao que suportem representao intervalar para as operaes de clculo cientco favorece o controle automtico de erros atravs de mtodos auto-validveis (mtodos que se encarregam de vericar e garantir a exatido dos clculos efetuados). Foram utilizados neste trabalho a linguagem para a computao cientca C-XSC e o conjunto de ferramentas para resoluo de problemas numricos com vericaes dos resultados CToolbox para estabelecer alternativas de resoluo de problemas de computao cientca.

Captulo 2

A Aritmtica Intervalar
O presente captulo visa a apresentao das principais denies que se fazem necessrias no estudo da Matemtica Intervalar, tais como: a noo de intervalo, a denio do conjunto de intervalos de nmeros reais II e suas correspondentes R operaes aritmticas. Aqui tambm sero destacados alguns aspectos toplogicos deste conjunto e uma breve descrio dos conceitos de funes intervalares. As denies aqui apresentadas esto mais detalhadas em [MOO62], [SUN58] e [CRU01].

2.1 Breve Histrico da Aritmtica Intervalar


Um dos primeiros relatos da utilizao de intervalos como estimadores formais de uma grandeza o algoritmo de Arquimedes para a estimar o valor de . Atravs de uma sucesso de polgonos inscritos e circunscritos com nmero de lados crescente, Arquimedes conseguiu gerar uma seqncia convergente de intervalos para estimar essa constante. Por outro lado, os primeiros estudos da aritmtica intervalar como ramo da Computao Cientca aparecem na dcada de 1950, atravs de alguns estudos isolados e que pouco a pouco passaram a requisitar a ateno de um nmero maior de pesquisadores. nesse contexto que se apresenta o trabalho de Sunaga [SUN58], no qual so investigadas as regras que denem as operaes aritmticas entre intervalos. Neste trabalho so denidos vetores e matrizes intervalares, juntamente com as operaes correspondentes, e so esboados exemplos de aplicaes da aritmtica intervalar para a determinao de solues intervalares para razes de funes e para integrais. Porm, somente com o primeiro livro sobre anlise intervalar, publicado por Moore [MOO62], tais resultados passaram a 3

receber mais ateno da comunidade cientca. Um dos fundamentos que motivaram o desenvolvimento da aritmtica intervalar foi o desenvolvimento de algoritmos numricos para Computao Cientca. Neste contexto, a compreenso dos efeitos da existncia de uma aritmtica de ponto utuante de preciso nita (associada noo de erro de arredondamento) aliada necessidade de truncamento de certos mtodos iterativos impulsionou o desenvolvimento de algoritmos cuja a sada fosse capaz de garantir a proximidade entre a soluo exata e as respostas produzidas. Nesse sentido Rump [RUM 88] (conforme [VAC01]) apresenta uma interessante anlise comparativa do lugar da abordagem intervalar frente a outras abordagens de soluo de problemas do ponto de vista computacional, tais como algoritmos algbricos e algoritmos numricos. Durante as ltimas trs dcadas o lugar dos intervalos compactos como objetos independentes tem crescido continuamente na anlise numrica, na vericao ou determinao de solues de vrios problemas matemticos ou na prova de que tais problemas no possuem soluo em um domnio particular. Diversas reas de aplicao foram exploradas atravs da abordagem intervalar: problemas em engenharia (estrutural, qumica, mecnica, eltrica), robtica, controle, economia, etc [KEA97] e [DD01]. Do ponto de vista matemtico pode-se citar problemas associados soluo de sistemas lineares ou no lineares, otimizao (restrita ou global), determinao de valores e vetores prprios, soluo de problemas de contorno e de equaes diferenciais, entre outros. Isto foi possvel atravs da compreenso de intervalos como extenses de nmeros reais ou complexos, da introduo de funes intervalares e de aritmticas intervalares.

2.2 Intervalo de Nmeros Reais


Um intervalo de reais, ou simplesmente intervalo, denotado pelo par ordenado ], com , e representa o conjunto de todos os de nmeros reais, [ nmeros reais tais que . So exemplos de intervalos: [7;12], [-5;-2], [9;9]. Note que o intervalo [9;9] corresponde ao prprio nmero real 9, recebendo a denominao de intervalo pontual.

2.3 O Conjunto II R
Dene-se II como sendo o conjunto de todos os intervalos de reais, isto , II = R R Assim, vale a seguinte cadeia de incluses

1 1 ' ' ' ' 1' ' ' '


 

1'

   

'

1 ' '  1 ' '

IIR

[X1;X2]

X2

X1

Figura 2.1: Representao geomtrica de II R

2.4 Operaes aritmticas em II R


Sejam II dois intervalos de reais. As operaes de soma, subtrao, mulR tiplicao e diviso em II so denidas por R , onde quaisquer uma das quatro operaes aritmticas. Se denida por uma operao unria, ento Para a operao de diviso, devemos assumir que bem denida. para que a operao seja

2.4.1 Soma Intervalar


Sejam II dois intervalos de reais, com R Dene-se a soma de com como sendo: e

 1 " !   1

  @  ' ) %  ' 8  ' ) %  8  )    ' 0('%  ) %          3        

Acompanhe na Figura 2.1 que associando-se a cada intervalo [ ] ponto ( ) , obteremos uma representao geomtrica para II . R

1 ' '

 

1 '  ' 

II , um R

A Figura 2.2 ilustra um exemplo de soma de dois intervalos.


[1;2] (a) [3;4] (b) [4;6] (c)

Figura 2.2: Intervalos na reta real R: (a) Intervalo I intervalo

; (b) intervalo

Sejam II . As seguintes propriedades algbricas se aplicam soma R de intervalos em II : R

Associatividade: Comutatividade:

Elemento Neutro: , Observaes:

II tal que R

O conjunto II no possui inverso aditivo, ou seja, nem sempre R pode-se achar um intervalo tal que . Seja um intervalo. Ento

2.4.2 Pseudo Inverso Aditivo Intervalar

Exemplo: Seja

2.4.3 Subtrao Intervalar

Sejam dois intervalos de reais II , com R se a subtrao de com como sendo

Exemplo: Sejam .

2 3 3 2 3 ) %3   3  2  10 3  0  ) 3 1 % ) 1 3 %  )  %3  3    1 " !   1

Seja

II um intervalo de reais, com R

. Temos

3 @ @ ) %3 3

  3 3  3 3 3  3  1   1

. Temos

Fechamento: Se

II e R

II ento R

II ; R

. Ento:

 

! @ @ ! @ A@ @ (   ! & )  ! % ) &  % !  

) 1 1 % ) % 


e (c)

%$# "  ! & '6  

) ) 4  53

. Dene-

@ @ @ @ @

   1  1   ' 8   1  1  8    1 @ 6 1  1  1 1     @ 6 1  1   1   @ 1 6  1  1  1    1 @ 6  1  1    @ 6


Para ns de implementao em computadores, pode-se otimizar os clculos feitos nos caso da multiplicao e da diviso, considerando-se os sinais dos extremos dos intervalos, que nos levam a analisar os seguintes nove casos:

II . As seguintes propriedades algbricas se aplicam multipliR Sejam cao de intervalos em II : R

)& % )   % ) &  %       (    & )  % ) &  %   & 6   3   ) %3  ) %3 ' 8   ) %3  ) %3 8  0  A 9@ &  0   10 " 0      3  0      0        1  1   1  1    ' 8  1  1   1  1    8       1 " !   1 
Elemento Neutro: , Comutatividade: Subdistributividade: Fechamento: Se Associatividade: Exemplo: Sejam II e R ; II ento R II tal que R ; e II ; R . e . . Temos .

2.4.4 Multiplicao Intervalar

Sejam dois intervalos de reais II , com R se a multiplicao de com como sendo:

Observaes:

O conjunto II no possui inverso multiplicativo, ou seja, nem R sempre pode-se achar um intervalo tal que

 @

Seja

um intervalo tal que

Ento

) )

1.

5. 4. 3. 2.

. Dene-

 

  6 6 68  &    @ & @ 2 6 986  &    6  &  3 & 3 & 53 3 &   &  6 &  1   "#        #        #   ' 8      #        #    8 1        ' 8     8      " !  @  @  1 " !   1     1 1 3 3  3 3 0     "        @  1   1  1    @ 1 6 @ 1   1     1 @ 6 @ 1   1 1     @ 6 @ 1    1    @ 1 6 1 @
9. 8. 7. 6. II um intervalo de reais, com R . Temos . Temos

Sejam dois intervalos de reais Dene-se a diviso de com

Exemplo 1: Seja Exemplo 2: Seja

Sejam valem:

2.4.7 Incluso Monotnica

2.4.6 Diviso Intervalar

2.4.5 Pseudo Inverso Multiplicativo Intervalar

Seja

5.

!    

6. 4. 3. 2.

1.

Exemplo:

Sejam

II intervalos de reais, tais que R

II , com R como sendo:

#"    

. Ento:

, com

Tem-se .

. Ento, .

2.5 Denies Topolgicas em II R


2.5.1 Intervalo Simtrico
II um intervalo. R Seja Exemplos:

um intervalo simtrico se .

2.5.2 Interseco de dois Intervalos


Sejam e a interseco dos intervalos , se ento .

2.5.3 Unio de dois Intervalos

2.5.4 Unio Convexa de dois Intervalos


Sejam e dois intervalos quaisquer. Dene-se a unio convexa dos intervalos e como sendo o intervalo . Observao: No caso da unio convexa, a interseco dos dois intervalos pode ser vazia. Neste caso, o intervalo resultante ser o intervalo de menor dimetro que contm, simultaneamente, ambos os intervalos operados. 9

   8  

Sejam

1  1 8  ' 8  1 1 8  ' 8 1  1 8            ' 8     1 " !   1


e
A R
a1 b1 a2 b2

dois intervalos conforme Figura 2.3. Dene-se como sendo o intervalo . Se

Figura 2.3: Representao geomtrica da interseco em R I

e dois intervalos conforme Figura 2.4tais que . Dene-se a unio dos intervalos e como sendo o intervalo

1 1 ' 8    8    1 " !   1 

  1  1 ' 8   1 " !   1

@ A  3  3 @  

A R
a1 b1 a2 b2

Figura 2.4: Representao geomtrica do ponto mdio de um intervalo em R I

2.5.5 Distncia entre dois Intervalos

dist(A,B)

a1

b1

a2

b2

Figura 2.5: Representao geomtrica da distncia em R I

2.5.6 Mdulo de um Intervalo


Seja II um intervalo conforme Figura 2.6. Dene-se o mdulo do R , que corresintervalo como sendo o nmero real no-negativo ponde distncia de ao zero. Notao: .
|[a1;a2]|

a1

a2

Figura 2.6: Representao geomtrica do mdulo de um intervalo em R I

2.5.7 Dimetro de um Intervalo

10

3 1

Seja do intervalo

II um intervalo conforme Figura 2.7. Dene-se o dimetro R como sendo o nmero real no-negativo

@  1 3 '

@  1  ' 8 ) @  %   1 ) @ %  1 

Sejam a distncia de . Notao:




3 1  3 ' 8 )  1 " !   1 %  )   %  1 8    1 " !   1


e

 1

3 1 

dois intervalos confome Figura 2.5. Dene-se como sendo o nmero real no-negativo .

que corresponde a
diam([a1;a2])

a1

a2

Figura 2.7: Representao geomtrica do dimetro de um intervalo em R I

2.5.8 Ponto Mdio de um Intervalo




ponto mdio

a1

(a1+a2)/2

Figura 2.8: Representao geomtrica do ponto mdio de um intervalo em R I

2.5.9 Incluso Intervalar

2.6 Funes Intervalares


Uma das mais importantes ferramentas fornecidas pela aritmtica intervalar a limitao da faixa de valores de uma funo [KEA97]. Algumas denies que viro a seguir d uma idia de como uma funo real pode ser transformada em uma funo intervalar e as propriedades bsicas da imagem intervalar e da avaliao intervalar de funes reais.

2.6.1 Imagem Intervalar de uma Funo Real


Sejam uma funo real de varivel real e um intervalo tal que e contnua em . Dene-se como imagem intervalar da funo

11

) %$ 8  $ 

em

Dado IR, diz-se que Exemplo: O intervalo

II uma incluso intervalar de se R uma incluso intervalar para o nmero .

 ' '

 

Seja do intervalo Notao:

II um intervalo conforme Figura ??. Dene-se o ponto mdio R como sendo o nmero real . .

a2

Notao: dimetro do intervalo

. A Figura 2.7 exibe o unidades.


R

1 1 )1 % 68 ) % 68 8   1

2 1 1  3 3 )  % 8  ) % 8 

$ $

'

, ou

simplesmente imagem de

Na gura 2.9 ilustrada a imagem intervalar da funo


2,00

1,50

1,00

0,50

0,00 0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

-0,50

Figura 2.9: Imagem intervalar de

Nota-se que esta uma maneira natural de se denir funes intervalares a partir de funes reais, ou seja, onde uma funo real e um intervalo contido no domnio da funo . um intervalo pontual, ento Nota-se, tambm, que se tambm um intervalo pontual, dado por Assim, a funo real est contida nesta extenso intervalar. Se um intervalo com , ento o intervalo de menor dimetro que contm todos os valores reais de , quando . Exemplos: (i) Seja Assim,

Observe que , pois elas representam a mesma funo real, porm escritas com expresses diferentes. 12

 ) 2'  !% (' )  %$ ' ) 3 (% ' ' 8  ' ) 3 "% '  8 ) '  ) 3 ('% %'   )   !%  A@  A) !% 8 ' ' 43 1 '  ' 8 AA@ @  ' 6 ' ) 41 3 ' ('%  2('%) A@  ' 3 1 %' 3 ' 8 ) )    %$  A @ ) %$ 8  AA@ @  6 ' 3 1 ' 2('&% $A@ )  ' % )   %$ ) &$ @ ) % 8    )   ) %  ) %&$    2('%&$ 0'(&$   '  '   )   $ %$  ) &$  %

(ii) Seja

)% A@ 98753 1 ' 0('&$ 6'


Assim,

 ' 2'(&$ ' 8   ' )0('&$ 8  )   %$ )% %   $


em , o intervalo denido por:

     

2.6.2 Avaliao Intervalar de uma Funo Real


Sejam uma funo real de varivel real e um intervalo. Dene-se avaliao intervalar de em (ou extenso intervalar de ) como sendo a funo intervalar , denida de maneira que cada ocorrncia da varivel real substituda pela varivel intervalar e cada operao substitda pela respectiva operao intervalar de tal modo que, sendo for um intervalo pontual, ento . Exemplo: Seja Ento Para , tem-se =[0;2].[0;2]-[0;2]=[0;4]-[0;2]=[0;4]+[-2;0]=[-2;4]. Observao: Ao contrrio da imagem intervalar, a avaliao intervalar depende da forma com que a funo est expressa. Por exemplo, se tomarmos , tem-se uma funo g, tal que [0;2].([0;2]-[1;1])=[0;2].[-1;1]=[-2;2]. Assim, a avaliao da da funo f descrita no exemplo acima diferente da avaliao de g. Assim,

13

) %  ) % )  3 %   ) %

A@    3    ) % ' 35'  ' ' 3 1) ' A@ % )  0(')2 ('&&$%% $ ) %  )'  '   3   %  ' ) % $  $ $

 '

) 3 ('% ' 2('2 )%

) A@ %

14

Captulo 3

A Biblioteca C-XSC
Os computadores eletrnicos possuem uma aritmtica de ponto-utuante que serve para aproximar os nmeros reais e suas operaes. A maioria das linguagens modernas de programao de alto nvel realizam essas operaes aritmticas atravs de smbolos, fazendo com que o programador seja capaz de escrever expresses simples, frmulas ou funes da mesma forma que na notao usual cientca. Pesquisas no campo da aritmtica computacional esto sendo desenvolvidas pelo Grupo de Matemtica do IAM-UKA (Instituto de Matemtica Aplicada da Universidade de Karlsreuhe) [HH97] desde os anos sessenta com o objetivo de possibilitar que computadores suportem uma aritmtica de ponto-utuante ordinria. Para tornar possvel esses objetivos e algoritmos, circuitos de hardware mais rpidos tm sido projetados e implementados. Algumas decincias na linguagem de programao C fazem-na parecer imprpria para a programao de algoritmos numricos, ela nem mesmo fornece as estruturas de dados numricas bsicas como vetores e matrizes [Ins96]. A linguagem de programao C++, uma extenso orientada a objetos de C, tornou-se mais popular devido a seus novos conceitos de estrutura de dados abstratas (classes), sobrecarga de operadores e funes, mas no se mostra melhor na programao numrica cientca. C-XSC (C for extended for Scientic Computing) uma extenso da linguagem C++ para a computao cientca. C-XSC prov aos programadores de C e C++ uma ferramenta para escrever algoritmos numricos produzindo resultados conveis num ambiente de programao confortvel. Em especial, as facilidades na manipulao do tipo de dado intervalo faz de C-XSC uma ferramenta quase que indispensvel para projetos de implementaes de algoritmos intervalares. 15

Com suas estruturas de dados abstratas, operadores e funes pr-denidas, CXSC prov uma interface entre as linguagens C e C++ e a computao cientca. Alm disso, C-XSC suporta a programao de algoritmos que automaticamente incluem soluo de um dado problema matemtico os limites vericados. Tais algoritmos entregam uma indicao matemtica precisa a cerca da soluo verdadeira. As caractersticas mais importantes da C-XSC so:

3.1 Tipos de Dado Padro, Funes e Operadores PrDenidos


A biblioteca C-XSC fornece os tipos de dados primitivos real, interval, complex, e cinterval (intervalo complexo) com suas apropridadas aritmticas, operadores relacionais e funes matemticas. Todos os operadores so de mxima exatatido. O arredondamentos dos operadores podem ser controlados usando os tipos interval e cinterval. Constante literais podem ser convertidas com mxima preciso. Todas as funes matemticas so tipos de dados numricos primitivos que podem ser chamados pelos seus nomes genricos e, para seus argumentos possveis, devolvem resultados com garantia de alta exatido. Os tipos de dados escalar 16

) ) ) ) ) ) ) ) ) )

Os tipos real, complexos, intervalos, e aritmtica intervalar complexa com propriedades matematicamente denidas; Matrizes e vetores dinmicos; Subvetores de vetores e matrizes; Tipos de dados de Dotprecison; Operadores aritmticos pr-denidos com alta exatido; Funes padro de exatido elevada; Aritmtica de mltipla preciso dinmica; Controle de arredondamento para dados de entrada/sada; Manipulao de erros; Biblioteca de rotinas para a soluo de problemas.

disponveis so: rvector, ivector, cvector, civector, rmatrix, imatrix, cmatrix, cimatrix. O usurio pode alocar ou desalocar espao dinamicamente para vetores e matrizes. Assim, sem recompilao, o mesmo programa pode usar estruturas de qualquer tamanho. A memria usada de modo muito eciente. Quando acessado um componente de um vetor ou de uma matriz, o ndice vericado para aumentar a segurana, evitando acessos a endereos invlidos de memria.

3.2 Avaliao de Expresses com Alta Exatido


Quando se avalia expresses aritmticas, a exatido um fator decisivo em muitos algoritmos numricos. Mesmo se todos os operadores aritmticos e funes sejam de mxima exatido, expresses compostas de uma srie de operadores e funes no devolvero, necessariamente, resultados com mxima exatido. Assim, mtodos tm sido desenvolvidos para garantir tais resultados. Um tipo especial dessas expresses so chamadas de dot product expressions, as quais so denidas como soma de expresses simples. Uma expresso simples uma varivel, uma constante, ou um produto destas duas. As variveis podem ser escalar, vetorial, ou matriz. O resultado de tal expresso um escalar, um vetor, ou uma matriz. Na anlise numrica, dot product expressions so de grande importncia. Por exemplo, mtodos para correo de defeitos ou renamento iterativo de problemas lineares e no-lineares so baseados em tais expresses. Uma avaliao destas expresses com mxima exatido evitam cancelamentos. Para avaliar com tal exatido, C-XSC prov os tipos dotprecision, cdotprecision, idotprecision, cidotprecision.

3.3 Aritmtica de Mltipla-Preciso Dinmica


Alm das classes real e interval, as classes dinmicas long real (l_real) e long interval (l_interval) bem como as suas classes correspondentes de vetores e matrizes so implementadas incluindo toda aritmtica, operadores relacionais e funes padro de mltipla preciso. A preciso da computao pode ser controlada pelo usurio em tempo de execuo. Pela substituio das declaraes de real e interval por l_real e l_interval respectivamente, o usurio transforma sua aplicao em um programa de mltipla-preciso. Este conceito d ao usurio uma ferramenta fcil e poderosa para anlise de erros. Alm do mais, em tempo de execuo, possvel escrever programas que devolvam resultados numricos com uma exatido denida pelo usurio, bastanto apenas que ele indique tal preciso. 17

Todos os operadores para real e interval esto tambm disponveis para l_real e l_interval. Adicionalmente, todas as possveis combinaes entre os tipos de preciso nica ou mltipla esto disponveis. Atravs de uma varivel global pr-denida chamada stagprec (staggred precision) feito o controle da preciso. Componentes de vetores e matrizes podem ter difentes nveis de preciso. Todas as operaes em vetores e matrizes de mltipla-preciso so similares s de preciso simples.

3.4 Entrada e Sada em C-XSC


Usando o conceito de stream e sobrecarga de operadores e do C++, C-XSC permite arredondamentos e controle do formato durante E/S (Entrada e Sada) de dados. Parmetros de E/S, como direo de arredondamento, tamanho dos campos, entre outros, tambm usam sobrecarga de operadores para manipular dados de E/S. Se um novo conjunto de parmetros E/S est para ser usado, o conjunto de parmetros antigos podem ser guardados numa pilha interna. Novos valores para os parmetros podem ser ento denidos. Depois de usados os novos conjuntos, os velhos poderam ser restaurados.

3.5 CToolbox
O C++ Toolbox for Veried Computing um conjunto de ferramentas sosticadas para resoluo de problemas numricos com vericao dos resultados usando caractersticas da C-XSC. Ele dispe de funes para computao de razes de equaes, resoluo de sistemas lineares, otimizao de sistemas entre outras aplicaes da rea cientca.

3.6 Como obter a C-XSC


O download do C-XSC 2.0 pode ser feito no seguinte endereo: http://www. math.uni-wuppertal.de/wrswt/xsc/download.html. As plataformas de desenvolvimento devem ser: PC com Linux ou Sun Solaris Workstation, com o GNU C++ compiler gcc 2.95.2 instalado (presente na maioria das distribuies do Linux).

18

 

Captulo 4

Estudo de Casos
Este captulo descreve algumas aplicaes da aritmtica intervalar na computao numrica. Alguns casos foram estudados para ilustrar as principais funcionalidades do C-XSC e do CToolbox, bem como sua acurcia de seus resultados.

4.1 O Mtodo de Newton Real


O Mtodo de Newton real um algoritmo que serve para calcular a raiz de uma dada equao, atravs da construo de uma sequncia convergente de pontos da reta real. Seja uma funo real contnua com derivada contnua num intervalo que contm a raiz real de , de modo que . Se consideramos um ponto em e calculemos um novo ponto a partir de . Da geometria analtica, sabe-se que a equao da reta que passa pelo ponto e que tem a inclinao . Da mesma forma, a equao da reta tangente ao grco da funo no ponto . (Veja na gura 4.1) Assim, Mas, ponto de interseco da reta tangente ao grco com o eixo das ordenadas, ou seja , portanto . Logo, Assim, o novo ponto da seqncia. Chamamos de operador Newtoniano a expresso

"   %  3 ' )0(% "   ' "2   %  4$' ' 1 " # %  3 ' ) ('&$ 3 $' ) ('% $ ' ) $('% $ % "    ) $('&$ $'  ) " ('% 0$ 7 3  ")( '  ) '$&% ('% $ @  @ ) ('%   '  % 9)$('&$ '  ) $('(%$$ 3 '  ) ('% $$ ) ('&$ ) ' 3  ('%  ) ('% $$  % % % $ ) ('% $ )) ('&$ ('% #"!   )    ('% 
19

)' ) @  2('% $ 2('(%$

)% 2('&$  "'
 

'

)% 2('& $ "

'

x2-2
6

4x-6
4

0 0 0,5 1 1,5 2 2,5 3

-2

-4

-6

Figura 4.1: Mtodo de Newton Real

4.2 O Mtodo de Newton Intervalar


Uma ateno especial dada nesta seo a m de ressaltar o cuidado que se deve ter ao se transcrever verses intervalares de algoritmos reais. De maneira anloga ao mtodo real, a verso intervalar do Mtodo de Newton permite construir uma sequncia convergente de intervalos, cujo limite ser um intervalo que contm a raiz real da funo dada. Por ser um mtodo autovalidvel, se considerarmos um intervalo inicial que no contenha a raiz real, ento, numa dada iterao, obtm-se um intervalo vazio como resultado. Caso contrrio, se o intervalo inicial contm a raiz real da equao e, considerando que a seqncia intervalar que se obtm de intervalos encaixados, ento obtem-se como limite o intervalo de menor dimetro possvel, que ainda contm a raiz real desejada. Na prtica, esta a vantagem do uso do Mtodo de Newton Intervalar. A primeira idia que se tem para denir o Mtodo de Newton Intervalar tomar uma extenso intervalar para o operador Newtoniano real, ou seja, denir , onde so extenses intervalares para as funes reais . Em [OLI97] apresentado um contra-exemplo para esta abordagem, provando que desta forma o mtodo sempre ser divergente. Alm do mais nenhum tratamento feito a m de se evitar divises por zero. Para que a seqncia de intervalos convirja para um intervalo pontual, intervalo este garantido ser a soluo, necessrio que o dimetro tenda para a largura zero. A idia construir uma uma seqncia de intervalos encaixados

) % 7) % 6

)2('% $ 6 2('&$ )% 3  ) %


" % " 

)% @ 0('&$

20

, cujos dimetros vo diminuindo medida que o valor de aumenta. Para tal, avalia-se com intervalos somente a derivada, cuidando para que o intervalo resultante da avaliao intervalar da derivada no contenha o zero. Desta forma, condio fundamental que o intervalo resultante da avaliao intervalar da derivada no contenha o zero, ou seja, necessrio que a funo no tenha pontos crticos (mximos ou mnimos locais) em . Em [OLI97] descrito o Mtodo de Newton Intervalar convergente e o Operador Intervalar Newtoniano apresentado da seguinte forma:

4.2.1 Implementao do Mtodo de Newton Intervalar

Implementao do Mtodo de Newton para o clculo da raiz da funo no intervalo Foram utilizadas as classes l_interval e l_imath para que fosse permitido o uso de preciso-mltipla dinmica da linguagem C-XSC.
#include <iostream> #include "l_interval.hpp" #include "l_imath.hpp" using namespace std; using namespace cxsc;

// Pacote da aritmtica intervalar // Funes intervalares bsicas

l_interval f(const l_real& x) // funco f { l_interval y(x); y = x; return sqrt(y) + (y+1)*cos(y); } l_interval deriv(const l_interval& x) // derivada de f { return (1/(2*sqrt(x))+cos(x)-(x+1)*sin(x)); }

bool criter(const l_interval& x) // Verificando se existe a raiz no intervalo { return Sup(f(Inf(x))*f(Sup(x)) ) < 0 && !(0 <= deriv(x)); }

int main(void)

21

)% 0('&$

construindo assim a sequncia intervalar recursiva

) %



"  % "   '"  &0

 ' $'    

3 &) % 6 8 ) %

0   



)  2('%  ) ('% '

 1

{ l_interval x, xold; stagprec=3; // varivel pr-definida que controla a preciso da computao x = l_interval(2,2.5); cout << "Intervalo inicial e [2,2.5]" << endl; cout << SetDotPrecision(16*stagprec, 16*stagprec-3) << RndNext; if (criter(x)) { do { xold = x; cout << "Diametro do balanceamento atual: = " << real(diam(x)) << endl; x = (mid(x)-f(mid(x))/deriv(x)) & x; } while (x != xold); cout << "Balanceamento final da raiz: " << x << endl; } else cout << "!Critrios no satisfeitos!" << endl; return 0; } // Sada do programa: Intervalo inicial e [2,2.5] Diametro do balanceamento atual: = 0.500000 Diametro do balanceamento atual: = 0.102332 Diametro do balanceamento atual: = 0.000940 Diametro do balanceamento atual: = 4.507683E-008 Diametro do balanceamento atual: = 5.714546E-018 Diametro do balanceamento atual: = 5.813014E-039 Diametro do balanceamento atual: = 5.473822E-048 Balanceamento final da raiz: [ 2.059045253415143788680636155343254522623083897, 2.059045253415143788680636155343254522623083898]

4.3

Avaliao de Expresses Aritmticas

4.3.1 Funes de Duas Variveis


Avaliando a funo abaixo para os parmetros

o programa gera os seguintes resultados:


Avaliao em ponto-flutuante : Incluso Intervalar :

7.180560037061026E+020 [ 1.783000000000000E+003, 1.783000000000000E+003] Correes de defeito necessrias:1

Observao: o resultado correto para f com tais argumentos 1783 22

1  1  1  @ # 0 2 # 0   "@ A '
 

  

% 1 )   ('&$

4.3.2 Diferencial de Segunda Ordem


Utilizando a funo Eval, o resultado do quociente diferencial de segunda ordem

para a funo

Avaliao em ponto-flutuante : Incluso Intervalar :

4.4 Zeros de Funes


Utilizando a funo AllZeros do CToolbox, a avaliao da funo:

no intervalo de entrada [0,20] com tolerncia

Calculando todos os zeros da funo EXP(-3x)-POWER(SIN(x),3) Intervalo de busca : [0,20] Tolerncia : 0,001 [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818602E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818602E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818620E-001]

) % 2) ('%  3  6

23

) 9@  %

Para

Passando pra esta funo um valor , tm-se os seguintes resultados:


2.842170943040400E+002 [ 3.600000000000000E+001, 3.600000000000002E+001 ]

, gerou os seguintes resultados:

"   "   "     




 2     

11

)  &$ @ %  # )% 1   @  0 0('&$



% )  ('&$


inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818620E-001] inclui um nico zero local! [ 5.885327439818601E-001, 5.885327439818619E-001] inclui um nico zero local! [ 3.096363932410645E+000, 3.096363932410647E+000] inclui um nico zero local! [ 6.285049273382585E+000, 6.285049273382587E+000] inclui um nico zero local! [ 9.424697254738520E+000, 9.424697254738522E+000] inclui um nico zero local! [ 1.256637410168936E+001, 1.256637410168937E+001] inclui um nico zero local! [ 1.570796311724721E+001, 1.570796311724722E+001] inclui um nico zero local! [ 1.884955592805117E+001, 1.884955592805118E+001] inclui um nico zero local! 21 incluso(es) intervalar(es)

24

Captulo 5

Concluses
Este trabalho apresentou os conceitos mais importantes necessrios no entendimento da aritmtica intervalar. Mais do que uma simples teoria matemtica, o conjunto de intervalos reais fornece uma metologia que se apresenta muito eciente no projeto e implementao de algoritmos numricos cientcos. Quando se fala em computao numrica, a exatido dos clculos algo de muita importncia e por isso necessria para uma soluo satisfatria, sendo assim, a matemtica intervalar uma perfeita abordagem para se assegurar tal feito, uma vez que a anlise de erros j vem includa no prprio resultado da computao. A ferramenta C-XSC demonstrou ser uma boa opo na computao de clculos matemticos, uma breve descrio deste ambiente foi dada visando a demonstrao de uma das linguagens XSC disponveis para a computao numrica. nota-se que algoritmos intervalares no uma mera transcrio Na seo do seu algoritmo pontual correspondente o que implica em uma anlise criteriosa no desenvolvimento destes. Propostas para trabalhos futuros: Estudo mais aprofundado da aritmtica intervalar na computao cientca;

Estudo mais detalhado do ambiente C-XSC;

Outras reas de aplicao da aritmtica intervalar.

 

) ) )

25

26

Referncias Bibliogrcas
[CM94] D. M. CLUDIO and J. M. MARINS. Clculo Numrico Computacional, chapter Matemtica Intervalar. Atlas S.A., 1994.

[CRU01] M. M. C. CRUZ. Uma relao de equivalncia entre funes intervalares baseada na noo de consistncia. Masters thesis, Universidade Federal do Rio Grande do Norte, 2001. [DD01] A. M. DIAS and G. P. DIMURO. Um ambiente integrado para o ensino e pesquisa em matemtica intervalar, 2001. Universidade Catlica de Pelotas. T. HICKEY and M. H. EMDEN. Interval arithmetic: From principles to implementation. Journal of the ACM, 48(5), September 2001.

[HE01]

[HH97] C. L.et al. HHER. Programando em Pascal XSC. Sagra-Luzzatto, 1997. [Ins96] Institute for Applied Mathematics. C-XSC: A C++ Class Library for Extend Scientic Computing, vol. 1 edition, July 1996. University of Karlsruhe.

[KEA97] R. B. KEARFOTT. Interval computations: Introduction, uses and resources, 1997. University of Southwestern Louisiana. [MOO62] R. E. MOORE. Interval arithmetic and automatic error analysis in digital computing. Technical Report NR-044-211, Stanford University, 1962. [MY59] R. E. MOORE and C. I. YANG. Interval analysis i. Technical Report LMSD-285875, Lockheed Aircraft Corporation, 1959. 27

[OLI97] [RIB01]

P. W. et al. OLIVEIRA. Sagra-Luzzatto, 1997.

Fundamentos da Matemtica Intervalar.

D. R. RIBAS. Construo do espao intervalar, 2001. Pontifcia Universidade Catlica do Rio Grande do Sul.

[SUN58] T. SUNAGA. Theory of an Interval Algebra and its Application to Numerical Analysis, chapter Interval Calculus, p. 547-564. RAAG Memoirs, 1958. [VAC01] G. L. R. VACCARO. Soluo de Equaes Intervalares. PhD thesis, Universidade Federal do Rio Grande do Sul, Porto Alegre, Novembro 2001.

28

You might also like