diff options
Diffstat (limited to '')
21 files changed, 393 insertions, 0 deletions
diff --git a/vorlesungen/slides/5/beispiele/Makefile b/vorlesungen/slides/5/beispiele/Makefile new file mode 100644 index 0000000..05bd5b5 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/Makefile @@ -0,0 +1,32 @@ +# +# Makefile +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: kern bild kb kombiniert.jpg leer.jpg drei.jpg + +kern: kern1.jpg kern2.jpg +bild: bild1.jpg bild2.jpg +kb: kernbild1.jpg kernbild2.jpg + +JK1.inc: kernbild.m + octave kernbild.m + +kernbild1.png: JK1.inc common.inc kernbild1.pov +kernbild2.png: JK1.inc common.inc kernbild2.pov +bild1.png: JK1.inc common.inc bild1.pov +bild2.png: JK1.inc common.inc bild2.pov +kern1.png: JK1.inc common.inc kern1.pov +kern2.png: JK1.inc common.inc kern2.pov +kombiniert.png: JK1.inc common.inc kombiniert.pov +leer.png: JK1.inc common.inc leer.pov +drei.png: JK1.inc common.inc drei.pov + +%.png: %.pov + povray +A0.1 -W1920 -H1080 -O$@ $< + +%.jpg: %.png + convert -extract 1080x1080+420+0 $< $@ + +clean: + rm -f *.png *.jpg diff --git a/vorlesungen/slides/5/beispiele/bild1.jpg b/vorlesungen/slides/5/beispiele/bild1.jpg Binary files differnew file mode 100644 index 0000000..879fae8 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/bild1.jpg diff --git a/vorlesungen/slides/5/beispiele/bild1.pov b/vorlesungen/slides/5/beispiele/bild1.pov new file mode 100644 index 0000000..fd814f1 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/bild1.pov @@ -0,0 +1,13 @@ +// +// bild1.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j11, at, orange1) +arrow(O, j12, at, orange1) +ebene(j11, j12, orange1) + diff --git a/vorlesungen/slides/5/beispiele/bild2.jpg b/vorlesungen/slides/5/beispiele/bild2.jpg Binary files differnew file mode 100644 index 0000000..2597c95 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/bild2.jpg diff --git a/vorlesungen/slides/5/beispiele/bild2.pov b/vorlesungen/slides/5/beispiele/bild2.pov new file mode 100644 index 0000000..6e3c6dd --- /dev/null +++ b/vorlesungen/slides/5/beispiele/bild2.pov @@ -0,0 +1,17 @@ +// +// bild2.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j11, 0.7 * at, orange1) +arrow(O, j12, 0.7 * at, orange1) +ebene(j11, j12, orange1) + +arrow(O, j21, at, orange2) +gerade(j21, orange2) + + diff --git a/vorlesungen/slides/5/beispiele/common.inc b/vorlesungen/slides/5/beispiele/common.inc new file mode 100644 index 0000000..ffcff60 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/common.inc @@ -0,0 +1,134 @@ +// +// common.inc +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// +#version 3.7; +#include "colors.inc" + +global_settings { + assumed_gamma 1 +} + +#declare imagescale = 0.25; +#declare O = <0, 0, 0>; +#declare at = 0.02; + +camera { + location <3, 2, -10> + look_at <0, 0, 0> + right 16/9 * x * imagescale + up y * imagescale +} + +//light_source { +// <-14, 20, -50> color White +// area_light <1,0,0> <0,0,1>, 10, 10 +// adaptive 1 +// jitter +//} + +light_source { + <41, 20, -50> color White + area_light <1,0,0> <0,0,1>, 10, 10 + adaptive 1 + jitter +} + +sky_sphere { + pigment { + color rgb<1,1,1> + } +} + +#macro arrow(from, to, arrowthickness, c) +#declare arrowdirection = vnormalize(to - from); +#declare arrowlength = vlength(to - from); +union { + sphere { + from, 1.0 * arrowthickness + } + cylinder { + from, + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + arrowthickness + } + cone { + from + (arrowlength - 5 * arrowthickness) * arrowdirection, + 2 * arrowthickness, + to, + 0 + } + pigment { + color c + } + finish { + specular 0.9 + metallic + } +} +#end +#declare r = 1.1; + +arrow(< -r-0.2, 0.0, 0 >, < r+0.2, 0.0, 0.0 >, at, Gray) +arrow(< 0.0, 0.0, -r-0.2>, < 0.0, 0.0, r+0.2 >, at, Gray) +arrow(< 0.0, -r-0.2, 0 >, < 0.0, r+0.2, 0.0 >, at, Gray) + +#declare gruen1 = rgb<0.0,0.4,0.0>; +#declare gruen2 = rgb<0.0,0.4,0.8>; +#declare orange1 = rgb<1.0,0.6,0.0>; +#declare orange2 = rgb<0.8,0.0,0.4>; + +#macro ebene(v1, v2, farbe) + intersection { + box { <-r,-r,-r>, <r,r,r> } + plane { vnormalize(vcross(v1, v2)), 0.004 } + plane { vnormalize(-vcross(v1, v2)), 0.004 } + pigment { + color rgbt<farbe.x, farbe.y, farbe.z, 0.5> + } + finish { + specular 0.9 + metallic + } + } +#end + +#macro gerade(v1, farbe) + intersection { + box { <-r,-r,-r>, <r,r,r> } + cylinder { -2 * r * vnormalize(v1), + 2 * r * vnormalize(v1), 0.80*at } + pigment { + color farbe + } + finish { + specular 0.9 + metallic + } + } +#end + +#macro kasten() + difference { + box { <-r-0.01,-r-0.01,-r-0.01>, <r+0.01,r+0.01,r+0.01> } + union { + box { < -r, -r, -r >, + < r, r, r > } + box { <-2*r, -r+0.03, -r+0.03>, + < 2*r, r-0.03, r-0.03> } + box { < -r+0.03, -2*r, -r+0.03>, + < r-0.03, 2*r, r-0.03> } + box { < -r+0.03, -r+0.03, -2*r >, + < r-0.03, r-0.03, 2*r > } + } + pigment { + color rgb<0.8,0.8,0.8> + } + finish { + specular 0.9 + metallic + } + } +#end + diff --git a/vorlesungen/slides/5/beispiele/drei.jpg b/vorlesungen/slides/5/beispiele/drei.jpg Binary files differnew file mode 100644 index 0000000..35f9034 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/drei.jpg diff --git a/vorlesungen/slides/5/beispiele/drei.pov b/vorlesungen/slides/5/beispiele/drei.pov new file mode 100644 index 0000000..bdc9630 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/drei.pov @@ -0,0 +1,22 @@ +// +// drei.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j21, at, orange2) +//arrow(O, k21, at, gruen2) +//arrow(O, k22, at, gruen2) +gerade(j21, orange2) +//ebene(k21, k22, gruen2) + +#declare at = 0.7 * at; + +arrow(O, j11, at, orange1) +arrow(O, j12, at, orange1) +arrow(O, k11, at, gruen1) +ebene(j11, j12, orange1) + diff --git a/vorlesungen/slides/5/beispiele/kern1.jpg b/vorlesungen/slides/5/beispiele/kern1.jpg Binary files differnew file mode 100644 index 0000000..5c99664 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kern1.jpg diff --git a/vorlesungen/slides/5/beispiele/kern1.pov b/vorlesungen/slides/5/beispiele/kern1.pov new file mode 100644 index 0000000..8e61d8d --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kern1.pov @@ -0,0 +1,12 @@ +// +// kern1.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, k11, at, gruen1) +gerade(k11, gruen1) + diff --git a/vorlesungen/slides/5/beispiele/kern2.jpg b/vorlesungen/slides/5/beispiele/kern2.jpg Binary files differnew file mode 100644 index 0000000..87d18ac --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kern2.jpg diff --git a/vorlesungen/slides/5/beispiele/kern2.pov b/vorlesungen/slides/5/beispiele/kern2.pov new file mode 100644 index 0000000..70127a2 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kern2.pov @@ -0,0 +1,17 @@ +// +// kern2.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, k21, at, gruen2) +arrow(O, k22, at, gruen2) +ebene(k21, k22, gruen2) + +#declare at = 0.7 * at; +arrow(O, k11, at, gruen1) +gerade(k11, gruen1) + diff --git a/vorlesungen/slides/5/beispiele/kernbild.m b/vorlesungen/slides/5/beispiele/kernbild.m new file mode 100644 index 0000000..28cd552 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild.m @@ -0,0 +1,79 @@ +# +# kernbild.m +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +rand("seed", 1291) +rand("seed", 4711) + +lambda1 = 1; +lambda2 = 1.8; + +A = [ + lambda1, 0, 0; + 0, lambda2, 1; + 0, 0, lambda2 +]; + +B = eye(3) + rand(3,3); +det(B) + + +C = B*A*inverse(B) +rank(C) + +# Eigenwert lambda1 +E2 = C - lambda1 * eye(3) +rref(E2) + +# Eigenwert lambda2, k = 1 +E1 = C - lambda2 * eye(3) +D = rref(E1); +K1 = [ + -D(1,3); + -D(2,3); + 1 +]; +K1(:,1) = K1(:,1) / norm(K1(:,1)); +K1 + +f = fopen("JK.inc", "w"); +fprintf(f, "//\n// JK.inc\n//\n// (c) 2021 Prof Dr Andreas Müller\n//\n\n"); +fprintf(f, "// Kern und Bild von C - %.3f I\n", lambda2); +fprintf(f, "#declare k11 = < %.5f, %.5f, %.5f>;\n", K1(1,1), K1(2,1), K1(3,1)); +fprintf(f, "#declare j11 = < %.5f, %.5f, %.5f>;\n", E1(1,1), E1(2,1), E1(3,1)); +fprintf(f, "#declare j12 = < %.5f, %.5f, %.5f>;\n", E1(1,2), E1(2,2), E1(3,2)); +fprintf(f, "\n"); + +# k = 2 +E12 = E1 * E1 +D = rref(E12); +K2 = [ + -D(1,2), -D(1,3); + 1, 0; + 0, 1 +] +K2(:,1) = K2(:,1) / norm(K2(:,1)); +K2(:,2) = K2(:,2) / norm(K2(:,2)); +K2 + +fprintf(f, "// Kern und Bild von (C - %.3f I)^2\n", lambda2); +fprintf(f, "#declare k21 = < %.5f, %.5f, %.5f>;\n", K2(1,1), K2(2,1), K2(3,1)); +fprintf(f, "#declare k22 = < %.5f, %.5f, %.5f>;\n", K2(1,2), K2(2,2), K2(3,2)); +fprintf(f, "#declare j21 = < %.5f, %.5f, %.5f>;\n", E12(1,1), E12(2,1), E12(3,1)); +fprintf(f, "\n"); + +fclose(f); + +# Verifikation +x = K2 \ K1 +K2 * x + +eig(C) + +[U, S, V] = svd(C) + + +s = rand("seed") + diff --git a/vorlesungen/slides/5/beispiele/kernbild1.jpg b/vorlesungen/slides/5/beispiele/kernbild1.jpg Binary files differnew file mode 100644 index 0000000..87e874e --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild1.jpg diff --git a/vorlesungen/slides/5/beispiele/kernbild1.pov b/vorlesungen/slides/5/beispiele/kernbild1.pov new file mode 100644 index 0000000..425f299 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild1.pov @@ -0,0 +1,15 @@ +// +// kernbild1.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j11, at, orange1) +arrow(O, j12, at, orange1) +arrow(O, k11, at, gruen1) +ebene(j11, j12, orange1) + +//kasten() diff --git a/vorlesungen/slides/5/beispiele/kernbild2.jpg b/vorlesungen/slides/5/beispiele/kernbild2.jpg Binary files differnew file mode 100644 index 0000000..1160b31 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild2.jpg diff --git a/vorlesungen/slides/5/beispiele/kernbild2.pov b/vorlesungen/slides/5/beispiele/kernbild2.pov new file mode 100644 index 0000000..ae67ea1 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild2.pov @@ -0,0 +1,21 @@ +// +// kernbild2.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j21, at, orange2) +arrow(O, k21, at, gruen2) +arrow(O, k22, at, gruen2) +gerade(j21, orange2) +ebene(k21, k22, gruen2) + +//arrow(O, j11, at, orange1) +//arrow(O, j12, at, orange1) +//arrow(O, k11, at, gruen1) +//gerade(k11, gruen1) +//ebene(j11, j12, orange1) + diff --git a/vorlesungen/slides/5/beispiele/kombiniert.jpg b/vorlesungen/slides/5/beispiele/kombiniert.jpg Binary files differnew file mode 100644 index 0000000..9cb789c --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kombiniert.jpg diff --git a/vorlesungen/slides/5/beispiele/kombiniert.pov b/vorlesungen/slides/5/beispiele/kombiniert.pov new file mode 100644 index 0000000..c187d08 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kombiniert.pov @@ -0,0 +1,22 @@ +// +// kombiniert.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + +arrow(O, j21, at, orange2) +arrow(O, k21, at, gruen2) +arrow(O, k22, at, gruen2) +gerade(j21, orange2) +ebene(k21, k22, gruen2) + +#declare at = 0.7 * at; + +arrow(O, j11, at, orange1) +arrow(O, j12, at, orange1) +arrow(O, k11, at, gruen1) +ebene(j11, j12, orange1) + diff --git a/vorlesungen/slides/5/beispiele/leer.jpg b/vorlesungen/slides/5/beispiele/leer.jpg Binary files differnew file mode 100644 index 0000000..9789887 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/leer.jpg diff --git a/vorlesungen/slides/5/beispiele/leer.pov b/vorlesungen/slides/5/beispiele/leer.pov new file mode 100644 index 0000000..f4653d9 --- /dev/null +++ b/vorlesungen/slides/5/beispiele/leer.pov @@ -0,0 +1,9 @@ +// +// leer.pov +// +// (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +// + +#include "common.inc" +#include "JK.inc" + |