IMSL
Beschreibung
Die IMSL-Bibliothek stellt viele numerische Algorithmen (L�sung von
Gleichungssystemen, Integration, Differentiation, Eigenwertberechnung)
ohne gro�e Programmierarbeit direkt zur Verf�gung.
Dokumentation
Tippen Sie "environ numeric" ein, um Zugriff auf die numerischen Bibliotheken
zu bekommen, und dann "imslhelp". Es erscheint ein Fenster. W�hlen Sie
dort die IMSL C/MATH-Library aus. Suchen Sie unter "Eigensystem Analysis"
nach "eig_gen". Lesen Sie sich die Beschreibung komplett durch. Unter
"Description" wird der benutzte Algorithmus beschrieben (hier: ein
modifizierter QR-Algorithmus, wie er in der Vorlesung beschrieben wurde).
Benutzung
Erstellen Sie eine Datei "example1.c", wie sie in "Example 1" in der
Dokumentation beschrieben ist. Verschaffen Sie sich wieder Zugang zur
Bibliothek durch Eingabe von
environ numeric
�bersetzen Sie die Datei durch Eingabe von:
cc $IMSLINC example1.c $IMSLCLIB
und rufen Sie sie auf mit "a.out". Um ein Gef�hl f�r die Geschwindigkeit
zu bekommen, k�nnen Sie das Programm auch mal mit etwas gr��eren Matrizen
(schrittweise bis 1000x1000 Eintraege) testen. Versuchen Sie, herauszufinden,
wie die Ausf�hrungszeit mit der Gr��e w�chst (n*n, n*n*n?) und f�r welche
maximale Matrixgr��e Sie in 24 Stunden voraussichtlich noch ein Ergebnis
bekommen (mit Hilfe der Wachstumsformel - bitte nicht ausprobieren!).
Hierzu ersetzen Sie die Zeile
float a[] = ...
durch
float * a;
float drand48();
und f�gen vor dem Aufruf von imsl_f_eig_gen die Zeilen
int i;
a=calloc(n*n,sizeof(float));
for (i=0;i<n*n;i++) a[i]=drand48();
ein. Die so manipulierte Datei k�nnen Sie sich kopieren aus
"/u/wuebbel/lib_demo/imslc.2/neu.c". �ndern Sie "n=3" in gr��ere
Zahlen. Tip: "time a.out" mi�t die Zeit, die das Programm braucht.