| 4 <2016-09-26 Mon> |
Add a member function, norm, to the vector class |
| |
discussed in the C++ guide. The function should |
| |
have the signature: |
| |
|
| |
double norm(double p); |
| |
|
| |
and should implement the vector p-norm. The function |
| |
would be then called like: |
| |
|
| |
x.norm(1.53); |
| |
|
| |
where x is a vector object. Write a test script |
| |
that loops through values of p=1, 1.1, ..., 1.9, 2 |
| |
and for each value of p, prints the average p-norm |
| |
of 100 vectors of length 10 whose components are |
| |
uniform random on [0,1] (see the C++ guide section |
| |
on generating random numbers). |
| 5 <2016-10-03 Mon> |
Extend the vector class given in the guide, by |
| |
adding functions dot, operator+, operator-, |
| |
and operator==. Implement these as friend |
| |
functions. |
| |
|
| |
dot should implement the inner product between |
| |
two vectors, x and y, while operator+ and |
| |
operator- should implement component-wise addition |
| |
and subtraction. |
| |
|
| |
The behavior of operator== should be |
| |
such that x==y returns true for vectors if |
| |
abs(x[i]-y[i]) < 1e-10 |
| |
for all the components of the vectors, x and y. |
| 7 <2016-10-17 Mon> |
Write a squarematrix class that inherits from the |
| |
matrix template class. The constructor should only |
| |
accept a single argument to create the matrix, rather |
| |
than two like the normal matrix class. |
| |
|
| |
Add a member function, unique to the squarematrix |
| |
class, that computes the matrix determinant |
| |
recursively using the Laplace expansion. Test your |
| |
algorithm on square matrices, \(A \in R^{n \times n}\), |
| |
where \(A_{ij} = ni + j\), where \(i=0,\ldots,n-1\) and |
| |
\(j=0,\ldots,n-1\) for \(n=2,3,\ldots,100\). |