Not logged in. · Lost password · Register

Forum: Bachelor Algorithmik Algorithmik kontinuierlicher Systeme RSS
Super tolle Folien zum Spottpreis!
yq53ykyr
Member since Oct 2016
87 posts
Subject: Folien für Übungen
+1 ox42cafe
Hallo zusammen,

im Rahmen meiner AlgoKS-Übung habe ich Folien erstellt, welche ich bei den Übungen verwende. Sie sind hier
https://wwwcip.cs.fau.de/~yq53ykyr/AlgoKS/index.html
verfügbar, und können unter anderem zur Vorbereitung genutzt werden.

Neben den Folien finden sich auch noch Beispielprogramme, welche ich in der Übung vorstelle, sowie manchmal Zusatzaufgaben zu gewissen Themen, allerdings ohne Lösungen.
ox42cafe
Member since Feb 2018
15 posts
Hi,

vielen Dank für die Folien und die Beispielprogramme. Dem Beispiel aus der Vorlesung, warum man keine Inverse benutzen konnte ich folgen. Jedoch erschien mir es auf deinen Übungsfolien so, als ob der Fehler sehr sehr sehr gross war, falls man eine Inverse benutzt.

Ich habe mir dann selber ein Skript geschrieben und kam nie auf Fehler in der Grössenordnung wie du. Ich habe daher dein Beispielprogramm mal ausprobiert und da kamst du auch auf einen sehr grossen Fehler:

[[1.       1.000001 0.999999]
 [0.999999 1.       1.000001]
 [1.000001 0.999999 1.      ]]
Condition:  1732050.80768445
Starting with inv(A) * b = y
     Time gone by:  0.00015997886657714844
     Error in b:  9.225965733917972
Starting with la.solve(A, b)
     Time gone by:  3.409385681152344e-05
     Error in b:  3.954519652050746e-07
Starting with LU-Factor
     Time gone by:  0.00018906593322753906
     Error in b:  3.954519652050746e-07

Mir kam das ganze bisschen komisch vor. Hier hat sich der Fehler bei dir eingeschlichen:

Example_1:
    y = np.linalg.inv(A) * (b)

müsste ja eher:

    y = np.dot(np.linalg.inv(A), (b))

sein. Dann kommt man auch auf sinnvollere Werte:

Example 1 - ill-conditioned matrix (eps = 1e-7)
[[1.       1.000001 0.999999]
 [0.999999 1.       1.000001]
 [1.000001 0.999999 1.      ]]
Condition:  1732050.80768445
Starting with inv(A) * b = y
     Time gone by:  0.0001900196075439453
     Error in b:  2.5662915372622253e-07
Starting with la.solve(A, b)
     Time gone by:  3.981590270996094e-05
     Error in b:  2.565386258534276e-07
Starting with LU-Factor
     Time gone by:  0.00019407272338867188
     Error in b:  2.565386258534276e-07

Trozdem ist natürlich die Inverse kacke aus den genannten Gründen aus der Vorlesung.

Mir ist noch aufgefallen:

def illconditionedMat(delta):
    return np.array([[1, 1 + delta, 1 - delta], [1 - delta, 1, 1 + delta], [1 + delta, 1 - delta, 1]], np.float)

Ich denke du wolltest eine lower precision erzwingen damit man den Fehler besser sieht. np.float ist allerdings bei mit np.float64, dann ist der Fehler natürlich sehr gering.
Das hier geht bei mir besser:
def illconditionedMat(delta):
    return np.array([[1,1 + delta,1-delta],[1-delta,1,1+delta],[1+delta,1-delta,1]], dtype='f')

damit kommt man dann auch auf einen ordentlichen Fehler:

Example 1 - ill-conditioned matrix (eps = 1e-7)
[[1.       1.000001 0.999999]
 [0.999999 1.       1.000001]
 [1.000001 0.999999 1.      ]]
Condition:  1760881.5
Starting with inv(A) * b = y
     Time gone by:  0.0001430511474609375
     Error in b:  0.28796243328180987
Starting with la.solve(A, b)
     Time gone by:  3.0994415283203125e-05
     Error in b:  2.9703820481072214e-07
Starting with LU-Factor
     Time gone by:  0.00021123886108398438
     Error in b:  2.9675579786923153e-07
yq53ykyr
Member since Oct 2016
87 posts
+1 ox42cafe
Jup,

da hast du selbstverständlich recht. Das ist mir beim Schreiben nicht wirklich aufgefallen, aber klar. np.dot und * (= np.multiply) sind nur für Skalare äquivalent.
Diese Kleinigkeiten wurden jetzt aber ausgebessert, sprich das Skript sollte wieder richtig funktionieren.
RaspberryPie
Member since Nov 2017
75 posts
In reply to post #1
Kannst du die neusten Folien noch hochladen? Sie helfen wirklich sehr bei den Hausaufgaben.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen