[matlab] LR-Zerlegung mit Pivot

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
[matlab] LR-Zerlegung mit Pivot
Wie berechnet maltab denn die LR Zerlegung, also unter welchen Gesichtspunkts wird das Pivotelement gewählt?

Befehl, den ich kenne:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
LU     LU factorization.
    [L,U] = LU(X) stores an upper triangular matrix in U and a
    "psychologically lower triangular matrix" (i.e. a product
    of lower triangular and permutation matrices) in L, so
    that X = L*U.  X must be square.
 
    [L,U,P] = LU(X) returns lower triangular matrix L, upper
    triangular matrix U, and permutation matrix P so that
    P*X = L*U.
 
    LU(X), with one output argument, returns the output from
    LAPACK'S DGETRF or ZGETRF routine.
 
    LU(X,THRESH) controls pivoting in sparse matrices, where
    THRESH is a pivot threshold in [0,1].  Pivoting occurs
    when the diagonal entry in a column has magnitude less than
    THRESH times the magnitude of any sub-diagonal entry in that
    column.  THRESH = 0 forces diagonal pivoting.  THRESH = 1 is
    the default.
 
    See also LUINC, QR, RREF.
geischtli Auf diesen Beitrag antworten »

hallo tigerbine

ich weiss, deine Frage ist schon etwas älter, habe aber genau das gleiche Problem seit heute Morgen :P

Also folgendes:

Ich habe eine Matrix
An dieser soll ich nun die LR-Zerlegung berechnen, inklusive der P-Matrix.
Schien mir alles keine Hexerei zu sein, bis ich die Lösung von Matlab, welche dann auch die effektiv korrekte Lösung gesehen habe:

A =

1 2 1 1
2 1 -2 1
1 -2 -1 1
1 1 1 2

>> [L,R,P]=lu(A)

L =

1.0000 0 0 0
0.5000 1.0000 0 0
0.5000 -0.6000 1.0000 0
0.5000 -0.2000 1.0000 1.0000


R =

2.0000 1.0000 -2.0000 1.0000
0 -2.5000 0 0.5000
0 0 2.0000 0.8000
0 0 0 0.8000


P =

0 1 0 0
0 0 1 0
1 0 0 0
0 0 0 1

Mein Frage: Warum braucht er als 1. Pivot die 2, und nicht, wie doch man doch eher vermutet, eine der 1en?

Natürlich habe ich wegen dem Fehler auch falsche Resultate bekommen:





Kannst du mir da weiterhelfen ?

Vielen Dank schonmal !

Ps: wie kannst du den Matlab-QC ins Latex einbinden ?
tigerbine Auf diesen Beitrag antworten »

Zitat:
Ps: wie kannst du den Matlab-QC ins Latex einbinden ?


Wenn du meinen post meinst, dass ist nur in code-tags geschrieben.

Nun zu der Frage, warum er die 2 wählt. Man muss das nicht!

[WS] Lineare Gleichungssysteme 2 - direkte Verfahren
geischtli Auf diesen Beitrag antworten »

Danke für den ergiebigen Link!
Werde in dem Fall mal dort gugen... smile
tigerbine Auf diesen Beitrag antworten »

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
>> LRmitP
 
Es wird eine LR-Zerlegung mit Pivotisierung berechnet
 
Verfahren wählen: 0- next best 1-Spaltenpivotisierung:  1
 
Matrix A eingeben: A= [1,2,1,1;2,1,-2,1;1,-2,-1,1;1,1,1,2]
 
Durchgang 1 
===========
 
p =
     1     2
A =
     2     1    -2     1
     1     2     1     1
     1    -2    -1     1
     1     1     1     2
LI =
    1.0000         0         0         0
   -0.5000    1.0000         0         0
   -0.5000         0    1.0000         0
   -0.5000         0         0    1.0000
A =
    2.0000    1.0000   -2.0000    1.0000
         0    1.5000    2.0000    0.5000
         0   -2.5000         0    0.5000
         0    0.5000    2.0000    1.5000
weiter
Durchgang 2 
===========
 
p =
     1     2
     2     3
A =
    2.0000    1.0000   -2.0000    1.0000
         0   -2.5000         0    0.5000
         0    1.5000    2.0000    0.5000
         0    0.5000    2.0000    1.5000
