1{
2 "cells": [
3 {
4 "cell_type": "markdown",
5 "id": "la-0",
6 "metadata": {},
7 "source": "# Linear algebra\n\nnumbl uses LAPACK for its factorizations (native on the command line,\nWebAssembly in the browser)."
8 },
9 {
10 "cell_type": "markdown",
11 "id": "la-1",
12 "metadata": {},
13 "source": "## Solving a linear system"
14 },
15 {
16 "cell_type": "code",
17 "id": "la-2",
18 "metadata": {},
19 "execution_count": null,
20 "outputs": [],
21 "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\nb = [1; 2; 3];\nx = A \\ b\nresidual = norm(A * x - b)"
22 },
23 {
24 "cell_type": "markdown",
25 "id": "la-3",
26 "metadata": {},
27 "source": "## Determinant, rank, trace, inverse"
28 },
29 {
30 "cell_type": "code",
31 "id": "la-4",
32 "metadata": {},
33 "execution_count": null,
34 "outputs": [],
35 "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\ndet(A)\nrank(A)\ntrace(A)\ninv(A)"
36 },
37 {
38 "cell_type": "markdown",
39 "id": "la-5",
40 "metadata": {},
41 "source": "## Eigenvalues and eigenvectors"
42 },
43 {
44 "cell_type": "code",
45 "id": "la-6",
46 "metadata": {},
47 "execution_count": null,
48 "outputs": [],
49 "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\n[V, D] = eig(A);\neigenvalues = diag(D)'"
50 },
51 {
52 "cell_type": "markdown",
53 "id": "la-7",
54 "metadata": {},
55 "source": "## Singular values and QR"
56 },
57 {
58 "cell_type": "code",
59 "id": "la-8",
60 "metadata": {},
61 "execution_count": null,
62 "outputs": [],
63 "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))"
64 },
65 {
66 "cell_type": "markdown",
67 "id": "la-9",
68 "metadata": {},
69 "source": "## Vector and matrix norms"
70 },
71 {
72 "cell_type": "code",
73 "id": "la-10",
74 "metadata": {},
75 "execution_count": null,
76 "outputs": [],
77 "source": "A = [4 -2 1; -2 4 -2; 1 -2 3];\nnorm([3 4])\nnorm([3 4], Inf)\nnorm(A, 'fro')"
78 }
79 ],
80 "metadata": {
81 "kernelspec": {
82 "display_name": "numbl (MATLAB syntax)",
83 "language": "numbl",
84 "name": "numbl"
85 },
86 "language_info": {
87 "codemirror_mode": "octave",
88 "file_extension": ".m",
89 "mimetype": "text/x-octave",
90 "name": "numbl",
91 "nbconvert_exporter": "script",
92 "pygments_lexer": "matlab"
93 }
94 },
95 "nbformat": 4,
96 "nbformat_minor": 5
97}