Dopo un rapido ripasso dei concetti fondamentali possiamo finalmente inoltrarci nel progetto vero e proprio.
Questo programma, realizzato in Javascript, risolve un sistema lineare di m equazioni in n incognite, con il metodo della riduzione
a scala di Gauss Jordan. Consente di risolvere un sistema costituito da un massimo di 10 equazioni in 10 incognite, anche se
questa limitazione è fatta solo per motivi di semplicità.
. Funzionamento .
Come primo passo si richiede all’utente l'indicazione del numero di equazioni e di incognite di cui sarà costituito il sistema. Successivamente occorre introdurre i coefficienti. Sono consentiti solo coefficienti razionali, introdotti nella forma : [-]numeratore[/denominatore], dove le parentesi quadre indicano oggetti opzionali e dove numeratore e denominatore devono essere numeri naturali.Introdotti i coefficienti il codice esegue, alla pressione del tasto apposito, un controllo dell'accettabilità dei valori introdotti. Se necessario viene sempre eseguita anche una riduzione delle frazioni ai minimi termini.
Si può a questo punto iniziare la risoluzione, tenendo conto che l'obiettivo finale è quello di ottenere un sistema nella forma cosiddetta a scala, che, nella sua forma più generale, ha una matrice dei coefficienti (matrice incompleta) con il seguente aspetto :
dove i numeri p1, p2, ecc. si chiamano pivot, e dove le ultime righe possono essere eventualmente tutte nulle. Il numero dei pivot si chiama rango del sistema e lo si indica con r.
È chiaro che il sistema ha soluzioni se e solo se, in corrispondenza alle eventuali ultime m-r righe tutte nulle, anche i termini noti (che non compaiono nella matrice sopra riportata) sono tutti nulli. Se il sistema ha soluzioni, le incognite che non corrispondono a colonne in cui si trovano i pivot sono completamente arbitrarie e si dice che il sistema ha 8n-r soluzioni, con la convenzione che 80 significhi 1. Quando il sistema è ridotto a scala la sua soluzione è immediata: si procede all'indietro, determinando le incognite che compaiono nell'ultima equazione utile e si risale via via fino a trovare tutte le incognite.
. Ottenere il Sistema a Scala .
Per ottenere la riduzione a scala si procede con le seguenti operazioni :
1) Si ricerca qual'è la prima colonna non tutta nulla (di solito nessuna colonna è tutta nulla, altrimenti l'incognita corrispondente è "inutile").
2) Si lascia quindi il controllo all'utente il quale ha la possibilità di eseguire 3 operazioni :
a) può scambiare una riga con un'altra riga ;
- la riga da scambiare della prima casella di testo coincide col livello della riga sul quale si sta operando.
- la riga da sommare coincide con la riga appartenente al livello su cui si sta operando ;
- i valori delle caselle di testo "sostituisci la riga" - "con la riga" devono coincidere ;
c) può moltiplicare una riga con una costante.
3) Si ripetono le operazioni indicate fino ad ottenere la matrice a scala
4) Inoltre ad ogni passo si permette all'utente di scegliere se tornare indietro di un'operazione, annullare tutte le modifiche effettuate, cambiare i coefficienti iniziali