|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2006
Messaggi: 149
|
[JAVA] Algoritmo per la risoluzione di sistemi lineari
Ciao a tutti, sto cercando un algoritmo in grado di risolvere sistemi lineari di un centinaio di equazioni in java, qualcuno sa dove potrei trovarlo?
|
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
Oltretutto non esiste un solo metodo per la risoluzione di questo problema e molto dipende dall'implementazione che troverai. Tutto parte dalla trasformazione in matrice del tuo sistema di equazioni (che è poi la naturale rappresentazione matematica dei sistemi lineari). Da qui la risoluzione del sistema richiede la trasformazione della matrice tramite una scomposizione (es° Lu-Decomposition), o la classica eliminazione di Gauss, che permetta una più facile risoluzione del sistema tramite semplici operazioni matematiche. Tutto questo in cosa si traduce? Che per un programma che esegua la risoluzione di sistemi lineari non si può definire un singolo algoritmo (sarebbe lavoro inutile e fine a se stesso) ma si deve procedere definendo una serie di classi e metodi che facciano tutto quello che ti ho brevemente spiegato qui sopra (e più, visto che nella scomposizione entrano in gioco altri algoritmi e principi del calcolo matriciale). Per esperienza (è stato oggetto della mia tesi di laurea) ti dico che non puoi pensare di fare un lavoro di questo tipo, sempre che l'implementazione di suddetta libreria non sia proprio il fine ultimo del tuo lavoro, piuttosto ti conviene appoggiarti a librerie di calcolo numerico che da anni sono state implementate con gli algoritmi più efficienti, debuggate e ottimizzate. Da sempre la miglior libreria di routine per l'algebra lineare (che io sappia) è quella fornita da BLAS e LAPACK. Con una rapida ricerca ho trovato l'implementazione chiamata jBLAS, ma se tanto mi da tanto è comunque una implementazione a livello delle LAPACK quindi decisamente di basso livello. Per qualcosa di più alto livello dovresti fare una ricerca su google con parametri tipo "matrix java library" e vedere cosa salta fuori, perchè solo in questa maniera ottieni delle implementazioni di più alto livello che ti permettano una risoluzione diretta del sistema (andando semplicemente a riempire le matrici con i coefficienti delle tue equazioni ed usando il metodo adatto per farti restituire il vettore dei risultati). |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2010
Città: Leuven
Messaggi: 667
|
Oppure nella tua libreria a casa potresti mettere questo:
http://books.google.be/books/about/M...QC&redir_esc=y Che ti spiega esattamente quello che devi fare e come farlo
__________________
L'elettronica digitale non esiste, è solo elettrotecnica con interruttori piccoli! ![]() |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Dec 2006
Messaggi: 149
|
Perfetto, è esattamente quello che cercavo.
Grazie mille a tutti ![]() Ultima modifica di Van47 : 07-04-2013 alle 13:05. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:54.