lr zerleung < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:17 Mi 15.04.2009 | Autor: | AriR |
hey leute,
ich kapiere leider nicht wie man genau den befeh "lu" in matlab verwendet. hab eine ggb matrix A und soll nun L und R mithilfe des befehls lu bestimmen, wenn ich [L U]=lu(A) in matlab eingebe, bekomme ich für U auch eine obere rechte dreiecksmatrix nur für L leider nicht, trotzdem ergibt L*U=A. weiß einer von euch wie ich das genau eingeben muss?
gruß
|
|
|
|
> hey leute,
>
> ich kapiere leider nicht wie man genau den befeh "lu" in
> matlab verwendet. hab eine ggb matrix A und soll nun L und
> R mithilfe des befehls lu bestimmen, wenn ich [L U]=lu(A)
> in matlab eingebe, bekomme ich für U auch eine obere rechte
> dreiecksmatrix nur für L leider nicht, trotzdem ergibt
> L*U=A. weiß einer von euch wie ich das genau eingeben
> muss?
Hmm, was genau erwartest du denn von dem Ergebnis? M.W. ist es nicht möglich eine beliebige Matrix einfach als Produkt eine oberen und unteren Dreiecksmatrix darzustellen. Damit es immer funktionert brauchst du noch eine Permutationsmatrix.
Schau dir das mal an:
1: |
| 2: | >> A = rand(3,3)
| 3: |
| 4: | A =
| 5: | 0.9649 0.9572 0.1419
| 6: | 0.1576 0.4854 0.4218
| 7: | 0.9706 0.8003 0.9157
| 8: |
| 9: | >> [L U P] = lu(A)
| 10: |
| 11: | L =
| 12: | 1.0000 0 0
| 13: | 0.1624 1.0000 0
| 14: | 0.9941 0.4546 1.0000
| 15: |
| 16: |
| 17: | U =
| 18: | 0.9706 0.8003 0.9157
| 19: | 0 0.3554 0.2731
| 20: | 0 0 -0.8926
| 21: |
| 22: |
| 23: | P =
| 24: | 0 0 1
| 25: | 0 1 0
| 26: | 1 0 0
| 27: |
| 28: | >> L*U
| 29: |
| 30: | ans =
| 31: | 0.9706 0.8003 0.9157
| 32: | 0.1576 0.4854 0.4218
| 33: | 0.9649 0.9572 0.1419
| 34: |
| 35: | >> P^(-1)*L*U
| 36: |
| 37: | ans =
| 38: | 0.9649 0.9572 0.1419
| 39: | 0.1576 0.4854 0.4218
| 40: | 0.9706 0.8003 0.9157
|
Schau mal in die help von lu, da gibt es viele andere Möglichkeiten die Funktion zu nutzen.
> gruß
Hope it helps.
Michael
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 09:19 Do 16.04.2009 | Autor: | AriR |
bei mir ist aber eine matrix gegeben, bei der es geht. wir sollen den lu-befehl dann einmal nutzen um eine LR zerlegung mit pivotisierung zu realisieren, was ja deinem ansatz entspricht, und einmal eine LR zerlegung ohne pivotisierung (also ohne permutationsmatrix usw) nur das bekomme ich mit dem befehl "lu" nicht hin :(
|
|
|
|
|
Okay, jetzt hab ich verstanden was du willst. Da sage ich nur RTFM!
[L,U,P] = LU(A,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.
Also mache deine Matrix sparse und setze den Pivioting-Threshold zu 0:
1: |
| 2: | A = [1 2 3; 1 1 1; 3 3 1]
| 3: | [L U P] = lu(sparse(A),0);
| 4: | full(U)
| 5: | full(L)
| 6: | full(L*U)
| 7: |
| 8: | A =
| 9: |
| 10: | 1 2 3
| 11: | 1 1 1
| 12: | 3 3 1
| 13: |
| 14: |
| 15: | ans =
| 16: |
| 17: | 1 2 3
| 18: | 0 -1 -2
| 19: | 0 0 -2
| 20: |
| 21: |
| 22: | ans =
| 23: |
| 24: | 1 0 0
| 25: | 1 1 0
| 26: | 3 3 1
| 27: |
| 28: |
| 29: | ans =
| 30: |
| 31: | 1 2 3
| 32: | 1 1 1
| 33: | 3 3 1
|
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:24 Do 16.04.2009 | Autor: | AriR |
was bedeutet "sparse" und "Pivioting-Threshold"? :P
|
|
|
|
|
> was bedeutet "sparse"
eine dünn besetzte Matrix (nur Elmente ungleich 0 werden abgespeichert)
> und "Pivioting-Threshold"? :P
"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."
Also der normierte Betrag des diagonal Elements unterhalb dem Pivoting durchgeführt wird.
|
|
|
|