Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Cholesky decomposition

Cholesky decomposition
08.04.2018 21:44:48
snb
Greg und ich suchten nach einem VBA-Ansatz für eine Cholesky-Zerlegung.
Wir haben den Ansatz von G. Verschuuren auf YouTube gefunden.
Wir haben versucht, seinen Code zu verbessern (weniger Code, weniger Loops, schnellere Performance)
Gleichzeitig haben wir ein Werkzeug erstellt, um den Cholesky-Algorithmus in Pythons SciPy-Bibliothek in VBA zu integrieren.
Das Ergebnis finden Sie hier:
http:\\www.snb-vba.eu\VBA_Cholesky_en.html

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: im Index?
08.04.2018 23:07:22
Fennek
Hallo snb,
das klingt interessant.
Wie kann man diese Seite finden, wenn man die Startseite "snb-vba.eu" aufruft? Weder bei "Python" noch im "Index" habe ich einen link gefunden.
Danke
mfg
Da fehlt ein einfaches Beispiel für Laien wie mich
09.04.2018 07:00:11
lupo1
Nehmen wir mal die VBA-Funktion {=F_snb()}. Ich habe die einfach mal wie folgt eingegeben:
G1:K5: {=F_snb(A1:E5)} (als Array, nicht als einzelne Matrixformel)
und dann die Ausgangsmatrix auf 5 verschiedene Weisen gefüllt:
  • diagonal A1 bis E5 und darunter
  • diagonal A1 bis E5 und darüber
  • diagonal B2 bis D5 und darunter
  • diagonal B1 bis E4 und darüber
  • alle 25 Zellen

  • aber am Ende kommt immer nur G1:K1: #WERT!
    Vielleicht dürfen ja auch nur bestimmte Werte eingetragen werden - wie gesagt, aus Wiki und Deinem Link zusammen werde ich auf die Schnelle noch nicht schlau.
    Anzeige
    http://taramath.de/tools/cholesky ...
    09.04.2018 07:46:02
    lupo1
    ... ist sehr hübsch als Beispielgeber.
    Nebenbei versteht man dann auch, was eine symmetrische Matrix ist (als Voraussetzung).
    http://taramath.de/tools/cholesky
    (klappt auch mit negativen Zahlen in der symm. Ausgangsmatrix)
    Die Fkt. läuft jedoch immer noch nicht.
    a) Die Sub würde sich (3x) mit Sheets(1) internationaler machen, als mit Sheet1. Ok, korrigiert.
    b) Dann läuft darinnen SQR auf einen Fehler - vermutlich aufgrund der negativen Werte in
    7 6 0
    6 15 -8
    0 -8 9
    was möglicherweise auch die Ursache für #WERT in der Fkt. ist.
    Ok: Eure Einschränkung war "positiv-symmetrisch". So kommt der Laie langsam weiter. Also versuche ich es mit ausschließlich positiven Werten:
    Gleicher Fehler (in der Zeile mit SQR).
    Any hints?
    Anzeige
    Zusätzliche Anregung: Symmetrie-Ereignis ...
    09.04.2018 08:43:14
    lupo1
    ... mit einem Worksheet_Change, welches bei Eingabe in a(i,j) sofort a(j,i) gleichsetzt.
    Wenn man schon sowieso mit VBA arbeitet.
    Pietje Puk of Jan Jansen of ...
    09.04.2018 09:05:15
    lupo1
    ... Lieschen Müller möchten das doch auch verstehen ;)
    AW: Da fehlt ein einfaches Beispiel für Laien wie mich
    09.04.2018 09:46:33
    snb
    @Lupo1
    Es gibt eine Beispieldatei im Webpage.
    Hast du die schon heruntergeladen ?
    Die Webseite ist für VBA.
    Und die Website ist für 'Smarties' (nicht für Laien).
    Man kann in VBA mit Functions arbeiten. Das geht anders als ein UDF.
    Ein VBA-Function UDF.
    Ein UDF würde für Excel-Anwender sein: das ist nicht das Publikum für www.snb-vba.eu.
    Ich kann hier keine Datei hochladen (weder .xlsb noch .zip).
    Du kannst in der Beispieldatei diese UDF erstellen.
    Function F_snb(sn)
    sn = sn
    ReDim sp(UBound(sn) - 1, UBound(sn) - 1)
    For j = 0 To UBound(sp)
    For jj = j To UBound(sp)
    y = sn(j + 1, jj + 1)
    For k = 0 To j - 1
    y = y - sp(j, k) * sp(jj, k)
    Next
    If j = jj Then sp(j, j) = Sqr(y)
    If j  jj Then sp(jj, j) = y / sp(j, j)
    Next
    Next
    F_snb = sp
    End Function
    
    Und in sheets("Cholesky")in A70:AC98 : Arrayformel : =F_snb(A1:AC29)
    Anzeige
    Danke ...
    09.04.2018 09:51:48
    lupo1
    ... auch bei Sulprobil sehe ich, dass das nicht so ganz einfach ist ;)

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige