summaryrefslogtreecommitdiff
path: root/exercise07/helpers/ex_7_1.py
diff options
context:
space:
mode:
Diffstat (limited to 'exercise07/helpers/ex_7_1.py')
-rw-r--r--exercise07/helpers/ex_7_1.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/exercise07/helpers/ex_7_1.py b/exercise07/helpers/ex_7_1.py
new file mode 100644
index 0000000..81a62d6
--- /dev/null
+++ b/exercise07/helpers/ex_7_1.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+
+# SPDX-License-Identifier: BSD-3-Clause
+#
+# Copyright 2020 Philipp Le
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# 3. Neither the name of the copyright holder nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+# THE POSSIBILITY OF SUCH DAMAGE.
+
+import numpy
+import scipy.signal
+
+C1 = numpy.array([1,1,-1,-1])
+C2 = numpy.array([1,-1,-1,1])
+D = numpy.array([1,-1])
+
+S = numpy.array([0,0,0,0,1,1,-1,-1,-1,-1,1,1,0,0,0,0])
+
+def cross(d, dn, c, name):
+ print("\\begin{equation*}")
+ print("\\begin{split}")
+ for n in range(len(d)-len(c)+1):
+ res = 0
+ syms = []
+ vals = []
+ for k in range(4):
+ syms.append("%s[%d] \\cdot %s[%d]" % (dn, (n+k-4), name, (k)))
+ vals.append("(%d) \\cdot (%d)" % (d[n+k], c[k]))
+ res += d[n+k] * c[k]
+ print("\\mathrm{R}_{%s%s}[%d] &= %s \\\\" % (dn, name, (n-4), " + ".join(syms)))
+ print(" &= %s \\\\" % (" + ".join(vals)))
+ print(" &= %d \\\\" % res)
+ #print(" &= %s = \\underline{\\underline{%d}} \\\\" % (" + ".join(vals), res))
+ print("\\end{split}")
+ print("\\end{equation*}")
+
+print("c) ================================")
+cross(S, "S", C1, "C_{4,1}")
+
+print("d) ================================")
+cross(S, "S", C2, "C_{4,2}")
+
+print("e) ================================")
+C2ext = numpy.array([0,0,0,0,1,-1,-1,1,0,0,0,0])
+cross(C2ext, "C_{4,2}", C2, "C_{4,2}")