2016-05-05 17 views
3

Wie kann ich den Logarithmus einer Matrix mit SAS IML berechnen?Berechnen Sie den Logarithmus einer Matrix mit SAS IML

Ich versuche, etwas ähnlich der Funktionalität des Matlab logm() function zu bekommen.

+0

Ich weiß nicht, ob es eine eingebaute Möglichkeit gibt, das zu tun. Es gibt eine Implementierung der Umkehrung in der IMLMLIB-Bibliothek ([EXPMATRIX] (https://support.sas.com/documentation/cdl/en/imlug/68150/HTML/default/viewer.htm#imlug_langref_sect127.htm)) aber Ich sehe kein LOGMATRIX-Äquivalent. Hoffentlich wird Rick das sehen und dir eine bessere Richtung geben können - entweder, wie man es nativ macht oder eine Zeitung oder etwas von jemand anderem, der einen Algorithmus implementiert hat. – Joe

+0

Ich nehme an, dass Sie eine echte Matrix haben? Ist es symmetrisch? – Rick

+0

Hallo Rick, es ist real und nicht symmetrisch. – jaamor

Antwort

1

Ich bin mir nicht bewusst, eine vor-geschriebene Funktion, die dies tun wird, so dass Sie es selbst schreiben müssen. Nick Higham hat diese Funktionen jedoch in his 'mftoolbox' set of functions geliefert. MATLAB und SAS/IML sind sich sehr ähnlich, daher ist es nicht allzu schwierig, Highams Code von MATLAB nach IML zu konvertieren.

Es gibt mehrere logm() - Algorithmen. Ich würde die inverse Skalierungs- und Quadrierungsmethode empfehlen, die in Highams logm_iss.m-Datei implementiert ist. Diese Funktion nennt einige andere Funktionen, die Sie auch implementieren müssen: sqrtm_dbp(), logm_pade_pf()

Die Hintergrundinformationen und Beispiele in mehreren Higham Papiere vorgesehen sind, von denen die meisten aus seiner Homepage zur Verfügung stehen oder von Google Scholar. Sie können auch lesen Higham (2008) Funktionen von Matrizen: Theorie und Berechnung.