Prof. Ramani Duraiswami provides a fundamental class towards numeric / scientific computing using Matlab. Overall, this class is a very good introductory class towards Matlab and optimization. The class might be less challenging if you already master all the techniques.
Project
My final project paper (as a case study chapter of the book).
PedParse_CaseStudy_Ruofei
Homework
Link to my homework solution is here with passwordprotected.
Please comment with reasonable reason or drop me a line if you need the access.
Insights from Homework
 Direct matrix vector product through Matlab call uses native C code and roworiented vector. The for loop inside the C code is optimized for better performace.
 According to IEEE754 (double precision), the machine epsilon is $2^{52}$, so the numbers in the range $1+2^{53} \leq x < 1 + (2^{52} + 2^{53})$ might be rounded to $1+2^{52}$. The exponent $e$ satisfies $1022 \leq e \leq 1023$. The realmin in Matlab is $2^{1022}$. However, it is possible to have values lower than realmin. The smallest positive subnormal number is $2^{52} \times 2^{1022} = 2^{1074}$
 Matrix decomposition via Gaussian Elimination. $LU = PA$ is $O(n^3)$. P is a Permutation Matrix, which rearranges a system of equations and changes the order; L is a lower triangular matrix and U is a upper triangular matrix
 Condition Number of a Matrix is a measure of how close a matrix is to singular. cond(singular matrix) = $\infty$.
 Gram Schmidt performs a QR decomposition. Key idea in GramSchmidt is to subtract from every new vector.
 Orthogonal matrices are square matrices that have their columns orthonormal to each other.
 Solve $Ax = b$, let $L[Ux] = Pb$
 Modified Gram Schmidt algorithm for computing QR decomposition.
 Determinant of a square matrix can be computed using the LU decomposition
1 2 3 4 5 
[L,U,p] = lutx(A); det = 1; for i = 1 : n det = det * U(i, i); end 
 The inverse of a matrix A can be defined as the matrix X whose columns $x_j$ solve the equations $Ax_j = e_j$
 Householder Reflection
 Fitting the data
 Line fitting Problem
 RRQR algorithm.
 Matrix Approximation
 Ordinary Differential Equations
 The initial value problem for an ordinary differential equation involves finding a function y(t) that satisfies $\frac{dy(t)}{dt} = f(t, y(t))$ together with the initial condition $y(t_0) = y_0$
 Euler’s method could solve it by a fixed step size $h$
 BS23 (Bogacki and Shampine) algorithm is a simplified version of Matlab’s ode23
 Lorenz chaotic attractor was first described in 1963 by Edward Lorenz

A problem is stiff if the solution being sought varies slowly, but there are nearby solutions that vary rapidly, so the numerical method must take small steps to obtain satisfactory results.
 Optimization
References
 O’Leary, dianne P. Scientific computing with case studies. SIAM, 2009.
 Cleve Moler. Floating Points. IEEE standard model. https://www.mathworks.com/content/dam/mathworks/tagteam/Objects/f/77489_Fall96Cleve.pdf
 Andrew Davis. ISEQUALFP: Check equality within floating point precision, 2012. http://www.mathworks.com/matlabcentral/fileexchange/36734isequalfp–checkequalitywithinfloatingpointprecision
Leave a Reply