Calcolo numerico con le Texas Instrument

Versione stampabile

Mentre 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.

 

Polinomio di Lagrange

Eliminazione di Gauss

Operazioni su matrici

Autovalori

Norma 2

Errore inerente

 

Interpolazione

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.

 

lagrange(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


Matrici

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.


gauss(a)

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

av(mat1)

Func:

Local x

Return cZeros(det(x-mat1),x)

EndFunc


La funzione seguente trova la norma 2 di matrice


nm2(a)

Func

Return V(max(av(a^t*a))) @V è la radice quadrata

EndFunc


Errori

La semplice funzione seguente restituisce l'errore inerente di una funzione in input


iner(z)

Func

Return x*d(z'x)/z @ d è la derivata

endFunc

HOME