DMUG-Archiv 2008

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: A.x==b /; 0<=x<=max

Guten Morgen Robert,

Nur zum Sagen, Gegenfrage: Wie würde man das Problem für ein lineares Gleichungssystem A.x == b, A reguläre Matrix n x n, x und b Vektoren der Länge n, lösen?

x ist derjenige Vektor, der von der Transformationsmatrix A in den Vektor b transformiert wird. Wenn eine Randbedingung vorliegt, dann muss man den Vektor x' suchen, der am dichtesten an x liegt (bzgl. der Metrik) und noch die Randbedingung erfüllt. Das sollte auch in hohen Dimensionen geometrisch lösbar sein, wenn die Randbedingung ein konvexes Gebiet beschreibt, das den Koordinatenursprung enthält. Dann durchstösst x an (höchstens) einer Stelle s die Grenze des konvexen Gebiets und um dieses s sucht man. Wenn über rellen Zahlen gerechnet wird, reicht eine Verkürzung x' = \alpha x; wenn der Vektor x' z.B. ganzzahlige Komponenten haben soll, muss man in der Nähe von s nach solchen suchen: Minimize[{f, cons}, {x, y, ...}, dom] wobei f der Metrikausdruck mit x ist, die cons aus der Randbedingung übernommen werden und dom in dem Fall Integers wäre. Das sollte für die l^2 Norm funktionieren.

Spricht etwas dagegen, auf x = PseudoInverse[A].b dasselbe Verfahren anzuwenden?

Gruss
Udo.

wie löst man (beste näherung bezüglich eines minimierung kriteriums K
z.B. least square sum, summe der quadratischen Fehler) effizient ein
lineares über/unter bestimmtes Gleichungssystem:
A.x=b, K[A.x-b]=min
unter der Randbedingung:
0<=x<=max

ohne den Randbedingungen ist die optimale Lösung bezüglich least square
sum bekanntlich:
x=PseudoInverse[A].b (sehr effizient, schnell)


--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html