diff options
author | Andreas Müller <andreas.mueller@ost.ch> | 2021-03-21 17:21:45 +0100 |
---|---|---|
committer | Andreas Müller <andreas.mueller@ost.ch> | 2021-03-21 17:21:45 +0100 |
commit | 654d9ee4aad5389798a37f521a7a4238be3fdc34 (patch) | |
tree | 8007a94a2919cffcae975d2b012dfdd225a8994e /vorlesungen/slides/5/beispiele/kernbild.m | |
parent | new slides (diff) | |
download | SeminarMatrizen-654d9ee4aad5389798a37f521a7a4238be3fdc34.tar.gz SeminarMatrizen-654d9ee4aad5389798a37f521a7a4238be3fdc34.zip |
JK bilder
Diffstat (limited to 'vorlesungen/slides/5/beispiele/kernbild.m')
-rw-r--r-- | vorlesungen/slides/5/beispiele/kernbild.m | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/vorlesungen/slides/5/beispiele/kernbild.m b/vorlesungen/slides/5/beispiele/kernbild.m new file mode 100644 index 0000000..ca6bd6a --- /dev/null +++ b/vorlesungen/slides/5/beispiele/kernbild.m @@ -0,0 +1,78 @@ +# +# 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 +D = rref(E1 * E1); +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", E2(1,1), E2(2,1), E2(3,1)); +fprintf(f, "\n"); + +fclose(f); + +# Verifikation +x = K2 \ K1 +K2 * x + +eig(C) + +[U, S, V] = svd(C) + + +s = rand("seed") + |