Projizierter Gauss-Seidel für LCP

8

Ich suche nach der C # -Implementierung des Projected Gauss-Seidel-Algorithmus zur Lösung des linearen Komplementaritätsproblems . Bisher habe ich das in C ++ geschriebene in der Bullet -Bibliothek gefunden, aber leider ist es in hohem Maße optimiert (so wäre schwer, es in C # zu übersetzen).

In der ähnlich Frage eins schlug vor, die numerischen Bibliotheken für .NET . Alle von ihnen enthalten nur Algorithmen zur Lösung von Systemen linearer Gleichungen .

Bearbeiten: Auch wenn ich eins gefunden habe, scheint es nicht vollständig zu sein, daher ist die Frage immer noch offen.

    
Andrey Ermakov 30.07.2012, 10:32
quelle

2 Antworten

8

Sie haben Gauss Seidel ohne Projektion implementiert. Für projizierte Gauß-Seidel müssen Sie die Lösung innerhalb der unteren und oberen Grenzen projizieren (oder klammern):

%Vor%

Es ist eine geringfügige Änderung. Hier ist ein Kern, der zeigt, wie man die A-Matrix und den b-Vektor aus der Bullet Physics Library extrahiert und sie mit dem projizierten Gauss Seidel löst: Ссылка

    
Erwin Coumans 23.09.2013, 03:32
quelle
9

Nach einer Woche Suche habe ich endlich diese Veröffentlichung gefunden (auf Russisch, basierend auf Kenny Erlebens Arbeit). Ein projizierter Gauss-Seidel-Algorithmus wird dort beschrieben und dann um SOR und Abbruchbedingungen erweitert. All das mit Beispielen in C ++, die ich für diese grundlegende C # -Implementierung verwendet habe:

%Vor%     
Andrey Ermakov 02.08.2012 09:53
quelle

Tags und Links