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

A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

1 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

2 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

3 Exemplos double 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

4 Ponto-flutuante em Java Segue parcialmente o padrão IEEE 754 3 grandes falhas  Não dá suporte aos bits de exceção  Não implementa os arredondamentos direcionados  Não provê um tipo intervalar de dado de máquina

5 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

6 Resultados (1/5) Implementação dos arredondamentos direcionados Definição do tipo Intervalo

7 Resultados (2/5) Implementação da biblioteca Java-XSC, com as seguintes operações intervalares:  Igualdade  Comprimento  Pertence  Simétrico  Recíproco  Absoluto

8 Resultados (3/5)  Adição  Subtração  Multiplicação  Divisão  Interseção  União  Está contido  Distância

9 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]

10 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]

11 Java - XSCMapleInt Arredondamento para baixo: 2.0 com precisão de 10 -9 1.999999999 Arredondamento para cima: 2.0 com precisão de 10 -9 2.000000001 Comprimento de [1.0, 2.5] 1.5 Recíproco de [-5.0, -2.0] com precisão de 10 -9 [-0.500000001, - 0.199999999] 0.0 pertence a [-0.1, 0.1] true Adição: [1.0, 2.5] + [0.0, 8.9] com precisão de 10 -9 [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] Divisão: [4.0, 5.0] / [1.0, 2.5] com precisão de 10 -9 [1.599999999, 5.000000001][1.599999999, 5.000000006]

12 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

13 Trabalhos Futuros Expansão da biblioteca para conter operações:  Logarítmicas  Trigonométricas  Estatísticas Uso da biblioteca em outros projetos Simulação de ambientes

14 Cooperação DIMAp/ UFRN Karlsruhe Wuppertal

15 Conclusões Versão atual da biblioteca validada com o MapleInt Resultados bastante satisfatórios Grande possibilidade de expansão da biblioteca

16 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/

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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google