PDA

View Full Version : [java] libreria per calcolo integrali


hurricane81
11-07-2008, 11:41
Ciao a tutti!
Come da titolo, qualcuno conosce librerie per il calcolo di integrali?
Ho cercato su tutto il web ma nada de nada! :muro:

Ed_Bunker
11-07-2008, 12:05
Prova a vedere se QUESTO (http://www.jars.com/science/mathematics/resource.php/32159) puo' esserti utile

k0nt3
11-07-2008, 12:08
o magari questo http://www.ee.ucl.ac.uk/~mflanaga/java/Integration.html

hurricane81
11-07-2008, 20:07
Grazie mille! Su Google non c'erano proprio, e dire che sono arrivato alla 5°/6° pagina!

Li provo e faccio sapere.

hurricane81
17-07-2008, 16:39
Il primo link è molto buono, ma purtroppo mi serve una vera e propria libreria usabile all'interno di un altro programma.

Il secondo link è sulla giusta strada, ma avrei bisogno di poter mettere tra i bound anche infinito.
Qualcuno ne conosce altre? E' ovvio che poi quella cosa la vado a verificare io ;)

Grazie ad entrambi!

banryu79
17-07-2008, 17:14
Il secondo link è sulla giusta strada, ma avrei bisogno di poter mettere tra i bound anche infinito.
Qualcuno ne conosce altre? E' ovvio che poi quella cosa la vado a verificare io ;)

Grazie ad entrambi!

Perdona l'intrusione, io tra l'altro sono tutto fuori che un matematico ma sono andato lo stesso a curiosare sul secondo link e guardando al volo la documentazione ho visto questo:

public void setLimits(double lowerLimit, double upperLimit)
public void setLowerLimit(double lowerLimit)
public void setUpperLimit(double upperLimit)


Sono questi i metodi che ti consentono di settare i bounds, come li chiami tu?
Se sì allora per passare anche infinto, dato che il metodo formalmente accetta double, non potresti passargli:

// sono dei campi statici double
Double.POSITIVE_INFINITY;
Double.NEGATIVE_INFINITY;

Sempre ammesso che la libreria gestisca anche questo.

k0nt3
17-07-2008, 17:37
penso che quelle costanti siano in pratica dei valori molto alti, ma d'altra parte se parliamo di calcolo numerico non può essere altrimenti.
se invece cerchi qualcosa per il calcolo letterale... bisogna cercare da altre parti

hurricane81
17-07-2008, 18:13
Si, sono quelli, hai visto giusto.
Purtroppo ci avevo pensato, ma la libreria non supporta questo infinito, restituisce NaN come risultato :muro:


Praticamente devo risolvere integrali tipo
- inf
| x * e^(-x)
| --------------------------- dx
| 1 - x * e^(-x) + e^(-x)
- 0


e^(-x) vale pure 0 se metto infinito, quindi non sarebbe difficile, ma è l'integrale che è un pò complesso da risolvere a mano...

banryu79
17-07-2008, 18:21
Non so se serve: nella classe Double sono definite altre costanti primitive double tipo:


POSITIVE_INFINITY
public static final double POSITIVE_INFINITY

A constant holding the positive infinity of type double. It is equal to the value returned by Double.longBitsToDouble(0x7ff0000000000000L).


NEGATIVE_INFINITY
public static final double NEGATIVE_INFINITY

A constant holding the negative infinity of type double. It is equal to the value returned by Double.longBitsToDouble(0xfff0000000000000L).


MAX_VALUE
public static final double MAX_VALUE

A constant holding the largest positive finite value of type double, (2-2-52)·21023. It is equal to the hexadecimal floating-point literal 0x1.fffffffffffffP+1023 and also equal to Double.longBitsToDouble(0x7fefffffffffffffL).


MIN_NORMAL
public static final double MIN_NORMAL

A constant holding the smallest positive normal value of type double, 2-1022. It is equal to the hexadecimal floating-point literal 0x1.0p-1022 and also equal to Double.longBitsToDouble(0x0010000000000000L).

Since:
1.6


MIN_VALUE
public static final double MIN_VALUE

A constant holding the smallest positive nonzero value of type double, 2-1074. It is equal to the hexadecimal floating-point literal 0x0.0000000000001P-1022 and also equal to Double.longBitsToDouble(0x1L).


MAX_EXPONENT
public static final int MAX_EXPONENT

Maximum exponent a finite double variable may have. It is equal to the value returned by Math.getExponent(Double.MAX_VALUE).

Since:
1.6


MIN_EXPONENT
public static final int MIN_EXPONENT

Minimum exponent a normalized double variable may have. It is equal to the value returned by Math.getExponent(Double.MIN_NORMAL).

Since:
1.6