Habe eine 30 x 22 Matrix transponiert, die Transponierte mit der Originalen multipliziert, nach Abstreichen der letzten Zeile und Spalte die Inverse berechnet und dann durch Multiplikation der Inversen mit der abgestrichenen letzten Spalte die Unbekannten berechnet (Berechnung eines linearen Gleichungssystems durch Ausgleichung).
Diesen Vorgang habe einmal ausschließlich mittels meinem VBA-Programm und den entsprechen workbook.functionsdurchgeführt und dazu lediglich die 30 x 22 Matrix über variant=range() aus dem EXCEL-Blatt entnommen. Dann habe ich zur Kontrolle den gleichen Ablauf mit den Matrizenfunktionen im Excel-Tabellenblatt wiederholt.
Problem: Die Ergebnisse (Unbekannten stimmen weitgehend (Größenordnung , Vorzeichen) , aber nicht genau überein. Die Kontrolle der Unbekannten im Excel-Blatt stimmt auf mahr als 6 Nachkommastellen genau, so dass ich vermute, dass die Berechnung im Excel-Blatt 'richtig' ist.
Frage:
1. Kann es sein, dass einige VBA-Funktionen engere Grenzen in der Rechenschärfe haben, als die entsprechende Tabellenblattberechnung oder welche andere Erklärung gibt es für das Phänomen?
2. Wegen der Nutzung von worksheet.funktions bin aich auf Variant als Datentyp angewiesen. Gibt es trotzdem eine Möglichkeit die Rechengenauigkeit in VBA zu erhöhen?
Danke im Voraus
Nicasal
|