Ich habe bereits versucht, einige MathNet.Numerics für einige QR- oder Cholesky -Solvers zu verwenden, aber ich bekomme immer noch nicht die gleichen Ergebnisse wie in MATLAB. Hat jemand irgendwelche Ideen oder eine Erfahrung, wie ich diese 1: 1 implementieren kann? Vielen Dank im Voraus. < /P>
Matlab -Code: < /p>
Vmat = Vmat/ig;
II = ones(Msize,1);
Lambda = Vmat\II;
% LambdaX = inv(Vmat)*II;
Lambda = LambdaX;
< /code>
C# Code mit MathNet.Numerics: < /p>
Vmat = (DenseMatrix)Vmat.Divide(ig);
var inverseVmat = Vmat.Inverse();
// Create unit vector
var II = DenseVector.Create(Msize, 1.0);
// Solve for Lambda
var Lambda = inverseVmat.Multiply(II);
var LambdaX = Vmat.Solve(II);
< /code>
vmat vor der Inversion ist die 1: 1.DenseVector 21-Double
0,000156728 -0,00115259
0,000353069 -0,00136171
0,000379387 -0,00638335
0,000360325 0,00195772
0,000279563 0,00134025
0,000554697 0,000396017
0,000544651 0,000511007
0,000516202 0,000542727
0,000424087 0,000554169
0,00169398
0,00641668
-0,00181201
< /code>
matlab: < /p>
0.000491666426675141
0.000529889378634022
0.000537457018892134
0.000529889378641196
0.000491666426676833
0.000619038266343426
0.000614256907623617
0.000600956177302013
0.000554518690093402
0.000554518690093405
0.000600956177302022
0.000614256907623654
0.000619038266342973
0.000619038266342950
0.000614256907623597
0.000600956177301411
0.000554518690092637
0.000554518690092638
0.000600956177301407
0.000614256907623587
0.000619038266342912
< /code>
Was könnte diese Unstimmigkeiten verursachen? Ich muss die Ergebnisse von Matlab genau übereinstimmen (zu mindestens 12-15 signifikanten Ziffern). (inv (vmat)*ii) < /li>
Bestätigte Matrixabmessungen und Elementtypen übereinstimmen < /li>
< /ul>
Hat jemand ähnliche Probleme aufgetreten, als er versuchte, die Matrix -Operationen von MATLAB in C#zu replizieren? Gibt es spezifische numerische Bibliotheken oder Techniken, die den internen Solvers von Matlab besser übereinstimmen? Würde dies möglicherweise mehr Matlab-ähnliche Ergebnisse liefern?
So implementieren Sie (was Sie verwenden) für Matlabs MldiVide (der Backslash -Operator "\") in C# .NET? [geschlossen] ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post