diff options
author | LordMcFungus <mceagle117@gmail.com> | 2021-03-22 18:05:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-22 18:05:11 +0100 |
commit | 76d2d77ddb2bed6b7c6b8ec56648d85da4103ab7 (patch) | |
tree | 11b2d41955ee4bfa0ae5873307c143f6b4d55d26 /vorlesungen/slides/5/beispiele/kernbild.m | |
parent | more chapter structure (diff) | |
parent | add title image (diff) | |
download | SeminarMatrizen-76d2d77ddb2bed6b7c6b8ec56648d85da4103ab7.tar.gz SeminarMatrizen-76d2d77ddb2bed6b7c6b8ec56648d85da4103ab7.zip |
Merge pull request #1 from AndreasFMueller/master
update
Diffstat (limited to 'vorlesungen/slides/5/beispiele/kernbild.m')
-rw-r--r-- | vorlesungen/slides/5/beispiele/kernbild.m | 79 |
1 files changed, 79 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..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") + |