![]() |
|||||||||||
![]() |
Programmi commentati per la calcolatrice programmabile |
« 1 -> Z «A 1 A SIZE HEAD FOR Q Z A SIZE HEAD FOR P {Q P} 0 PUT NEXT 1 'Z' STO+ NEXT » » |
L. Data una matrice di dimensioni NxN, costruiamo un programma che azzera gli elementi della diagonale principale, nonche' gli elementi al di sopra della stessa. Z = 1 mette nello stack la matrice A per renderla triang. alta da 1 alla dim. di A da Z alla dim. di A metti a 0 gli elem. di riga P e colonna Q la variabile Z viene incrementata di 1 |
« A -> DIAG A SIZE DIAG-> » |
D
nello stack viene messa la matrice A: [[1 2] [3 4]] da cui vengono ottenuti gli elementi diagonali [1 4]. Con A SIZE si ottiene la dim. di A: {2 2} DIAG-> mette nella diagonale di una matrice con le dim. precedenti gli elementi in cima allo stack, ossia [1 4]. Quindi: [[1 0] [0 4]] |
« A SIZE HEAD IDN L D + INV A * - SRAD LOG NEG » |
ES.
La matrice di iterazione di Seidel e' cosi' fatta:
ES = I - (L + D)-1 ·A Si vuole calcolare la velocita' asintotica di convergenza del metodo iterativo di Seidel. Per convenienza il programma oltre a definire ES a partire da A, D, L, includera' anche il calcolo della velocita' asintotica di convergenza (R = -log|λ|) ad una soluzione del sistema lineare Ax = b nei limiti di un'approssimazione. riga 1: definisce una matrice identita' con le stesse dim di A. riga 2,3: calcola la matrice inversa di (L + D) che andra' a moltiplicare A riga 4: il prodotto verra' sottratto alla matrice I(dentita). riga 5: SRAD e' una funzione predefinita che calcola il raggio spettrale della matrice ottenuta in riga 4. Di seguito viene calcolato il logaritmo di segno negato. |
« 1 DIM FOR P ' V¯ Σ (j=1, DIM, A(p,j)^2)' -> NUM NEXT DIM -> LIST «*» STREAM A DET ABS / »ove DIM e' la dimensione della matrice, cosi' definita: « A SIZE HEAD» |
![]() |
© C o p y r i g h
t 1 9 9 4 - 2 0 0 4 w w w . d i z i o n a r i o i n f o r m a t i c o . c o m |
![]() |