Project 5 (Sparse Vector and Matrix) Solution

$30.00

Description

Problem 1. (Sparse Vector ) Use a symbol table of index-value pairs to implement a data type called SparseVector that represents an n-dimensional sparse vector, storing only the non-zero components of the vector. The data type must support the following API:

public class S p a r s e V e c t o r

  • Create an n – d i m e n s i o n a l zero vector . public S p a r s e V e c t o r ( int n )

  • Create a vector whose c o m p o n e n t s are given in a . public S p a r s e V e c t o r ( double [] a )

  • Return the number of d i m e n s i o n s of this vector . public int size ()

  • Return the number of nonzero c o m p o n e n t s in this vector . public int nnz ()

  • Return the ith co mp on en t of this vector .

public double get ( int i )

  • Set the ith co mp on en t of this vector to x . public void set ( int i , double x )

  • Return a new vector that is this vector plus that . public S p a r s e V e c t o r add ( S p a r s e V e c t o r that )

  • Return a new vector that is alpha times this vector . public S p a r s e V e c t o r scale ( double alpha )

  • Return the dot product of this vector with that . public double dot ( S p a r s e V e c t o r that )

  • Return the norm ( length ) of this vector .

public double norm ()

  • Return a string r e p r e s e n t a t i o n of this vector . public String toString ()

$ java S p a r s e V e c t o r

a

=

(3, 0.5)(6 , 0

.11)(9 , 0.75)

b

=

(3, 0.6)(4 , 0

.9)

a

dot

b = 0.3

c

=

a

+ b = (3 , 1

.1)(4 , 0

.9)(6 , 0.11)(9 , 0.75)

dim

=

10

nnz

=

4

alpha * a = (3 , 1

.5)(6 , 0

.33)(9 , 2.25)

norm

b

= 1.081665

3826391966

Problem 2. (Sparse Matrix ) Implement a data type called SparseMatrix that represents an m-by-n sparse matrix, as an array of size m of n-dimensional SparseVector objects. The data type must support the following API:

1 of 3

CS210 Project 5 (Sparse Vector and Matrix) Swami Iyer

public class S p a r s e M a t r i x

  • Create an m – by – n zero matrix . public S p a r s e M a t r i x ( int m , int n )

  • Create an m – by – n matrix whose elements are given in a. public S p a r s e M a t r i x ( double [][] a )

  • Return a two – element array whose elements are the number of rows

  • and columns of this matrix .

public int [] size ()

  • Return the number of nonzero elements in this matrix . public int nnz () {

  • Return the element at (i, j).

public double get ( int i , int j )

  • Set the element at (i, j) to x . public void set ( int i , int j , double x )

  • Return a new vector that is the product of this matrix and x . public S p a r s e V e c t o r times ( S p a r s e V e c t o r x )

  • Return a new matrix that is the sum of this matrix and that . public S p a r s e M a t r i x add ( S p a r s e M a t r i x that )

  • Return a string r e p r e s e n t a t i o n of this matrix .

public String toString ()

$ java S p a r s e M a t r i x

A = m = 5 , n = 5 , nnz = 6

  1. (0, 1.0)

  1. (1, 1.0)

  1. (2, 1.0)(4 , 0.3)

  1. (3, 1.0)

  1. (4, 1.0)

B = m = 5 , n = 5 , nnz = 5

  1. (0, 1.0)

  1. (1, 1.0)

  1. (2, 1.0)

  1. (3, 1.0)

  1. (4, 1.0)

A + B = m = 5 , n = 5 , nnz = 6

  1. (0, 2.0)

  1. (1, 2.0)

  1. (2, 2.0)(4 , 0.3)

  1. (3, 2.0)

  1. (4, 2.0)

B * x = (0 , 1.0)(1 , 2.0)(2 , 3.0)(3 , 4.0)(4 , 5.0)

Files to Submit:

2 of 3

CS210 Project 5 (Sparse Vector and Matrix) Swami Iyer

  1. SparseVector.java

  1. SparseMatrix.java

  1. report.txt

3 of 3


error: Content is protected !!