COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

17
COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC Bruno José Torres Fernandes Edmo Sérgio Ribeiro de Brito Marcília Andrade Campos Renato Viana Ferreira bjtf, esrb, mac,rvf[at]cin.ufpe.br

description

COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC. Bruno José Torres Fernandes Edmo Sérgio Ribeiro de Brito Marcília Andrade Campos Renato Viana Ferreira bjtf, esrb, mac,rvf[at]cin.ufpe.br. Motivação. Por que intervalos? Incapacidade de representação dos números reais nas máquinas - PowerPoint PPT Presentation

Transcript of COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Page 1: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Bruno José Torres Fernandes

Edmo Sérgio Ribeiro de Brito

Marcília Andrade Campos

Renato Viana Ferreira

bjtf, esrb, mac,rvf[at]cin.ufpe.br

Page 2: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Motivação

Por que intervalos? Incapacidade de representação dos números reais

nas máquinas Controle de erro numérico em computação científica

Por que Java? Portabilidade Independência de plataforma e dispositivo Linguagem mais popular

Page 3: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Exemplosdouble d = 3.9-3.8;if(d==0.1) System.out.println("equals");else System.out.println("not equals,“ + d);-> not equals, 0.10000000000000009

double d = 0.0;for(int i = 0; i < 10; i++){d += 0.4;}System.out.println(d);-> 3.9999999999999996

Page 4: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Ponto-flutuante em Java

Segue parcialmente o padrão IEEE 754 3 grandes falhas

Não dá suporte aos bits de exceçãoNão implementa os arredondamentos

direcionadosNão provê um tipo intervalar de dado de

máquina

Page 5: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Objetivos

Desenvolver uma extensão intervalar para Java - Java-XSC

Desenvolver uma calculadora intervalar utilizando a biblioteca Java-XSC

Resolver problemas numéricos com a solução proposta

Page 6: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Resultados (1/5)

Implementação dos arredondamentos direcionados

Definição do tipo Intervalo

Page 7: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Resultados (2/5)

Implementação da biblioteca Java-XSC, com as seguintes operações intervalares: IgualdadeComprimentoPertenceSimétricoRecíprocoAbsoluto

Page 8: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Resultados (3/5)

AdiçãoSubtraçãoMultiplicaçãoDivisão InterseçãoUniãoEstá contidoDistância

Page 9: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Resultados (4/5)

Interval a = new Interval(3.9, 3.9, 10);Interval b = new Interval(3.8, 3.8, 10);Interval c = IntervalMath.sub(a,b);if(c.pertains(0.1)){System.out.println("Pertence");

} else { System.out.println("Não pertence");}System.out.println(c);-> Pertence[0.1, 0.1000000002]

Page 10: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Resultados (5/5)

Interval d = new Interval(0, 0, 10);Interval e = new Interval(0.4, 0.4, 10);for(int i=0;i<10;i++){d = IntervalMath.add(d, e);

}System.out.println(d);

->[3.9999999991, 4.0000000013]

Page 11: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Java - XSC MapleInt

Arredondamento para baixo: 2.0 com precisão de 10-9

1.999999999 1.999999999Arredondamento para cima: 2.0 com precisão de 10-9

2.000000001 2.000000001Comprimento de [1.0, 2.5]

1.5 1.5Recíproco de [-5.0, -2.0] com precisão de 10-9

[-0.500000001, -0.199999999]

[-0.500000001, -0.199999999]0.0 pertence a [-0.1, 0.1]

true trueAdição: [1.0, 2.5] + [0.0, 8.9] com precisão de 10-9

[0.999999999, 11.400000001]

[0.999999999, 11.400000001]Subtração: [-8.9, 0.0] - [0.0, 8.9] com precisão de 10-9

[-0.000000001, 17.800000001]

[0.000000000, 17.800000001]Multiplicação: [1.0, 3.0] * [4.0, 5.0] com precisão de 10-9

[3.999999999, 15.000000001]

[3.999999999, 15.000000001]Divisão: [4.0, 5.0] / [1.0, 2.5] com precisão de 10-9

[1.599999999, 5.000000001] [1.599999999, 5.000000006]

Page 12: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Validação

Uso da extensão intervalar do Maple – intpakX (MapleInt)

Resultados esperados foram obtidos Precisão alcançada similar ou superior

aos da biblioteca de comparação

Page 13: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Trabalhos Futuros

Expansão da biblioteca para conter operações:LogarítmicasTrigonométricasEstatísticas

Uso da biblioteca em outros projetos Simulação de ambientes

Page 14: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Cooperação

DIMAp/ UFRN Karlsruhe Wuppertal

Page 15: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Conclusões

Versão atual da biblioteca validada com o MapleInt

Resultados bastante satisfatórios Grande possibilidade de expansão da

biblioteca

Page 16: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Referências

http://www.cin.ufpe.br/~javaxsc http://www.dimap.ufrn.br/~java-xsc http://www.math.uni-wuppertal.de/~xsc/

software/intpakX/ http://java.sun.com/

Page 17: COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

Bruno José Torres Fernandes

Edmo Sérgio Ribeiro de Brito

Marcília Andrade Campos

Renato Viana Ferreira

bjtf, esrb, mac,rvf[at]cin.ufpe.br