1 / 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. Motivação. Por que intervalos? Incapacidade de representação dos números reais nas máquinas

amato
Download Presentation

COMPUTAÇÃO CIENTÍFICA COM JAVA-XSC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 - XSC MapleInt Arredondamento para baixo: 2.0 com precisão de 10-9 1.999999999 1.999999999 Arredondamento para cima: 2.0 com precisão de 10-9 2.000000001 2.000000001 Comprimento de [1.0, 2.5] 1.5 1.5 Recí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 true Adiçã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]

  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

More Related