Sie sind nicht angemeldet.

retr0virus

Trainee

  • »retr0virus« ist männlich
  • »retr0virus« ist der Autor dieses Themas

Beiträge: 83

Registrierungsdatum: 02.10.2006

Wohnort: NRW -> Bad Oeynhausen

Beruf: B.Sc. Informatik, 8.Semester

1

11.10.2008, 18:13

Numerik A - Erste Programmierübung

Hallo,
ich habe eine Frage zu Aufgabe 1.1.
Dort soll ja einmal ein Algorithmus mit und einmal ohne Pivotsuche programmiert werden.
Bedeutet ohne (also natürliche) Pivotsuche, dass auch 0en auf der Hauptdiagonale eiskalt ignoriert werden?
Theoretisch teilt man dann ja durch 0, wodurch das Ergebnis dann nicht mehr berechnet werden kann?!
Oder soll man diesen Ausnahmefall behandeln, so dass bei einer 0 zumindest die Zeile mit einer anderen
ausgetauscht wird?
Wie verhält sich das überhaupt mit dem LR-Produkt wenn man zwei Zeilen vertauscht?
Normalerweise ist doch L*R = A. Aber bei einer Vertauschung von zwei Zeilen nicht mehr.
Oder habe ich irgenetwas außer Acht gelassen?

EDIT:
Ok, wahrscheinlich muss außer der Vertauschung bei R auch eine Vertauschung bei L stattfinden.
Zumindest in meinem Beispiel kommt dann wieder A heraus.
EDIT2:
Argh... eine Vertauschung bei L resultiert darin, dass L keine untere Dreiecksmatrix mehr darstellt.
Ok, irgendwas stimmt also noch nicht im Algorithmus. Wie sieht es also mit der 0 aus?
Beachten oder nicht beachten?
Ein Nichts im Nichts und ins Nichts vertrieben!
- Ren Dhark

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »retr0virus« (11.10.2008, 22:41)


Oelkstul

random classifier

  • »Oelkstul« ist männlich

Beiträge: 60

Registrierungsdatum: 09.10.2007

2

12.10.2008, 15:29

also im lehrbuch steht beim algorithmus mit natürlicher pivotwahl, dass der algorithmus bei einer 0 abbricht.
ich wollte das dann im programm auch stumpf so halten... ^^

aber mal was anderes, für matlab/octave-vollnoobs wie mich.. ^^

kennt jemand besonders empfehlenswerte tutorials? =)

retr0virus

Trainee

  • »retr0virus« ist männlich
  • »retr0virus« ist der Autor dieses Themas

Beiträge: 83

Registrierungsdatum: 02.10.2006

Wohnort: NRW -> Bad Oeynhausen

Beruf: B.Sc. Informatik, 8.Semester

3

12.10.2008, 15:43

Also mit dem hier kann man zumindest den ersten Teil lösen:
http://www.christianherta.de/octaveMatlabTutorial.html
Weiter habe ich es noch nicht versucht, sollte aber damit auch klappen.

Danke für die Antwort. Habe momentan die 0 auch nicht weiter beachtet.
Ein Nichts im Nichts und ins Nichts vertrieben!
- Ren Dhark

Oelkstul

random classifier

  • »Oelkstul« ist männlich

Beiträge: 60

Registrierungsdatum: 09.10.2007

4

12.10.2008, 15:46

nice, das hatte ich auch schon in einem tab geöffnet, war aber noch nicht dabei angekommen :-D

  • »Joachim« ist männlich

Beiträge: 2 863

Registrierungsdatum: 11.12.2001

Wohnort: Hämelerwald

Beruf: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

5

12.10.2008, 15:56

aber mal was anderes, für matlab/octave-vollnoobs wie mich.. ^^

kennt jemand besonders empfehlenswerte tutorials? =)
Mathworks, der Hersteller von MATLAB, bietet eigene Tutorials an und hat eine Liste von externen Tutorials erstellt. Ein Blick darauf lohnt sich bestimmt: http://www.mathworks.com/academia/studen…/launchpad.html.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Oelkstul

random classifier

  • »Oelkstul« ist männlich

Beiträge: 60

Registrierungsdatum: 09.10.2007

6

16.10.2008, 12:54

EDIT2:
Argh... eine Vertauschung bei L resultiert darin, dass L keine untere Dreiecksmatrix mehr darstellt.
Ok, irgendwas stimmt also noch nicht im Algorithmus. Wie sieht es also mit der 0 aus?
Beachten oder nicht beachten?


das problem hätte man nicht, wenn man die elemente von L direkt in A einträgt...

also ich habe es so gemacht, dass ich bei der implementierung der LR-zerlegung mit spaltenpivotwahl L als nullmatrix initialisiert, die permutationen auf diese dann auch angewendet und die diagonale schliesslich mit 1en aufgefüllt habe..

ich denk mal das ist soweit richtig, wollte es aber auch nochmal nachschlagen ~_~

retr0virus

Trainee

  • »retr0virus« ist männlich
  • »retr0virus« ist der Autor dieses Themas

Beiträge: 83

Registrierungsdatum: 02.10.2006

Wohnort: NRW -> Bad Oeynhausen

Beruf: B.Sc. Informatik, 8.Semester

7

16.10.2008, 14:23

Laut Skript würde ich sagen, dass die 0 auf der Hauptdiagonalen nicht weiter beachtet werden muss.
Des Weiteren ist LR eine Zerlegung von A auch dann, wenn A eigentlich nur PA ist, also eine Permutationsmatrix gebraucht wird, um die von L*R erzeugte Matrix zu bilden.
Also ist die Vertauschung "egal" - L sollte also eher nicht "vermischt" werden.
Ein Nichts im Nichts und ins Nichts vertrieben!
- Ren Dhark

Oelkstul

random classifier

  • »Oelkstul« ist männlich

Beiträge: 60

Registrierungsdatum: 09.10.2007

8

16.10.2008, 16:59

also ich habe es grad mal getestet.. wie gesagt ich wollte es eh nochmal nachlesen, da ich das was du grad geschrieben hast, L würde so bleiben wie vorher, auch gelesen hatte aber nicht nachvollziehen konnte:

also ich hab mir nen system Ax=b zufällig eingegeben.

ich hab es durch die oben von mir geschriebene implementation der lr zerlegung gejagt und mir anschliessen die anfängliche matrix A, die matrix L*R und die matrix P*A ausgegeben...
also L*R = P*A war erfüllt. der einzige fall, den ich mir vorstellen könnte, in dem dieses ergebnis täuschen könnte wäre P = einheitsmatrix. das war aber nicht der fall, P*A war nicht gleich A ...

Justus

Junior Schreiberling

  • »Justus« ist männlich

Beiträge: 152

Registrierungsdatum: 16.10.2004

Beruf: ich will auch mal Käptain sein!

9

04.11.2008, 15:01

Edit by Schoki: Verschoben in Thread Numerik A - Zweite Programmierübung

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schokoholic« (04.11.2008, 22:28)