Versione stampabileMentre studiavo per l'esame di calcolo numerico all'università ho fatto qualche funzione che semplifica i calcoli su determinate operazioni. Il linuguaggio è quello delle calcolatrici programmabili Texax Instruments (TI89 e TI92), ma è molto semplice e potete convertirlo in qualsiasi linguaggio con delle librerie matematiche. le righe con @ sono commenti.
Il programma seguente, data una funzione f(x), scrive il polinomio di interpolazione di Lagrange che passa per n punti inseriti dall'utente, e il resto r(x) secondo il teorema del resto. Il programma è scritto in modo che f(x) sia definita al di fuori di esso (con la texas la definite nell'ambiente home), infatti l'unico argomento è il numero di punti n.
Prgm
CLrIO
Local n,i,j,r,xx,p,d,nom,den
For 1,1,n
Input xx
if 1=1 Then
{xx}->l @crea una nuova lista
Else
augment(l,{xx})->l @inserisce xx in fondo alla lista l
endif
endFor
dim(l)->d @dimensione della lista
0->r
1->nom
1->den
While 1
1->j
While j
if i!=j then
nom*(x-l[j])->nom
den*(l[i]-l[j])->den
Endif
j+1->j
endWhile
r+f(l[i])*nom/den->r
1->nom
1->den
i+1->i
endWhile
disp r @ scrive il polinomio di interpolazione
pause
1->i
1->r
d(f(x),x)->t @d è la derivata
(x-l[i])*r->r
i+1->i
While i
d(t,x9)->t @d è la derivata
(x-l[i])*r->r
i+1->i
endWhile
disp t/(d!)*r @scrive r(x)
endPrgm
Di seguito una breve serie di comandi per eseguire le operazioni più comuni sulle matrici con la Texas Instruments:
a^-1 : inversa (sulla texas non utilizzate chiaramente il ^ ma direttamente l'elevamento)
a^t : trasposta (sulla texas non utilizzate chiaramente il ^ ma direttamente l'elevamento)
colDim : numero colonne
rowDim : numero righe
colNorm : norma di matrice 1
rowNorm : norma di matrice infinito
dim: dimensione
det: determinante
Simult(matrix,vector) : risolve un sistema lineare
La funzione seguente triangolarizza la matrice attraverso l'eliminazione di Gauss.
Func
Local i,j,k,kk,n,nn
dim(a)->n
n[2]->nn
n[1]->n
For k,1,n-1
For i,k,n-1
a[i+1,k]/(a[k,k])->kk
For j,k,nn
a[i+1,j]-a[k,j]*kk->a[i+1,j]
endfor
endfor
endfor
return a
endfunc
La funzione seguente calcola gli autovalori di una matrice ed è presente sul manuale della ti92
Func:
Local x
Return cZeros(det(x-mat1),x)
EndFunc
La funzione seguente trova la norma 2 di matrice
Func
Return V(max(av(a^t*a))) @V è la radice quadrata
EndFunc
La semplice funzione seguente restituisce l'errore inerente di una funzione in input
Func
Return x*d(z'x)/z @ d è la derivata
endFunc