{ "cells": [ { "cell_type": "markdown", "id": "la-0", "metadata": {}, "source": "# Linear algebra\n\nnumbl uses LAPACK for its factorizations (native on the command line,\nWebAssembly in the browser)." }, { "cell_type": "markdown", "id": "la-1", "metadata": {}, "source": "## Solving a linear system" }, { "cell_type": "code", "id": "la-2", "metadata": {}, "execution_count": null, "outputs": [], "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\nb = [1; 2; 3];\nx = A \\ b\nresidual = norm(A * x - b)" }, { "cell_type": "markdown", "id": "la-3", "metadata": {}, "source": "## Determinant, rank, trace, inverse" }, { "cell_type": "code", "id": "la-4", "metadata": {}, "execution_count": null, "outputs": [], "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\ndet(A)\nrank(A)\ntrace(A)\ninv(A)" }, { "cell_type": "markdown", "id": "la-5", "metadata": {}, "source": "## Eigenvalues and eigenvectors" }, { "cell_type": "code", "id": "la-6", "metadata": {}, "execution_count": null, "outputs": [], "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\n[V, D] = eig(A);\neigenvalues = diag(D)'" }, { "cell_type": "markdown", "id": "la-7", "metadata": {}, "source": "## Singular values and QR" }, { "cell_type": "code", "id": "la-8", "metadata": {}, "execution_count": null, "outputs": [], "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\ns = svd(A)\n[Q, R] = qr(A);\northogonality_error = norm(Q' * Q - eye(3))" }, { "cell_type": "markdown", "id": "la-9", "metadata": {}, "source": "## Vector and matrix norms" }, { "cell_type": "code", "id": "la-10", "metadata": {}, "execution_count": null, "outputs": [], "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\nnorm([3 4])\nnorm([3 4], Inf)\nnorm(A, 'fro')" } ], "metadata": { "kernelspec": { "display_name": "numbl (MATLAB syntax)", "language": "numbl", "name": "numbl" }, "language_info": { "codemirror_mode": "octave", "file_extension": ".m", "mimetype": "text/x-octave", "name": "numbl", "nbconvert_exporter": "script", "pygments_lexer": "matlab" } }, "nbformat": 4, "nbformat_minor": 5 }