Klausur 23. Juli 2012


die aufgabe blicke ich leider garnicht sry

4a)
P4 = (-1, 1, 1) ?


hätte ich auch so

p1 (1/3 , 0 ,2/3)
p2 ( 0 , 1 ,0)
p3 ( 1/3 1/3 1/3)
p4 ( -1 1 1)


Gut, p1-3 hab’ ich auch so.

Muss man bei der f) wirklich nur die vier Spitzen der “Türme” jeweils mit ihren Nachbarn (geradlinig) verbinden? Oder mache ich mir das zu einfach?


ich habs auch so ^^


Da dort steht “ins Innere interpoliert”, kann ich mir nicht vorstellen, dass man einfach nur die Säulen verbindet. Aber ich weiß auch nicht, wie es sonst aussehen soll …


Kann jemand die 8 a) und b) erklären? Hab mir gerade die Vorlesung dazu angeschaut und kann sie trotzdem nicht lösen …


Die Aufgabenstellung ergibt für mich leider wenig Sinn…
„Führen sie einen midpoint subdivision Schritt durch und berechnen sie die Kontrollpunkte der linken und der rechten Teilkurve…“

Für die ganzen Kontrollpunkte muss man doch sowieso die komplette subdivision durchführen? Oder geht das noch schneller?

c0,c1,c2,c3 hab ich genauso.

rechte Teilkurve bei mir:
d0=(6/5);d1=(8/4);d2=(12/4);d3=(16/8)

Zur 5 c) und d):
kann mir da jemand kurz helfen, hab nie verstanden wie das geht.

nevermind, mit der lösung von ss10 versteht mans easy

da hab ich: (1, -1/2 , 3/2 , 2)
x3 = (0+ 1/2 + 1) / 1 = 3/2
x4 = (3 + 1) / 2 = 2

hat sich jemand an die Programmieraufgaben gewagt?


Ich hatte midpoint Subdivision so verstanden, dass man für den ersten Schritt einen Schritt Casteljau mit t = 1/2 durchführt.
Geht man nun am enstandenen „Pyramidenstumpf“ im Uhrzeigersinn entlang, kann man die Punkte c0 = (8,8), c2 = (4,8), c3 = d0 = (4,4), d1 = (12,4) und d3 = (16,8) ablesen.
Im Unterschied zu Casteljau muss man jetzt aber noch die erste und letzte Strecke teilen, um c1 und d2 zu erhalten. Ich erhalte c1 = (6,8) und d2 = (14,6).


Wie kommst du darauf? Midpoint Subdivision ist doch nur Casteljau mit t=0.5, oder habe ich da was vergessen? Wenn ich mir das aufmale ergibt das fuer mich auch mehr Sinn als wenn ich da noch was teile, es sind ja nur die Kontrollpunkte gefragt.

Hab die selben Ergebnisse wie ANE. Das „fuehren Sie einen Schritt durch“ bezieht sich wohl darauf dass man den Vorgang ja mit den neuen Kontrollpunkten beliebig oft wiederholen kann bis die Kurve immer glatter wird.


Ich hab mir das so gedacht, weil es im Skript so steht:

Darunter ist auch noch ein Bild, in dem die Kontrollpunkte eingezeichnet sind. Das würde mit meiner Lösung überein stimmen.


Jetzt weiss ich glaube ich was du meinst. Ich vermute allerdings im ersten Schritt macht das keinen Unterschied. In dem Bild werden ja drei Schritte ausgefuehrt, daher kommen dann die unteren beiden Punkte auf den aeusseren Kontrollinien. Wenn ich jetzt aber wirklich nur den ersten Schritt betrachte (dunkel gestrichelte Linie) scheint der mir identisch mit normalem Casteljau zu sein.

In VL07, S.22 ist nur ein Schritt gezeichnet, sieht genauso aus.

EDIT: Der einzige Unterschied scheint mir tatsaechlich der rekursive Wiederaufruf mit linkem und rechtem Teilkontrollpolygon zu sein…

EDIT: Siehe dazu auch die Programmieraufgabe von diesem Semester dazu, da kann man das auch schoen sehen dass es nix anderes ist. Dieser Begriff der Mittelung kommt nur von t=0.5.

3 a) SVD
Kann mir bitte jemand erklären, wie ihr bei der A3 a) auf die Lösung kommt? Natürlich kann ich einfach die Werte für A berechnen aber was bringen mir denn die Eigenwerte von A^t*A und die Eigenvektoren?


Die Wurzeln aus den Eigenwerten von A^TA bzw. AA^T sind deine Singulärwerte.
Die Eigenwerte von A^T*A sind die Spaltenvektoren der Matrix V. Somit kannst du V^T bestimmen.


Hab mir gerade die Vorlesung dazu angesehen, du hast recht.


Kann mir jemand erklären (bzw. ein Bild hochladen), wie man in Aufgabe 4f) die Randkurven zeichnen soll?


jp, schau dir mal Folie 9 in http://lgdv.cs.fau.de/External/algoks/Vorlesungsfolien/VL_08-MultivariateInterpolation.pdf an.

Hat jemand die 8 gerechnet? Bei der a) müsste sich ein Zacken von -2 bis 2 ergeben, aber wie man das tatsächlich rechnet (b) verstehe ich nicht. Und in der c) kann man nur den zweiten separieren, weil die anderen einen Rang > 1 haben.


eine Rechteck Funktion mit sich selbst gefaltet ergibt ein dreieck mit

[-2 ,1 , 2] das ist doch so ein Standard Beispiel oder?

Aufgabe 6 : Coonspatch Programmierung
bei der a)

was macht die Methode

float evaluateAt(float s, float t) const;

?
Laut Aufgabenstellung muss ich ja den Coonspatch auswerten, aber wenn ich den Auswerte, kommt ja ein Vektor raus und kein Wert, oder???

und bei der b), verstehe ich ueberhaupt nicht was man da machen soll


Ja, theoretisch kommt ein Vektor raus, der hat aber immer die Form
[m][s, t, f(s, t)]^T[/m]
wobei f(s, t) die interpolierende Funktion (Coons-Patch) ist. Daher muss man (ohne Garantie, ich vermute nur) hier nur die z-Komponente bestimmen.
Ich nehme an, man wollte es den Studenten etwas einfacher machen und möglichst mit primitiven Datentypen arbeiten. Dann muss man sich in der Klausur eben nicht noch extra in irgendwelche Vektor-Klassen einarbeiten :wink:

Es ist nach der partiellen Ableitung in s-Richtung gefragt (also df/ds), d.h. man muss sich zunächst überlegen (auf dem Papier/im Kopf), wie diese aussieht. Das sollte bei der üblichen Darstellung des Coons-Patches kein allzu großes Problem sein (zumal die Randkurven auch extra eine Methode zur Auswertung ihrer Ableitung besitzen) :slight_smile: