From 812a80acf52275699afb285db46aa76be03006c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Mon, 18 Jan 2021 21:01:26 +0100 Subject: add more stuff about spectral radius --- buch/chapters/40-eigenwerte/beispiele/Makefile | 8 ++++ buch/chapters/40-eigenwerte/beispiele/i.m | 65 ++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 buch/chapters/40-eigenwerte/beispiele/Makefile create mode 100644 buch/chapters/40-eigenwerte/beispiele/i.m (limited to 'buch/chapters/40-eigenwerte/beispiele') diff --git a/buch/chapters/40-eigenwerte/beispiele/Makefile b/buch/chapters/40-eigenwerte/beispiele/Makefile new file mode 100644 index 0000000..543ef65 --- /dev/null +++ b/buch/chapters/40-eigenwerte/beispiele/Makefile @@ -0,0 +1,8 @@ +# +# Makefile -- Berechnungen für Beispiel durchführen +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +all: + octave i.m + diff --git a/buch/chapters/40-eigenwerte/beispiele/i.m b/buch/chapters/40-eigenwerte/beispiele/i.m new file mode 100644 index 0000000..353e3a2 --- /dev/null +++ b/buch/chapters/40-eigenwerte/beispiele/i.m @@ -0,0 +1,65 @@ +# +# i.m -- invariante +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +A0 = [ + 2, 1, 0, 0; + 0, 2, 1, 0; + 0, 0, 2, 0; + 0, 0, 0, 3 +]; + +# find a 3x3 matrix in SL(3,Z) + +function retval = zufallswert() + x = round(rand() * 10) - 2; + if (x >= 0) + x = x + 1; + endif + retval = x; +end + +function retval = zufallsmatrix(n) + retval = zeros(n, n); + for i = (1:n) + for j = (1:n) + retval(i,j) = zufallswert(); + end + end +end + +function retval = regulaer(n) + d = 0; + do + retval = zufallsmatrix(2); + d = det(retval); + until (d == 1); +end + +function retval = eingebettet(n,k) + retval = eye(n); + retval(k:k+1,k:k+1) = regulaer(2); +end + +format long + +B = eye(4); +B = B * eingebettet(4,3) +B = B * eingebettet(4,1) +B = B * inverse(eingebettet(4,2)) +#B = B * eingebettet(4,2) + +B +inverse(B) + +A = round(B * A0 * inverse(B)) + +D = A - 2 * eye(4) +rank(D) + +E = round(D*D*D*D) +rank(E') + +rref(E) -- cgit v1.2.1