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.