Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

retr0virus

Trainee

  • "retr0virus" is male
  • "retr0virus" started this thread

Posts: 83

Date of registration: Oct 2nd 2006

Location: NRW -> Bad Oeynhausen

Occupation: B.Sc. Informatik, 8.Semester

1

Saturday, October 11th 2008, 6:13pm

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

This post has been edited 2 times, last edit by "retr0virus" (Oct 11th 2008, 10:41pm)


Oelkstul

random classifier

  • "Oelkstul" is male

Posts: 60

Date of registration: Oct 9th 2007

2

Sunday, October 12th 2008, 3:29pm

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" is male
  • "retr0virus" started this thread

Posts: 83

Date of registration: Oct 2nd 2006

Location: NRW -> Bad Oeynhausen

Occupation: B.Sc. Informatik, 8.Semester

3

Sunday, October 12th 2008, 3:43pm

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" is male

Posts: 60

Date of registration: Oct 9th 2007

4

Sunday, October 12th 2008, 3:46pm

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

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

5

Sunday, October 12th 2008, 3:56pm

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" is male

Posts: 60

Date of registration: Oct 9th 2007

6

Thursday, October 16th 2008, 12:54pm

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" is male
  • "retr0virus" started this thread

Posts: 83

Date of registration: Oct 2nd 2006

Location: NRW -> Bad Oeynhausen

Occupation: B.Sc. Informatik, 8.Semester

7

Thursday, October 16th 2008, 2:23pm

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" is male

Posts: 60

Date of registration: Oct 9th 2007

8

Thursday, October 16th 2008, 4:59pm

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" is male

Posts: 152

Date of registration: Oct 16th 2004

Occupation: ich will auch mal Käptain sein!

9

Tuesday, November 4th 2008, 3:01pm

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

This post has been edited 1 times, last edit by "Schokoholic" (Nov 4th 2008, 10:28pm)