Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

3B is the part I\'m need help with. Problem 3. The description of this problem i

ID: 3802123 • Letter: 3

Question


3B is the part I'm need help with.

Problem 3. The description of this problem is probably longer than the source code. For simplicity, we won't include error checking, so illegal input will crash the program. As usual, turn in source code and tests to show your code works. A. Write a class Objects Mat this aintain an m x mall handle pairs of numbers as tuples). Store the matrix in a list or list of lists, whichever you prefer. Keep track of the shape m x n. Include the following basic methods. Matrix Provide a constructor that sats the shape of the rnatrix and all the entries to a default value of zero. new Matt The call newMatrix((m,n)) ckars the existing data in the Matrix and sets it to a matrix of zeros of shape (min) getshape getshape returns a tuple giving the shape of the matrix. getElement The call getElement(Ci,j)) returns the element at row i and Colu sett Element The call setFlement (Ci,j), value) sets the entry at posi- tion (i, j) to value. The rest of the methods should use those above in order to be independent of the internal implementation of the matrix. setElements Takes a dictionary D where the keys are tuples (i,j) and the values are numbers. For each key, it sets the element at porsition (i,j) to DCi, j] SetByRows Takes a list of lists. The inner lists give values for each row, so the outer list describes the matrix For example CC1.2], [3,4JJ sets the matrix to the matrix with first row 1 21 and second row 3 This method will clear the existing data and reset the shape For the matrix operations, we want the user to provide the target object. So, if we have A and B the user should provide an existing matrix object C to store the result. Thus C.add(A, B) should reset the data in C (using methods above) to the matrix sum of A and B. For simplicity, c should not be A or B. Provide methods for scalar multiplication and matrix multiplication. For example C.scalarMult(num, A) should set C to the result of multiplying A by the scalar nun. For matrix multiplication, C mult (A,B) should set C to the matrix product of A and B. Also provide a method duplicate so that C.duplicateCA) sets C to the same mathematical matrix as A. B. In many applications, you have huge matrices, but most of the elements of the matrix are zeros. It's inefficient to store all those zeros, it's only necessary to store the nonzero elements. Here is one approach to this idea. Define a subclass of Matrix called SparseMatrix. In a sparse matrix, we keep track of the nonzero elements in a dictionary. The keys are tuples (i,j) giving the location of the element and the value assigned to this key gives the value of the nonzero element. If a tuple (i,j) does not appear in the dictionary, the matrix element at that location is assumed to be zero. When creating or modifying a sparse ma we don't want to store zero In the class SparseMatrix override some (but as few as possible) of the parent class Matrix to make sparse matrices work anywhere you can put a Matrix.

Explanation / Answer

best way to solve the 3B part would be, to create a dictionary or hashmap (depending on which programming language you are using) and create a map between tuple and value. Lets say your matrix is:

2 0 0 0

0 0 0 2

0 1 0 0

then you need to store the locations and values of non-zero elements in above matrix in a hashmap, something like:

(0, 0) --> 2

(1, 3) --> 2

(2, 1) --> 1

but unfortunately most hashmaps (or dictionary) do not support tuples as keys (ie tuples in the left side), but we can do a workaround for that, you can concatenate the two indices with an underscore in between, something like:

convert (x, y) to a string 'x_y'

your code would look like this:

tuple = (x, y)

key = str(tuple[0]) + '_' + str(tuple[1]) #this would look like a string "x_y"

dictionary = {}

dictionary[key] = value

I hope you understood what I'm trying to convey here. The above code is written in python since you didn't mention any language.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote