{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Reflecting Bear\n", "## Background\n", "Panda Bear is confused. He is trying to work out how things should look when reflected in a mirror, but is getting the wrong results.\n", "As is the way with bears, his coordinate system is not orthonormal: so what he thinks is the direction perpendicular to the mirror isn't actually the direction the mirror reflects in.\n", "Help Bear write a code that will do his matrix calculations properly! \n", "\n", "## Instructions\n", "In this assignment you will write a Python function that will produce a transformation matrix for reflecting vectors in an arbitrarily angled mirror.\n", "\n", "Building on the last assingment, where you wrote a code to construct an orthonormal basis that spans a set of input vectors, here you will take a matrix which takes simple form in that basis, and transform it into our starting basis.\n", "Recall the from the last video,\n", "\n", "\\\\( T = E T_E E^{-1} \\\\)\n", "\n", "You will write a function that will construct this matrix.\n", "This assessment is not conceptually complicated, but will build and test your ability to express mathematical ideas in code.\n", "As such, your final code submission will be relatively short, but you will receive less structure on how to write it.\n", "\n", "### Matrices in Python\n", "For this exercise, we shall make use of the @ operator again.\n", "Recall from the last exercise, we used this operator to take the dot product of vectors.\n", "In general the operator will combine vectors and/or matrices in the expected linear algebra way,\n", "i.e. it will be either the vector dot product, matrix multiplication, or matrix operation on a vector, depending on it's input.\n", "For example to calculate the following expressions,\n", "\n", "\\\\( a = \\mathbf{s}\\cdot\\mathbf{t} \\\\)\n", "\n", "\\\\( \\mathbf{s} = A\\mathbf{t} \\\\)\n", "\n", "\\\\( M = A B \\\\),\n", "\n", "One would use the code,\n", "```python\n", "a = s @ t\n", "s = A @ t\n", "M = A @ B\n", "```\n", "(This is in contrast to the \\\\(*\\\\) operator, which performs element-wise multiplication, or multiplication by a scalar.)\n", "\n", "You may need to use some of the following functions:\n", "```python\n", "inv(A)\n", "transpose(A)\n", "gsBasis(A)\n", "```\n", "These, respectively, take the inverse of a matrix, give the transpose of a matrix, and produce a matrix of orthonormal column vectors given a general matrix of column vectors - i.e. perform the Gram-Schmidt process.\n", "This exercise will require you to combine some of these functions.\n", "\n", "### How to submit\n", "Edit the code in the cell below to complete the assignment.\n", "Once you are finished and happy with it, press the *Submit Assignment* button at the top of this notebook.\n", "\n", "Please don't change any of the function names, as these will be checked by the grading script.\n", "\n", "If you have further questions about submissions or programming assignments, here is a [list](https://www.coursera.org/learn/linear-algebra-machine-learning/discussions/weeks/1/threads/jB4klkn5EeibtBIQyzFmQg) of Q&A. You can also raise an issue on the discussion forum. Good luck!" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# PACKAGE\n", "# Run this cell once first to load the dependancies. There is no need to submit this cell.\n", "import numpy as np\n", "from numpy.linalg import norm, inv\n", "from numpy import transpose\n", "from readonly.bearNecessities import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# GRADED FUNCTION\n", "# This is the cell you should edit and submit.\n", "\n", "# In this function, you will return the transformation matrix T,\n", "# having built it out of an orthonormal basis set E that you create from Bear's Basis\n", "# and a transformation matrix in the mirror's coordinates TE.\n", "def build_reflection_matrix(bearBasis) : # The parameter bearBasis is a 2×2 matrix that is passed to the function.\n", " # Use the gsBasis function on bearBasis to get the mirror's orthonormal basis.\n", " E = gsBasis(bearBasis)\n", " # Write a matrix in component form that perform's the mirror's reflection in the mirror's basis.\n", " # Recall, the mirror operates by negating the last component of a vector.\n", " # Replace a,b,c,d with appropriate values\n", " TE = np.array([[1, 0],\n", " [0, -1]])\n", " # Combine the matrices E and TE to produce your transformation matrix.\n", " T = E@TE@transpose(E)\n", " # Finally, we return the result. There is no need to change this line.\n", " return T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Test your code before submission\n", "To test the code you've written above, run the cell (select the cell above, then press the play button [ ▶| ] or press shift-enter).\n", "You can then use the code below to test out your function.\n", "You don't need to submit this cell; you can edit and run it as much as you like.\n", "\n", "The code below will show a picture of Panda Bear.\n", "If you have correctly implemented the function above, you will also see Bear's reflection in his mirror." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# First load Pyplot, a graph plotting library.\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "# This is the matrix of Bear's basis vectors. \n", "bearBasis = np.array(\n", " [[1, -1],\n", " [1.5, 2]])\n", "# This line uses your code to build a transformation matrix for us to use.\n", "T = build_reflection_matrix(bearBasis)\n", "\n", "# Bear is drawn as a set of polygons, the vertices of which are placed as a matrix list of column vectors.\n", "# We have three of these non-square matrix lists: bear_white_fur, bear_black_fur, and bear_face.\n", "# We'll make new lists of vertices by applying the T matrix you've calculated.\n", "reflected_bear_white_fur = T @ bear_white_fur\n", "reflected_bear_black_fur = T @ bear_black_fur\n", "reflected_bear_face = T @ bear_face\n", "\n", "# This next line runs a code to set up the graphics environment.\n", "ax = draw_mirror(bearBasis)\n", "\n", "# We'll first plot Bear, his white fur, his black fur, and his face.\n", "ax.fill(bear_white_fur[0], bear_white_fur[1], color=bear_white, zorder=1)\n", "ax.fill(bear_black_fur[0], bear_black_fur[1], color=bear_black, zorder=2)\n", "ax.plot(bear_face[0], bear_face[1], color=bear_white, zorder=3)\n", "\n", "# Next we'll plot Bear's reflection.\n", "ax.fill(reflected_bear_white_fur[0], reflected_bear_white_fur[1], color=bear_white, zorder=1)\n", "ax.fill(reflected_bear_black_fur[0], reflected_bear_black_fur[1], color=bear_black, zorder=2)\n", "ax.plot(reflected_bear_face[0], reflected_bear_face[1], color=bear_white, zorder=3);" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "coursera": { "course_slug": "linear-algebra-machine-learning", "graded_item_id": "IAKuU", "graded_part_id": "JA4Og", "launcher_item_id": "Kd7ZX" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 1 }