[SOLVED] DataScience -Data Science - Assignment 3 -Matrix fun

30.00 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

5/5 - (2 votes)

Solve the following using Python with numpy.

In numpy, there are some handy ways of working with matrixes (they are all explained later in this document):

import numpy as np from numpy.linalg import inv

# Creating matrices

A   = np.array([[ 1, 2 ],[ 3, 4]])

B   = np.array([[ 9, 8 ],[ 7, 6]])

# Transposing:

A.T # A transposed (danish: A transponeret)

B.T # B transposed

# Matrix multiplication:

A @ B

# Inverse:

inv(A)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Figure 1: Basic matrix functionality with numpy.

In the following, when talking about multiplication, we implicitly mean matrix multiplication (same as dot product).

Task 1

Given the two following matrices

  • Find AT
  • Find BT
  • Find AB (matrix multiplication). Compare with simple multiplication (using * instead of @ in Python). Can you see what is the difference?
  • Find ABT
  • Compare ABT and BTAT
  • Find (AT)T
  • Find AAT

Task 2

Given

  • Find AB
  • Find BA

Confirm that they are different! Clearly, when doing matrix multiplication, order matters! AB 6= BA, so matrix multiplication is not commutative.

Task 3

The inverse of a matrix  is found by

(1)

As seen in listing 1, the inverse of a matrix can be found easily with numpy (after having imported numpy.linalg.inv) by: inv(A). Using the same matrices from Task 2:

  • Find A−1
  • Find B−1
  • Find AA−1. Look closely at the result. (d) Find A−1A. Look closely at the result.
  • Find BB−1. Look closely at the result.
  • Find B−1B. Do you start to see a pattern?

It appears that a matrix multiplied with its inverse always gives .

Incidentally, a matrix with only ones in the diagonal is called an identity matrix, often denoted I.

Task 4

Given

(a) Find A−1

Oops. We see that not all matrices have an inverse! Looking at equation 1 (the equation for finding the inverse), can you figure out why? (hint: look at the denominator!)

Task 5

Plotting (lines, graphs, coordinates, etc) can be done using matplotlib. Try the following:

import numpy as np from matplotlib import pyplot as plt from numpy.linalg import inv

xs = np.array([0,0,3,3,0,1.5,3]) # List of x coordinates ys = np.array([1,0,0,1,1,2 ,1]) # List of y coordinates

fig = plt.figure() fig, ax = plt.subplots()

xs_ys = np.array([xs,ys]) ax.axis(’equal’)

# Plot the points ax.plot( *xs_ys, ’-’, color=’b’)

# Create a rotation matrix rot = np.array([[1, 0],[0, 1]]) # <– CHANGE THIS

# turn the two lists (xs, ys) into a list of (x,y) tuples points = np.array([[x,y] for x,y in zip(xs,ys)])

# Make the transformation: points_rot = (points @ rot)

# Turn it into a row of xs and a row of ys:

xs_ys_rot = np.array([points_rot[:,0], points_rot[:,1]])

# Finally, plot it ax.plot( *xs_ys_rot, ’-’, color=’r’) fig

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

(a) Set the rotation matrix (line 18) to rotate the shape 45 degrees ( radians).

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.