<html lang="en"> <head> <title>Example Codes - GNU Octave</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="GNU Octave"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Diagonal-and-Permutation-Matrices.html#Diagonal-and-Permutation-Matrices" title="Diagonal and Permutation Matrices"> <link rel="prev" href="Function-Support.html#Function-Support" title="Function Support"> <link rel="next" href="Zeros-Treatment.html#Zeros-Treatment" title="Zeros Treatment"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Example-Codes"></a> <p> Next: <a rel="next" accesskey="n" href="Zeros-Treatment.html#Zeros-Treatment">Zeros Treatment</a>, Previous: <a rel="previous" accesskey="p" href="Function-Support.html#Function-Support">Function Support</a>, Up: <a rel="up" accesskey="u" href="Diagonal-and-Permutation-Matrices.html#Diagonal-and-Permutation-Matrices">Diagonal and Permutation Matrices</a> <hr> </div> <h3 class="section">21.4 Some Examples of Usage</h3> <p>The following can be used to solve a linear system <code>A*x = b</code> using the pivoted LU factorization: <pre class="example"> [L, U, P] = lu (A); ## now L*U = P*A x = U \ L \ P*b; </pre> <p class="noindent">This is how you normalize columns of a matrix <var>X</var> to unit norm: <pre class="example"> s = norm (X, "columns"); X = diag (s) \ X; </pre> <p class="noindent">The following expression is a way to efficiently calculate the sign of a permutation, given by a permutation vector <var>p</var>. It will also work in earlier versions of Octave, but slowly. <pre class="example"> det (eye (length (p))(p, :)) </pre> <p class="noindent">Finally, here's how you solve a linear system <code>A*x = b</code> with Tikhonov regularization (ridge regression) using SVD (a skeleton only): <pre class="example"> m = rows (A); n = columns (A); [U, S, V] = svd (A); ## determine the regularization factor alpha ## alpha = ... ## transform to orthogonal basis b = U'*b; ## Use the standard formula, replacing A with S. ## S is diagonal, so the following will be very fast and accurate. x = (S'*S + alpha^2 * eye (n)) \ (S' * b); ## transform to solution basis x = V*x; </pre> </body></html>