LI =
    1.0000         0         0         0
         0    1.0000         0         0
         0    0.6000    1.0000         0
         0    0.2000         0    1.0000
A =
    2.0000    1.0000   -2.0000    1.0000
         0   -2.5000         0    0.5000
         0         0    2.0000    0.8000
         0         0    2.0000    1.6000
weiter
Durchgang 3 
===========
 
p =
     1     2
     2     3
     3     3
A =
    2.0000    1.0000   -2.0000    1.0000
         0   -2.5000         0    0.5000
         0         0    2.0000    0.8000
         0         0    2.0000    1.6000
LI =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0    -1     1
A =
    2.0000    1.0000   -2.0000    1.0000
         0   -2.5000         0    0.5000
         0         0    2.0000    0.8000
         0         0         0    0.8000
weiter
 
Die PA=LR Zerlegung lautet:
===========================
P =
     0     1     0     0
     0     0     1     0
     1     0     0     0
     0     0     0     1
A0 =
     1     2     1     1
     2     1    -2     1
     1    -2    -1     1
     1     1     1     2
L =
    1.0000         0         0         0
    0.5000    1.0000         0         0
    0.5000   -0.6000    1.0000         0
    0.5000   -0.2000    1.0000    1.0000
R =
    2.0000    1.0000   -2.0000    1.0000
         0   -2.5000         0    0.5000
         0         0    2.0000    0.8000
         0         0         0    0.8000
>> 


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
>> LRmitP
 
Es wird eine LR-Zerlegung mit Pivotisierung berechnet
 
Verfahren wählen: 0- next best 1-Spaltenpivotisierung:  0
 
Matrix A eingeben: A= [1,2,1,1;2,1,-2,1;1,-2,-1,1;1,1,1,2]
 
Durchgang 1 
===========
 
i =
     1
A =
     1     2     1     1
     2     1    -2     1
     1    -2    -1     1
     1     1     1     2
LI =
     1     0     0     0
    -2     1     0     0
    -1     0     1     0
    -1     0     0     1
A =
     1     2     1     1
     0    -3    -4    -1
     0    -4    -2     0
     0    -1     0     1
weiter
Durchgang 2 
===========
 
i =
     2
A =
     1     2     1     1
     0    -3    -4    -1
     0    -4    -2     0
     0    -1     0     1
LI =
    1.0000         0         0         0
         0    1.0000         0         0
         0   -1.3333    1.0000         0
         0   -0.3333         0    1.0000
A =
    1.0000    2.0000    1.0000    1.0000
         0   -3.0000   -4.0000   -1.0000
         0         0    3.3333    1.3333
         0         0    1.3333    1.3333
weiter
Durchgang 3 
===========
 
i =
     3
A =
    1.0000    2.0000    1.0000    1.0000
         0   -3.0000   -4.0000   -1.0000
         0         0    3.3333    1.3333
         0         0    1.3333    1.3333
LI =
    1.0000         0         0         0
         0    1.0000         0         0
         0         0    1.0000         0
         0         0   -0.4000    1.0000
A =
    1.0000    2.0000    1.0000    1.0000
         0   -3.0000   -4.0000   -1.0000
         0         0    3.3333    1.3333
         0         0         0    0.8000
weiter
 
Die PA=LR Zerlegung lautet:
===========================
P =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1
A0 =
     1     2     1     1
     2     1    -2     1
     1    -2    -1     1
     1     1     1     2
L =
    1.0000         0         0         0
    2.0000    1.0000         0         0
    1.0000    1.3333    1.0000         0
    1.0000    0.3333    0.4000    1.0000
R =
    1.0000    2.0000    1.0000    1.0000
         0   -3.0000   -4.0000   -1.0000
         0         0    3.3333    1.3333
         0         0         0    0.8000
geischtli Auf diesen Beitrag antworten »

Oh, das ist aber interessant!

Vielen Dank für die Ausfürilche Bearbeitung!
Habe jetzt nach vielem Hin und Her das ganze endlich (denke ich ^^) gepackt, und habe mit dem Beitrag jetzt, das ganze noch ein bisschen von einer anderen Seite her gesehen. Aber im Groben, so, wie ich mir das vorgestellt hatte smile

1A!

Danke dir 1000!
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »