From 9b28df097f8b74a2aa329ba32e86ceef4a90840f Mon Sep 17 00:00:00 2001 From: "Ryan C. Cooper" Date: Mon, 20 Feb 2017 17:22:36 -0500 Subject: [PATCH] add lecture 10 --- lecture_09/octave-workspace | Bin 0 -> 1994 bytes .../lecture_10-checkpoint.ipynb | 6 + lecture_10/GaussNaive.m | 25 + lecture_10/GaussPivot.m | 33 + lecture_10/Tridiag.m | 22 + lecture_10/lecture_10.aux | 40 + lecture_10/lecture_10.bbl | 0 lecture_10/lecture_10.blg | 48 + lecture_10/lecture_10.ipynb | 1462 +++++++++++++++++ lecture_10/lecture_10.log | 872 ++++++++++ lecture_10/lecture_10.md | 593 +++++++ lecture_10/lecture_10.out | 8 + lecture_10/lecture_10.pdf | Bin 0 -> 162693 bytes lecture_10/lecture_10.tex | 852 ++++++++++ .../lecture_10_files/lecture_10_27_0.pdf | Bin 0 -> 11168 bytes .../lecture_10_files/lecture_10_27_0.svg | 129 ++ .../lecture_10_files/lecture_10_28_0.svg | 123 ++ .../lecture_10_files/lecture_10_3_0.pdf | Bin 0 -> 5402 bytes .../lecture_10_files/lecture_10_3_0.svg | 140 ++ .../lecture_10_files/lecture_10_5_0.svg | 377 +++++ .../lecture_10_files/lecture_10_5_1.pdf | Bin 0 -> 7156 bytes .../lecture_10_files/lecture_10_5_1.svg | 322 ++++ lecture_10/nohup.out | 0 lecture_10/octave-workspace | Bin 0 -> 86061 bytes 24 files changed, 5052 insertions(+) create mode 100644 lecture_09/octave-workspace create mode 100644 lecture_10/.ipynb_checkpoints/lecture_10-checkpoint.ipynb create mode 100644 lecture_10/GaussNaive.m create mode 100644 lecture_10/GaussPivot.m create mode 100644 lecture_10/Tridiag.m create mode 100644 lecture_10/lecture_10.aux create mode 100644 lecture_10/lecture_10.bbl create mode 100644 lecture_10/lecture_10.blg create mode 100644 lecture_10/lecture_10.ipynb create mode 100644 lecture_10/lecture_10.log create mode 100644 lecture_10/lecture_10.md create mode 100644 lecture_10/lecture_10.out create mode 100644 lecture_10/lecture_10.pdf create mode 100644 lecture_10/lecture_10.tex create mode 100644 lecture_10/lecture_10_files/lecture_10_27_0.pdf create mode 100644 lecture_10/lecture_10_files/lecture_10_27_0.svg create mode 100644 lecture_10/lecture_10_files/lecture_10_28_0.svg create mode 100644 lecture_10/lecture_10_files/lecture_10_3_0.pdf create mode 100644 lecture_10/lecture_10_files/lecture_10_3_0.svg create mode 100644 lecture_10/lecture_10_files/lecture_10_5_0.svg create mode 100644 lecture_10/lecture_10_files/lecture_10_5_1.pdf create mode 100644 lecture_10/lecture_10_files/lecture_10_5_1.svg create mode 100644 lecture_10/nohup.out create mode 100644 lecture_10/octave-workspace diff --git a/lecture_09/octave-workspace b/lecture_09/octave-workspace new file mode 100644 index 0000000000000000000000000000000000000000..f7e8b2b8e46c933bf0ef57c3288b56dd54fd694b GIT binary patch literal 1994 zcmb_deN0nV6n{km=mJz{2nzz0)v>Wv#)qLY@VvI*z=}+C##9;Uz)FV{#z#T6xu6gO zlYzjPOb0T8n>IrVbA?f{g9!{|Fl9g;Co+SB_Wxdewc8!V zeg}KCoz|J04%kk;-V$c`ybOegS*o*6W6=D?nX7rxDiAGhuXSwELV609=e2GUPHrj} zUGDAx_;i*omEHrTn~%GDvjLowoD1LLPlK2$Elbe!fkdaflDkC>BZ6F3iT?zY$|Kly zqYvTyhG3~3LkW=|-^uX+k%-SfsvZSKP^&H1^0aX&~XK6-_y89FJP2H{v244<31 zzR+F-(L1?ma}&__ zo^HbT0$K(RAw3IcAcZ*{(U90Z!t)v5r6oV=UCjlS6F9_XRE$TA&rbd-j6zAp~$Yp5|rvf#>Df^2LjzAo1{f zIVSc7WM0wcNQTBiEbdQfq}D@K7BlGa;!W7RmC3H8O~W)ZTG?>N0Igv%^`3gBVY>Utfo*KlhdML z15rE(;Se^2usaFMCT!#i|8Ben!Vv6PQEeEz#SSxo2R-|RK05@9SlJS+t)k)?a&h?S z8Iu2iu2`Lm^#9*+bQEh!d{O#pIbsKhcM`HwkQGi=CRtHrC6Edxl}9QDBRaagLwY>_ z7(dP4Ghes2x#~r{Z3+|OlFb3mCX*oKA59VQkI~Fc{=eRdMBE?bO0$-Er98VG)K zG#$m{mh5K*o&g;8w*n*P)d5yu2QwUK1*YO~n#JDBw-%POg+vh)=RnBYguH!dW(te^ ztW%g75R!^isab{DIJ$}ou|(`$iL)4@+vR>%>yKXS -- 0 +< -- 0 ++ -- 0 +- -- 0 +* -- 0 +:= -- 0 +add.period$ -- 0 +call.type$ -- 0 +change.case$ -- 0 +chr.to.int$ -- 0 +cite$ -- 0 +duplicate$ -- 0 +empty$ -- 0 +format.name$ -- 0 +if$ -- 0 +int.to.chr$ -- 0 +int.to.str$ -- 0 +missing$ -- 0 +newline$ -- 0 +num.names$ -- 0 +pop$ -- 0 +preamble$ -- 0 +purify$ -- 0 +quote$ -- 0 +skip$ -- 0 +stack$ -- 0 +substring$ -- 0 +swap$ -- 0 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 0 +warning$ -- 0 +while$ -- 0 +width$ -- 0 +write$ -- 0 +(There were 3 error messages) diff --git a/lecture_10/lecture_10.ipynb b/lecture_10/lecture_10.ipynb new file mode 100644 index 0000000..78e529d --- /dev/null +++ b/lecture_10/lecture_10.ipynb @@ -0,0 +1,1462 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Gauss Elimination\n", + "### Solving sets of equations with matrix operations\n", + "\n", + "The number of dimensions of a matrix indicate the degrees of freedom of the system you are solving. \n", + "\n", + "If you have a set of known output, $y_{1},~y_{2},~...y_{N}$ and a set of equations that\n", + "relate unknown inputs, $x_{1},~x_{2},~...x_{N}$, then these can be written in a vector\n", + "matrix format as:\n", + "\n", + "$y=Ax$\n", + "\n", + "Consider a problem with 2 DOF:\n", + "\n", + "$x_{1}+3x_{2}=1$\n", + "\n", + "$2x_{1}+x_{2}=1$\n", + "\n", + "$\\left[ \\begin{array}{cc}\n", + "1 & 3 \\\\\n", + "2 & 1 \\end{array} \\right]\n", + "\\left[\\begin{array}{c} \n", + "x_{1} \\\\ \n", + "x_{2} \\end{array}\\right]=\n", + "\\left[\\begin{array}{c} \n", + "1 \\\\\n", + "1\\end{array}\\right]$\n", + "\n", + "The solution for $x_{1}$ and $x_{2}$ is the intersection of two lines:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x21=[-2:2];\n", + "x11=1-3*x21;\n", + "x21=[-2:2];\n", + "x22=1-2*x21;\n", + "plot(x11,x21,x21,x22)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For a $3\\times3$ matrix, the solution is the intersection of the 3 planes.\n", + "\n", + "$10x_{1}+2x_{2}+x_{3}=1$\n", + "\n", + "$2x_{1}+x_{2}+x_{3}=1$\n", + "\n", + "$x_{1}+2x_{2}+10x_{3}=1$\n", + "\n", + "$\\left[ \\begin{array}{cc}\n", + "10 & 2 & 1\\\\\n", + "2 & 1 & 1 \\\\\n", + "1 & 2 & 10\\end{array} \\right]\n", + "\\left[\\begin{array}{c} \n", + "x_{1} \\\\ \n", + "x_{2} \\\\\n", + "x_{3} \\end{array}\\right]=\n", + "\\left[\\begin{array}{c} \n", + "1 \\\\\n", + "1 \\\\\n", + "1\\end{array}\\right]$" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "error: 'X22' undefined near line 1 column 16\n", + "error: 'X13' undefined near line 1 column 14\n", + "error: evaluating argument list element number 3\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-1.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-1\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-0.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-1.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-1\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-0.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t-2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n", + "\t\n", + "\tgnuplot_plot_3a\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x11=linspace(-2,2,5);\n", + "x12=linspace(-2,2,5);\n", + "[X11,X12]=meshgrid(x11,x12);\n", + "X13=1-10*X11-2*X22;\n", + "\n", + "x21=linspace(-2,2,5);\n", + "x22=linspace(-2,2,5);\n", + "[X21,X22]=meshgrid(x21,x22);\n", + "X23=1-2*X11-X22;\n", + "\n", + "x31=linspace(-2,2,5);\n", + "x32=linspace(-2,2,5);\n", + "[X31,X32]=meshgrid(x31,x32);\n", + "X33=1/10*(1-X31-2*X32);\n", + "\n", + "mesh(X11,X12,X13);\n", + "hold on;\n", + "mesh(X21,X22,X23)\n", + "mesh(X31,X32,X33)\n", + "x=[10,2, 1;2,1, 1; 1, 2, 10]\\[1;1;1];\n", + "plot3(x(1),x(2),x(3),'o')\n", + "view(45,45)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After 3 DOF problems, the solutions are described as *hyperplane* intersections. Which are even harder to visualize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gauss elimination\n", + "### Solving sets of equations systematically\n", + "\n", + "$\\left[ \\begin{array}{ccc|c}\n", + " & A & & y \\\\\n", + "10 & 2 & 1 & 1\\\\\n", + "2 & 1 & 1 & 1 \\\\\n", + "1 & 2 & 10 & 1\\end{array} \n", + "\\right] $\n", + "\n", + "Ay(2,:)-Ay(1,:)/5 = ([2 1 1 1]-1/5[10 2 1 1])\n", + "\n", + "$\\left[ \\begin{array}{ccc|c}\n", + " & A & & y \\\\\n", + "10 & 2 & 1 & 1\\\\\n", + "0 & 3/5 & 4/5 & 4/5 \\\\\n", + "1 & 2 & 10 & 1\\end{array} \n", + "\\right] $\n", + "\n", + "Ay(3,:)-Ay(1,:)/10 = ([1 2 10 1]-1/10[10 2 1 1])\n", + "\n", + "$\\left[ \\begin{array}{ccc|c}\n", + " & A & & y \\\\\n", + "10 & 2 & 1 & 1\\\\\n", + "0 & 3/5 & 4/5 & 4/5 \\\\\n", + "0 & 1.8 & 9.9 & 0.9\\end{array} \n", + "\\right] $\n", + "\n", + "Ay(3,:)-1.8\\*5/3\\*Ay(2,:) = ([0 1.8 9.9 0.9]-3\\*[0 3/5 4/5 4/5])\n", + "\n", + "$\\left[ \\begin{array}{ccc|c}\n", + " & A & & y \\\\\n", + "10 & 2 & 1 & 1\\\\\n", + "0 & 3/5 & 4/5 & 4/5 \\\\\n", + "0 & 0 & 7.5 & -1.5\\end{array} \n", + "\\right] $\n", + "\n", + "now, $7.5x_{3}=-1.5$ so $x_{3}=-\\frac{1}{5}$\n", + "\n", + "then, $3/5x_{2}+4/5(-1/5)=1$ so $x_{2}=\\frac{8}{5}$\n", + "\n", + "finally, $10x_{1}+2(8/5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Consider the problem again from the intro to Linear Algebra, 4 masses are connected in series to 4 springs with K=10 N/m. What are the final positions of the masses? \n", + "\n", + "![Springs-masses](../lecture_09/mass_springs.svg)\n", + "\n", + "The masses haves the following amounts, 1, 2, 3, and 4 kg for masses 1-4. Using a FBD for each mass:\n", + "\n", + "$m_{1}g+k(x_{2}-x_{1})-kx_{1}=0$\n", + "\n", + "$m_{2}g+k(x_{3}-x_{2})-k(x_{2}-x_{1})=0$\n", + "\n", + "$m_{3}g+k(x_{4}-x_{3})-k(x_{3}-x_{2})=0$\n", + "\n", + "$m_{4}g-k(x_{4}-x_{3})=0$\n", + "\n", + "in matrix form:\n", + "\n", + "$\\left[ \\begin{array}{cccc}\n", + "2k & -k & 0 & 0 \\\\\n", + "-k & 2k & -k & 0 \\\\\n", + "0 & -k & 2k & -k \\\\\n", + "0 & 0 & -k & k \\end{array} \\right]\n", + "\\left[ \\begin{array}{c}\n", + "x_{1} \\\\\n", + "x_{2} \\\\\n", + "x_{3} \\\\\n", + "x_{4} \\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "m_{1}g \\\\\n", + "m_{2}g \\\\\n", + "m_{3}g \\\\\n", + "m_{4}g \\end{array} \\right]$" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K =\n", + "\n", + " 20 -10 0 0\n", + " -10 20 -10 0\n", + " 0 -10 20 -10\n", + " 0 0 -10 10\n", + "\n", + "y =\n", + "\n", + " 9.8100\n", + " 19.6200\n", + " 29.4300\n", + " 39.2400\n", + "\n" + ] + } + ], + "source": [ + "k=10; % N/m\n", + "m1=1; % kg\n", + "m2=2;\n", + "m3=3;\n", + "m4=4;\n", + "g=9.81; % m/s^2\n", + "K=[2*k -k 0 0; -k 2*k -k 0; 0 -k 2*k -k; 0 0 -k k]\n", + "y=[m1*g;m2*g;m3*g;m4*g]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K1 =\n", + "\n", + " 20.00000 -10.00000 0.00000 0.00000 9.81000\n", + " 0.00000 15.00000 -10.00000 0.00000 24.52500\n", + " 0.00000 -10.00000 20.00000 -10.00000 29.43000\n", + " 0.00000 0.00000 -10.00000 10.00000 39.24000\n", + "\n" + ] + } + ], + "source": [ + "K1=[K y];\n", + "K1(2,:)=K1(1,:)/2+K1(2,:)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K2 =\n", + "\n", + " 20.00000 -10.00000 0.00000 0.00000 9.81000\n", + " 0.00000 15.00000 -10.00000 0.00000 24.52500\n", + " 0.00000 0.00000 13.33333 -10.00000 45.78000\n", + " 0.00000 0.00000 -10.00000 10.00000 39.24000\n", + "\n" + ] + } + ], + "source": [ + "K2=K1;\n", + "K2(3,:)=K1(2,:)*2/3+K1(3,:)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K2 =\n", + "\n", + " 20.00000 -10.00000 0.00000 0.00000 9.81000\n", + " 0.00000 15.00000 -10.00000 0.00000 24.52500\n", + " 0.00000 0.00000 13.33333 -10.00000 45.78000\n", + " 0.00000 0.00000 0.00000 2.50000 73.57500\n", + "\n" + ] + } + ], + "source": [ + "K2(4,:)=-K2(3,:)*K2(4,3)/K2(3,3)+K2(4,:)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x4 = 29.430\n", + "x3 = 25.506\n", + "x2 = 18.639\n", + "x1 = 9.8100\n" + ] + } + ], + "source": [ + "yp=K2(:,5);\n", + "x4=yp(4)/K2(4,4)\n", + "x3=(yp(3)+10*x4)/K2(3,3)\n", + "x2=(yp(2)+10*x3)/K2(2,2)\n", + "x1=(yp(1)+10*x2)/K2(1,1)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 9.8100\n", + " 18.6390\n", + " 25.5060\n", + " 29.4300\n", + "\n" + ] + } + ], + "source": [ + "K\\y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Automate Gauss Elimination\n", + "\n", + "We can automate Gauss elimination with a function whose input is A and y:\n", + "\n", + "`x=GaussNaive(A,y)`" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =\n", + "\n", + " 9.8100\n", + " 18.6390\n", + " 25.5060\n", + " 29.4300\n", + "\n" + ] + } + ], + "source": [ + "x=GaussNaive(K,y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Problem (Diagonal element is zero)\n", + "\n", + "If a diagonal element is 0 or very small either:\n", + "\n", + "1. no solution found\n", + "2. errors are introduced \n", + "\n", + "Therefore, we would want to pivot before applying Gauss elimination\n", + "\n", + "Consider:\n", + "\n", + "(a) $\\left[ \\begin{array}{cccc}\n", + "0 & 2 & 3 \\\\\n", + "4 & 6 & 7 \\\\\n", + "2 & -3 & 6 \\end{array} \\right]\n", + "\\left[ \\begin{array}{c}\n", + "x_{1} \\\\\n", + "x_{2} \\\\\n", + "x_{3} \\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "8 \\\\\n", + "-3 \\\\\n", + "5\\end{array} \\right]$\n", + "\n", + "(b) $\\left[ \\begin{array}{cccc}\n", + "0.0003 & 3.0000 \\\\\n", + "1.0000 & 1.0000 \\end{array} \\right]\n", + "\\left[ \\begin{array}{c}\n", + "x_{1} \\\\\n", + "x_{2} \\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "2.0001 \\\\\n", + "1.0000 \\end{array} \\right]$" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "warning: division by zero\n", + "warning: called from\n", + " GaussNaive at line 16 column 12\n", + "warning: division by zero\n", + "warning: division by zero\n", + "ans =\n", + "\n", + " NaN\n", + " NaN\n", + " NaN\n", + "\n", + "ans =\n", + "\n", + " -5.423913\n", + " 0.021739\n", + " 2.652174\n", + "\n" + ] + } + ], + "source": [ + "format short\n", + "Aa=[0,2,3;4,6,7;2,-3,6]; ya=[8;-3;5];\n", + "GaussNaive(Aa,ya)\n", + "Aa\\ya" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =\n", + "\n", + " -5.423913\n", + " 0.021739\n", + " 2.652174\n", + "\n", + "Aug =\n", + "\n", + " 4.00000 6.00000 7.00000 -3.00000\n", + " 0.00000 -6.00000 2.50000 6.50000\n", + " 0.00000 0.00000 3.83333 10.16667\n", + "\n", + "npivots = 2\n" + ] + } + ], + "source": [ + "[x,Aug,npivots]=GaussPivot(Aa,ya)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 0.325665420556713\n", + " 0.666666666666667\n", + "\n", + "ans =\n", + "\n", + " 0.333333333333333\n", + " 0.666666666666667\n", + "\n" + ] + } + ], + "source": [ + "format long\n", + "Ab=[0.3E-13,3.0000;1.0000,1.0000];yb=[2+0.1e-13;1.0000];\n", + "GaussNaive(Ab,yb)\n", + "Ab\\yb" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =\n", + "\n", + " 0.333333333333333\n", + " 0.666666666666667\n", + "\n", + "Aug =\n", + "\n", + " 1.000000000000000 1.000000000000000 1.000000000000000\n", + " 0.000000000000000 2.999999999999970 1.999999999999980\n", + "\n", + "npivots = 1\n", + "ans =\n", + "\n", + " 0.333333333333333\n", + " 0.666666666666667\n", + "\n" + ] + } + ], + "source": [ + "[x,Aug,npivots]=GaussPivot(Ab,yb)\n", + "Ab\\yb\n", + "format short" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Spring-Mass System again\n", + "Now, 4 masses are connected in series to 4 springs with $K_{1}$=10 N/m, $K_{2}$=5 N/m, \n", + "$K_{3}$=2 N/m \n", + "and $K_{4}$=1 N/m. What are the final positions of the masses? \n", + "\n", + "![Springs-masses](../lecture_09/mass_springs.svg)\n", + "\n", + "The masses have the following amounts, 1, 2, 3, and 4 kg for masses 1-4. Using a FBD for each mass:\n", + "\n", + "$m_{1}g+k_{2}(x_{2}-x_{1})-k_{1}x_{1}=0$\n", + "\n", + "$m_{2}g+k_{3}(x_{3}-x_{2})-k_{2}(x_{2}-x_{1})=0$\n", + "\n", + "$m_{3}g+k_{4}(x_{4}-x_{3})-k_{3}(x_{3}-x_{2})=0$\n", + "\n", + "$m_{4}g-k_{4}(x_{4}-x_{3})=0$\n", + "\n", + "in matrix form:\n", + "\n", + "$\\left[ \\begin{array}{cccc}\n", + "k_1+k_2 & -k_2 & 0 & 0 \\\\\n", + "-k_2 & k_2+k_3 & -k_3 & 0 \\\\\n", + "0 & -k_3 & k_3+k_4 & -k_4 \\\\\n", + "0 & 0 & -k_4 & k_4 \\end{array} \\right]\n", + "\\left[ \\begin{array}{c}\n", + "x_{1} \\\\\n", + "x_{2} \\\\\n", + "x_{3} \\\\\n", + "x_{4} \\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "m_{1}g \\\\\n", + "m_{2}g \\\\\n", + "m_{3}g \\\\\n", + "m_{4}g \\end{array} \\right]$" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K =\n", + "\n", + " 15 -5 0 0\n", + " -5 7 -2 0\n", + " 0 -2 3 -1\n", + " 0 0 -1 1\n", + "\n", + "y =\n", + "\n", + " 9.8100\n", + " 19.6200\n", + " 29.4300\n", + " 39.2400\n", + "\n" + ] + } + ], + "source": [ + "k1=10; k2=5;k3=2;k4=1; % N/m\n", + "m1=1; % kg\n", + "m2=2;\n", + "m3=3;\n", + "m4=4;\n", + "g=9.81; % m/s^2\n", + "K=[k1+k2 -k2 0 0; -k2, k2+k3, -k3 0; 0 -k3, k3+k4, -k4; 0 0 -k4 k4]\n", + "y=[m1*g;m2*g;m3*g;m4*g]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tridiagonal matrix\n", + "\n", + "This matrix, K, could be rewritten as 3 vectors e, f and g\n", + "\n", + "$e=\\left[ \\begin{array}{c}\n", + "0 \\\\\n", + "-5 \\\\\n", + "-2 \\\\\n", + "-1 \\end{array} \\right]$\n", + "\n", + "$f=\\left[ \\begin{array}{c}\n", + "15 \\\\\n", + "7 \\\\\n", + "3 \\\\\n", + "1 \\end{array} \\right]$\n", + "\n", + "$g=\\left[ \\begin{array}{c}\n", + "-5 \\\\\n", + "-2 \\\\\n", + "-1 \\\\\n", + "0 \\end{array} \\right]$\n", + "\n", + "Where all other components are 0 and the length of the vectors are n and the first component of e and the last component of g are zero\n", + "\n", + "`e(1)=0` \n", + "\n", + "`g(end)=0`\n", + "\n", + "No need to pivot and number of calculations reduced enormously.\n", + "\n", + "|method |Number of Floating point operations for n$\\times$n-matrix|\n", + "|----------------|---------|\n", + "| Naive Gauss | n-cubed |\n", + "| Tridiagonal | n |" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 9.8100 27.4680 61.8030 101.0430\n", + "\n" + ] + } + ], + "source": [ + "e=[0;-5;-2;-1];\n", + "g=[-5;-2;-1;0];\n", + "f=[15;7;3;1];\n", + "Tridiag(e,f,g,y)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "% tic ... t=toc \n", + "% is Matlab timer used for debugging programs\n", + "t_GE = zeros(1,100);\n", + "t_GE_tridiag = zeros(1,100);\n", + "t_TD = zeros(1,100);\n", + "%for n = 1:200\n", + "for n=1:100\n", + " A = rand(n,n);\n", + " e = rand(n,1); e(1)=0;\n", + " f = rand(n,1);\n", + " g = rand(n,1); g(end)=0;\n", + " Atd=diag(f, 0) - diag(e(2:n), -1) - diag(g(1:n-1), 1);\n", + " b = rand(n,1);\n", + " tic;\n", + " x = GaussPivot(A,b);\n", + " t_GE(n) = toc;\n", + " tic;\n", + " x = GaussPivot(Atd,b);\n", + " t_GE_tridiag(n) = toc;\n", + " tic;\n", + " x = Tridiag(e,f,g,b);\n", + " t_TD(n) = toc;\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "Gnuplot\n", + "Produced by GNUPLOT 5.0 patchlevel 3 \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\t\n", + "\t \n", + "\t \n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t10-4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10-3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10-2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10-1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t100\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t100\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t101\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t102\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t103\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\n", + "\t\ttime (s)\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tnumber of elements\n", + "\t\n", + "\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_2a\n", + "\n", + "\t\n", + "\t\n", + "\tgnuplot_plot_3a\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "n=1:200;\n", + "loglog(n,t_GE,n,t_TD,n,t_GE_tridiag)\n", + "xlabel('number of elements')\n", + "ylabel('time (s)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Octave", + "language": "octave", + "name": "octave" + }, + "language_info": { + "file_extension": ".m", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "octave", + "version": "0.19.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/lecture_10/lecture_10.log b/lecture_10/lecture_10.log new file mode 100644 index 0000000..088d911 --- /dev/null +++ b/lecture_10/lecture_10.log @@ -0,0 +1,872 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.1.11) 20 FEB 2017 17:21 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**lecture_10.tex +(./lecture_10.tex +LaTeX2e <2016/02/01> +Babel <3.9q> and hyphenation patterns for 81 language(s) loaded. +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/mathpazo.sty +Package: mathpazo 2005/04/12 PSNFSS-v9.2a Palatino w/ Pazo Math (D.Puga, WaS) +\symupright=\mathgroup4 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 95. + +(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count87 +)) +\Gin@req@height=\dimen103 +\Gin@req@width=\dimen104 +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2016/02/04 v1.7-139 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 67. +\captionmargin=\dimen105 +\captionmargin@=\dimen106 +\captionwidth=\dimen107 +\caption@tempdima=\dimen108 +\caption@indent=\dimen109 +\caption@parindent=\dimen110 +\caption@hangindent=\dimen111 +) +\c@ContinuedFloat=\count88 +) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjustbox.sty +Package: adjustbox 2012/05/21 v1.0 Adjusting TeX boxes (trim, clip, ...) + +(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2014/12/03 v2.7a package option processing (HA) + +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks15 +\XKV@tempa@toks=\toks16 +) +\XKV@depth=\count89 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/adjcalc.sty +Package: adjcalc 2012/05/16 v1.1 Provides advanced setlength with multiple back +-ends (calc, etex, pgfmath) +) +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/trimclip.sty +Package: trimclip 2012/05/16 v1.0 Trim and clip general TeX material + +(/usr/share/texlive/texmf-dist/tex/latex/collectbox/collectbox.sty +Package: collectbox 2012/05/17 v0.4b Collect macro arguments as boxes +\collectedbox=\box26 +) +\tc@llx=\dimen112 +\tc@lly=\dimen113 +\tc@urx=\dimen114 +\tc@ury=\dimen115 +Package trimclip Info: Using driver 'tc-pdftex.def'. + +(/usr/share/texlive/texmf-dist/tex/latex/adjustbox/tc-pdftex.def +File: tc-pdftex.def 2012/05/13 v1.0 Clipping driver for pdftex +)) +\adjbox@Width=\dimen116 +\adjbox@Height=\dimen117 +\adjbox@Depth=\dimen118 +\adjbox@Totalheight=\dimen119 + +(/usr/share/texlive/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty +Package: ifoddpage 2011/09/13 v1.0 Conditionals for odd/even page detection +\c@checkoddpage=\count90 +) +(/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +Package: varwidth 2009/03/30 ver 0.92; Variable-width minipages +\@vwid@box=\box27 +\sift@deathcycles=\count91 +\@vwid@loff=\dimen120 +\@vwid@roff=\dimen121 +)) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/enumerate.sty +Package: enumerate 2015/07/23 v3.00 enumerate extensions (DPC) +\@enLab=\toks17 +) +(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +Package: geometry 2010/09/12 v5.6 Page Geometry + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +\Gm@cnth=\count92 +\Gm@cntv=\count93 +\c@Gm@tempcnt=\count94 +\Gm@bindingoffset=\dimen122 +\Gm@wd@mp=\dimen123 +\Gm@odd@mp=\dimen124 +\Gm@even@mp=\dimen125 +\Gm@layoutwidth=\dimen126 +\Gm@layoutheight=\dimen127 +\Gm@layouthoffset=\dimen128 +\Gm@layoutvoffset=\dimen129 +\Gm@dimlist=\toks18 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2016/03/03 v2.15a AMS math features +\@mathmargin=\skip43 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks19 +\ex@=\dimen130 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen131 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count95 +LaTeX Info: Redefining \frac on input line 199. +\uproot@=\count96 +\leftroot@=\count97 +LaTeX Info: Redefining \overline on input line 297. +\classnum@=\count98 +\DOTSCASE@=\count99 +LaTeX Info: Redefining \ldots on input line 394. +LaTeX Info: Redefining \dots on input line 397. +LaTeX Info: Redefining \cdots on input line 518. +\Mathstrutbox@=\box28 +\strutbox@=\box29 +\big@size=\dimen132 +LaTeX Font Info: Redeclaring font encoding OML on input line 630. +LaTeX Font Info: Redeclaring font encoding OMS on input line 631. +\macc@depth=\count100 +\c@MaxMatrixCols=\count101 +\dotsspace@=\muskip10 +\c@parentequation=\count102 +\dspbrk@lvl=\count103 +\tag@help=\toks20 +\row@=\count104 +\column@=\count105 +\maxfields@=\count106 +\andhelp@=\toks21 +\eqnshift@=\dimen133 +\alignsep@=\dimen134 +\tagshift@=\dimen135 +\tagwidth@=\dimen136 +\totwidth@=\dimen137 +\lineht@=\dimen138 +\@envbody=\toks22 +\multlinegap=\skip44 +\multlinetaggap=\skip45 +\mathdisplay@stack=\toks23 +LaTeX Info: Redefining \[ on input line 2735. +LaTeX Info: Redefining \] on input line 2736. +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup5 +\symAMSb=\mathgroup6 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +) +(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty +Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba +tim +) +(/usr/share/texlive/texmf-dist/tex/latex/eurosym/eurosym.sty +Package: eurosym 1998/08/06 v1.1 European currency symbol ``Euro'' +\@eurobox=\box30 +) +(/usr/share/texlive/texmf-dist/tex/latex/ucs/ucs.sty +Package: ucs 2013/05/11 v2.2 UCS: Unicode input support + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-global.def +File: uni-global.def 2013/05/13 UCS: Unicode global data +) +\uc@secondtry=\count107 +\uc@combtoks=\toks24 +\uc@combtoksb=\toks25 +\uc@temptokena=\toks26 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2015/03/17 v1.2c Input encoding file +\inpenc@prehook=\toks27 +\inpenc@posthook=\toks28 + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def +File: utf8x.def 2004/10/17 UCS: Input encoding UTF-8 +)) +(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty +Package: fancyvrb 2008/02/07 + +Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix +<2008/02/07> (tvz) +\FV@CodeLineNo=\count108 +\FV@InFile=\read1 +\FV@TabBox=\box31 +\c@FancyVerbLine=\count109 +\FV@StepNumber=\count110 +\FV@OutFile=\write3 +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grffile.sty +Package: grffile 2012/04/05 v1.16 Extended file name support for graphics (HO) + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +))) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +Package grffile Info: Option `multidot' is set to `true'. +Package grffile Info: Option `extendedchars' is set to `false'. +Package grffile Info: Option `space' is set to `true'. +Package grffile Info: \Gin@ii of package `graphicx' fixed on input line 486. +) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package hobsub Info: Skipping package `ifluatex' (already loaded). +Package hobsub Info: Skipping package `ifvtex' (already loaded). +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package hobsub Info: Skipping package `ifpdf' (already loaded). +Package hobsub Info: Skipping package `etexcmds' (already loaded). +Package hobsub Info: Skipping package `kvsetkeys' (already loaded). +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package hobsub Info: Skipping package `pdftexcmds' (already loaded). +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) +) +\@linkdim=\dimen139 +\Hy@linkcounter=\count111 +\Hy@pagecounter=\count112 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count113 + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4443. +Package hyperref Info: Link nesting OFF on input line 4448. +Package hyperref Info: Hyper index ON on input line 4451. +Package hyperref Info: Plain pages OFF on input line 4458. +Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4688. +\c@Hy@tempcnt=\count114 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5041. +\XeTeXLinkMargin=\dimen140 +\Fld@menulength=\count115 +\Field@Width=\dimen141 +\Fld@charsize=\dimen142 +Package hyperref Info: Hyper figures OFF on input line 6295. +Package hyperref Info: Link nesting OFF on input line 6300. +Package hyperref Info: Hyper index ON on input line 6303. +Package hyperref Info: backreferencing OFF on input line 6310. +Package hyperref Info: Link coloring OFF on input line 6315. +Package hyperref Info: Link coloring with OCG OFF on input line 6320. +Package hyperref Info: PDF/A mode OFF on input line 6325. +LaTeX Info: Redefining \ref on input line 6365. +LaTeX Info: Redefining \pageref on input line 6369. +\Hy@abspage=\count116 +\c@Item=\count117 +\c@Hfootnote=\count118 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX +\Fld@listcount=\count119 +\c@bookmark@seq@number=\count120 + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip46 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC) +\LTleft=\skip47 +\LTright=\skip48 +\LTpre=\skip49 +\LTpost=\skip50 +\LTchunksize=\count121 +\LTcapwidth=\dimen143 +\LT@head=\box32 +\LT@firsthead=\box33 +\LT@foot=\box34 +\LT@lastfoot=\box35 +\LT@cols=\count122 +\LT@rows=\count123 +\c@LT@tables=\count124 +\c@LT@chunks=\count125 +\LT@p@ftn=\toks29 +) +(/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2005/04/14 v1.61803 publication quality tables +\heavyrulewidth=\dimen144 +\lightrulewidth=\dimen145 +\cmidrulewidth=\dimen146 +\belowrulesep=\dimen147 +\belowbottomsep=\dimen148 +\aboverulesep=\dimen149 +\abovetopsep=\dimen150 +\cmidrulesep=\dimen151 +\cmidrulekern=\dimen152 +\defaultaddspace=\dimen153 +\@cmidla=\count126 +\@cmidlb=\count127 +\@aboverulesep=\dimen154 +\@belowrulesep=\dimen155 +\@thisruleclass=\count128 +\@lastruleclass=\count129 +\@thisrulewidth=\dimen156 +) +(/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2011/09/28 v3.5.2 Customized lists +\labelindent=\skip51 +\enit@outerparindent=\dimen157 +\enit@toks=\toks30 +\enit@inbox=\box36 +\enitdp@description=\count130 +) +(/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty +\UL@box=\box37 +\UL@hyphenbox=\box38 +\UL@skip=\skip52 +\UL@hook=\toks31 +\UL@height=\dimen158 +\UL@pe=\count131 +\UL@pixel=\dimen159 +\ULC@box=\box39 +Package: ulem 2012/05/18 +\ULdepth=\dimen160 +) +Package hyperref Info: Option `breaklinks' set `true' on input line 264. +Package hyperref Info: Option `colorlinks' set `true' on input line 264. + (./lecture_10.aux + +LaTeX Warning: Label `gauss-elimination' multiply defined. + +) +\openout1 = `lecture_10.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 271. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 271. + + (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 271. +LaTeX Font Info: ... okay on input line 271. +LaTeX Font Info: Try loading font information for T1+ppl on input line 271. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ppl.fd +File: t1ppl.fd 2001/06/04 font definitions for T1/ppl. +) +(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count132 +\scratchdimen=\dimen161 +\scratchbox=\box40 +\nofMPsegments=\count133 +\nofMParguments=\count134 +\everyMPshowfont=\toks32 +\MPscratchCnt=\count135 +\MPscratchDim=\dimen162 +\MPnumerator=\count136 +\makeMPintoPDFobject=\count137 +\everyMPtoPDFconversion=\toks33 +) (/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: hyperref package is loaded. +Package caption Info: longtable package is loaded. + +(/usr/share/texlive/texmf-dist/tex/latex/caption/ltcaption.sty +Package: ltcaption 2013/06/09 v1.4-94 longtable captions (AR) +) +Package caption Info: End \AtBeginDocument code. + +*geometry* driver: auto-detecting +*geometry* detected driver: pdftex +*geometry* verbose mode - [ preamble ] result: +* driver: pdftex +* paper: +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(72.26999pt, 469.75502pt, 72.26999pt) +* v-part:(T,H,B)=(72.26999pt, 650.43001pt, 72.26999pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=469.75502pt +* \textheight=650.43001pt +* \oddsidemargin=0.0pt +* \evensidemargin=0.0pt +* \topmargin=-37.0pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=11.0pt +* \footskip=30.0pt +* \marginparwidth=59.0pt +* \marginparsep=10.0pt +* \columnsep=10.0pt +* \skip\footins=10.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/ucsencs.def +File: ucsencs.def 2011/01/21 Fixes to fontencodings LGR, T3 +) +\AtBeginShipoutBox=\box41 +Package hyperref Info: Link coloring ON on input line 271. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count138 +) +LaTeX Info: Redefining \ref on input line 271. +LaTeX Info: Redefining \pageref on input line 271. +LaTeX Info: Redefining \nameref on input line 271. + +(./lecture_10.out) (./lecture_10.out) +\@outlinefile=\write4 +\openout4 = `lecture_10.out'. + +LaTeX Font Info: Try loading font information for OT1+ppl on input line 275. + + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ppl.fd +File: ot1ppl.fd 2001/06/04 font definitions for OT1/ppl. +) +LaTeX Font Info: Try loading font information for OML+zplm on input line 275 +. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omlzplm.fd +File: omlzplm.fd 2002/09/08 Fontinst v1.914 font definitions for OML/zplm. +) +LaTeX Font Info: Try loading font information for OMS+zplm on input line 275 +. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omszplm.fd +File: omszplm.fd 2002/09/08 Fontinst v1.914 font definitions for OMS/zplm. +) +LaTeX Font Info: Try loading font information for OMX+zplm on input line 275 +. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omxzplm.fd +File: omxzplm.fd 2002/09/08 Fontinst v1.914 font definitions for OMX/zplm. +) +LaTeX Font Info: Try loading font information for OT1+zplm on input line 275 +. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1zplm.fd +File: ot1zplm.fd 2002/09/08 Fontinst v1.914 font definitions for OT1/zplm. +) +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 12.50409pt on input line 275. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 9.37807pt on input line 275. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 7.29405pt on input line 275. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 12.50409pt on input line 275. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 9.37807pt on input line 275. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 7.29405pt on input line 275. + + +LaTeX Warning: No \author given. + +LaTeX Font Info: Try loading font information for T1+cmtt on input line 279. + +(/usr/share/texlive/texmf-dist/tex/latex/base/t1cmtt.fd +File: t1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <14.4> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 287. +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <10.95> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 290. + + +Package hyperref Warning: Difference (2) between bookmark levels is greater +(hyperref) than one, level fixed on input line 290. + +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 11.40997pt on input line 295. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 8.33606pt on input line 295. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 6.25204pt on input line 295. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 11.40997pt on input line 295. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 8.33606pt on input line 295. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 6.25204pt on input line 295. + +File: lecture_10_files/lecture_10_3_0.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_10_files/lecture_10_3_0.pdf used on input line + 321. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] +Underfull \hbox (badness 10000) in paragraph at lines 323--324 + + [] + +[2 <./lecture_10_files/lecture_10_3_0.pdf>] +LaTeX Font Info: Try loading font information for TS1+cmtt on input line 359 +. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmtt.fd +File: ts1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) + +File: lecture_10_files/lecture_10_5_1.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_10_files/lecture_10_5_1.pdf used on input line + 371. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + +Underfull \hbox (badness 10000) in paragraph at lines 373--374 + + [] + +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <12> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 378. +[3 <./lecture_10_files/lecture_10_5_1.pdf>] + +! LaTeX Error: Unknown graphics extension: .svg. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.433 ...egraphics{../lecture_09/mass_springs.svg} + +? +[4] [5] [6] [7] + +! LaTeX Error: Unknown graphics extension: .svg. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.712 ...egraphics{../lecture_09/mass_springs.svg} + +? +[8] [9] +LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <10.95> not available +(Font) Font shape `T1/cmtt/m/n' tried instead on input line 812. + [10] + +File: lecture_10_files/lecture_10_27_0.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_10_files/lecture_10_27_0.pdf used on input lin +e 839. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + +Underfull \hbox (badness 10000) in paragraph at lines 841--842 + + [] + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 852. +[11 <./lecture_10_files/lecture_10_27_0.pdf>] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 852. + (./lecture_10.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 852. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 852. +Package rerunfilecheck Info: File `lecture_10.out' has not changed. +(rerunfilecheck) Checksum: F41F49C8B1F4406369908EBDD24F2572;629. + + +LaTeX Warning: There were multiply-defined labels. + +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 852. + ) +Here is how much of TeX's memory you used: + 10939 strings out of 493029 + 163764 string characters out of 6136234 + 273062 words of memory out of 5000000 + 14225 multiletter control sequences out of 15000+600000 + 35480 words of font info for 90 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 36i,8n,77p,494b,465s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-ts1.enc}{/usr/share/texli +ve/texmf-dist/fonts/enc/dvips/base/8r.enc}{/usr/share/texmf/fonts/enc/dvips/cm- +super/cm-super-t1.enc} +Output written on lecture_10.pdf (11 pages, 162693 bytes). +PDF statistics: + 165 PDF objects out of 1000 (max. 8388607) + 133 compressed objects within 2 object streams + 27 named destinations out of 1000 (max. 500000) + 80 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/lecture_10/lecture_10.md b/lecture_10/lecture_10.md new file mode 100644 index 0000000..dd426e0 --- /dev/null +++ b/lecture_10/lecture_10.md @@ -0,0 +1,593 @@ + + +```octave +%plot --format svg +``` + + +```octave +setdefaults +``` + +# Gauss Elimination +### Solving sets of equations with matrix operations + +The number of dimensions of a matrix indicate the degrees of freedom of the system you are solving. + +If you have a set of known output, $y_{1},~y_{2},~...y_{N}$ and a set of equations that +relate unknown inputs, $x_{1},~x_{2},~...x_{N}$, then these can be written in a vector +matrix format as: + +$y=Ax$ + +Consider a problem with 2 DOF: + +$x_{1}+3x_{2}=1$ + +$2x_{1}+x_{2}=1$ + +$\left[ \begin{array}{cc} +1 & 3 \\ +2 & 1 \end{array} \right] +\left[\begin{array}{c} +x_{1} \\ +x_{2} \end{array}\right]= +\left[\begin{array}{c} +1 \\ +1\end{array}\right]$ + +The solution for $x_{1}$ and $x_{2}$ is the intersection of two lines: + + +```octave +x21=[-2:2]; +x11=1-3*x21; +x21=[-2:2]; +x22=1-2*x21; +plot(x11,x21,x21,x22) +``` + + +![svg](lecture_10_files/lecture_10_3_0.svg) + + +For a 3$\times$3 matrix, the solution is the intersection of the 3 planes. + +$10x_{1}+2x_{2}+x_{3}=1$ + +$2x_{1}+x_{2}+x_{3}=1$ + +$x_{1}+2x_{2}+10x_{3}=1$ + +$\left[ \begin{array}{cc} +10 & 2 & 1\\ +2 & 1 & 1 \\ +1 & 2 & 10\end{array} \right] +\left[\begin{array}{c} +x_{1} \\ +x_{2} \\ +x_{3} \end{array}\right]= +\left[\begin{array}{c} +1 \\ +1 \\ +1\end{array}\right]$ + + +```octave +x11=linspace(-2,2,5); +x12=linspace(-2,2,5); +[X11,X12]=meshgrid(x11,x12); +X13=1-10*X11-2*X22; + +x21=linspace(-2,2,5); +x22=linspace(-2,2,5); +[X21,X22]=meshgrid(x21,x22); +X23=1-2*X11-X22; + +x31=linspace(-2,2,5); +x32=linspace(-2,2,5); +[X31,X32]=meshgrid(x31,x32); +X33=1/10*(1-X31-2*X32); + +mesh(X11,X12,X13); +hold on; +mesh(X21,X22,X23) +mesh(X31,X32,X33) +x=[10,2, 1;2,1, 1; 1, 2, 10]\[1;1;1]; +plot3(x(1),x(2),x(3),'o') +view(45,45) +``` + + +![svg](lecture_10_files/lecture_10_5_0.svg) + + +After 3 DOF problems, the solutions are described as *hyperplane* intersections. Which are even harder to visualize + +## Gauss elimination +### Solving sets of equations systematically + +$\left[ \begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +2 & 1 & 1 & 1 \\ +1 & 2 & 10 & 1\end{array} +\right] $ + +Ay(2,:)-Ay(1,:)/5 = ([2 1 1 1]-1/5[10 2 1 1]) + +$\left[ \begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +1 & 2 & 10 & 1\end{array} +\right] $ + +Ay(3,:)-Ay(1,:)/10 = ([1 2 10 1]-1/10[10 2 1 1]) + +$\left[ \begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +0 & 1.8 & 9.9 & 0.9\end{array} +\right] $ + +Ay(3,:)-1.8\*5/3\*Ay(2,:) = ([0 1.8 9.9 0.9]-3\*[0 3/5 4/5 4/5]) + +$\left[ \begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +0 & 0 & 7.5 & -1.5\end{array} +\right] $ + +now, $7.5x_{3}=-1.5$ so $x_{3}=-\frac{1}{5}$ + +then, $3/5x_{2}+4/5(-1/5)=1$ so $x_{2}=\frac{8}{5}$ + +finally, $10x_{1}+2(8/5) + +Consider the problem again from the intro to Linear Algebra, 4 masses are connected in series to 4 springs with K=10 N/m. What are the final positions of the masses? + +![Springs-masses](../lecture_09/mass_springs.svg) + +The masses haves the following amounts, 1, 2, 3, and 4 kg for masses 1-4. Using a FBD for each mass: + +$m_{1}g+k(x_{2}-x_{1})-kx_{1}=0$ + +$m_{2}g+k(x_{3}-x_{2})-k(x_{2}-x_{1})=0$ + +$m_{3}g+k(x_{4}-x_{3})-k(x_{3}-x_{2})=0$ + +$m_{4}g-k(x_{4}-x_{3})=0$ + +in matrix form: + +$\left[ \begin{array}{cccc} +2k & -k & 0 & 0 \\ +-k & 2k & -k & 0 \\ +0 & -k & 2k & -k \\ +0 & 0 & -k & k \end{array} \right] +\left[ \begin{array}{c} +x_{1} \\ +x_{2} \\ +x_{3} \\ +x_{4} \end{array} \right]= +\left[ \begin{array}{c} +m_{1}g \\ +m_{2}g \\ +m_{3}g \\ +m_{4}g \end{array} \right]$ + + +```octave +k=10; % N/m +m1=1; % kg +m2=2; +m3=3; +m4=4; +g=9.81; % m/s^2 +K=[2*k -k 0 0; -k 2*k -k 0; 0 -k 2*k -k; 0 0 -k k] +y=[m1*g;m2*g;m3*g;m4*g] +``` + + K = + + 20 -10 0 0 + -10 20 -10 0 + 0 -10 20 -10 + 0 0 -10 10 + + y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + + +```octave +K1=[K y]; +K1(2,:)=K1(1,:)/2+K1(2,:) +``` + + K1 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 -10.00000 20.00000 -10.00000 29.43000 + 0.00000 0.00000 -10.00000 10.00000 39.24000 + + + + +```octave +K2=K1; +K2(3,:)=K1(2,:)*2/3+K1(3,:) + +``` + + K2 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 0.00000 13.33333 -10.00000 45.78000 + 0.00000 0.00000 -10.00000 10.00000 39.24000 + + + + +```octave +K2(4,:)=-K2(3,:)*K2(4,3)/K2(3,3)+K2(4,:) +``` + + K2 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 0.00000 13.33333 -10.00000 45.78000 + 0.00000 0.00000 0.00000 2.50000 73.57500 + + + + +```octave +yp=K2(:,5); +x4=yp(4)/K2(4,4) +x3=(yp(3)+10*x4)/K2(3,3) +x2=(yp(2)+10*x3)/K2(2,2) +x1=(yp(1)+10*x2)/K2(1,1) +``` + + x4 = 29.430 + x3 = 25.506 + x2 = 18.639 + x1 = 9.8100 + + + +```octave +K\y +``` + + ans = + + 9.8100 + 18.6390 + 25.5060 + 29.4300 + + + +## Automate Gauss Elimination + +We can automate Gauss elimination with a function whose input is A and y: + +`x=GaussNaive(A,y)` + + +```octave +x=GaussNaive(K,y) +``` + + x = + + 9.8100 + 18.6390 + 25.5060 + 29.4300 + + + +## Problem (Diagonal element is zero) + +If a diagonal element is 0 or very small either: + +1. no solution found +2. errors are introduced + +Therefore, we would want to pivot before applying Gauss elimination + +Consider: + +(a) $\left[ \begin{array}{cccc} +0 & 2 & 3 \\ +4 & 6 & 7 \\ +2 & -3 & 6 \end{array} \right] +\left[ \begin{array}{c} +x_{1} \\ +x_{2} \\ +x_{3} \end{array} \right]= +\left[ \begin{array}{c} +8 \\ +-3 \\ +5\end{array} \right]$ + +(b) $\left[ \begin{array}{cccc} +0.0003 & 3.0000 \\ +1.0000 & 1.0000 \end{array} \right] +\left[ \begin{array}{c} +x_{1} \\ +x_{2} \end{array} \right]= +\left[ \begin{array}{c} +2.0001 \\ +1.0000 \end{array} \right]$ + + +```octave +format short +Aa=[0,2,3;4,6,7;2,-3,6]; ya=[8;-3;5]; +GaussNaive(Aa,ya) +Aa\ya +``` + + warning: division by zero + warning: called from + GaussNaive at line 16 column 12 + warning: division by zero + warning: division by zero + ans = + + NaN + NaN + NaN + + ans = + + -5.423913 + 0.021739 + 2.652174 + + + + +```octave +[x,Aug,npivots]=GaussPivot(Aa,ya) +``` + + x = + + -5.423913 + 0.021739 + 2.652174 + + Aug = + + 4.00000 6.00000 7.00000 -3.00000 + 0.00000 -6.00000 2.50000 6.50000 + 0.00000 0.00000 3.83333 10.16667 + + npivots = 2 + + + +```octave +format long +Ab=[0.3E-13,3.0000;1.0000,1.0000];yb=[2+0.1e-13;1.0000]; +GaussNaive(Ab,yb) +Ab\yb +``` + + ans = + + 0.325665420556713 + 0.666666666666667 + + ans = + + 0.333333333333333 + 0.666666666666667 + + + + +```octave +[x,Aug,npivots]=GaussPivot(Ab,yb) +Ab\yb +format short +``` + + x = + + 0.333333333333333 + 0.666666666666667 + + Aug = + + 1.000000000000000 1.000000000000000 1.000000000000000 + 0.000000000000000 2.999999999999970 1.999999999999980 + + npivots = 1 + ans = + + 0.333333333333333 + 0.666666666666667 + + + +### Spring-Mass System again +Now, 4 masses are connected in series to 4 springs with $K_{1}$=10 N/m, $K_{2}$=5 N/m, +$K_{3}$=2 N/m +and $K_{4}$=1 N/m. What are the final positions of the masses? + +![Springs-masses](../lecture_09/mass_springs.svg) + +The masses have the following amounts, 1, 2, 3, and 4 kg for masses 1-4. Using a FBD for each mass: + +$m_{1}g+k_{2}(x_{2}-x_{1})-k_{1}x_{1}=0$ + +$m_{2}g+k_{3}(x_{3}-x_{2})-k_{2}(x_{2}-x_{1})=0$ + +$m_{3}g+k_{4}(x_{4}-x_{3})-k_{3}(x_{3}-x_{2})=0$ + +$m_{4}g-k_{4}(x_{4}-x_{3})=0$ + +in matrix form: + +$\left[ \begin{array}{cccc} +k_1+k_2 & -k_2 & 0 & 0 \\ +-k_2 & k_2+k_3 & -k_3 & 0 \\ +0 & -k_3 & k_3+k_4 & -k_4 \\ +0 & 0 & -k_4 & k_4 \end{array} \right] +\left[ \begin{array}{c} +x_{1} \\ +x_{2} \\ +x_{3} \\ +x_{4} \end{array} \right]= +\left[ \begin{array}{c} +m_{1}g \\ +m_{2}g \\ +m_{3}g \\ +m_{4}g \end{array} \right]$ + + +```octave +k1=10; k2=5;k3=2;k4=1; % N/m +m1=1; % kg +m2=2; +m3=3; +m4=4; +g=9.81; % m/s^2 +K=[k1+k2 -k2 0 0; -k2, k2+k3, -k3 0; 0 -k3, k3+k4, -k4; 0 0 -k4 k4] +y=[m1*g;m2*g;m3*g;m4*g] +``` + + K = + + 15 -5 0 0 + -5 7 -2 0 + 0 -2 3 -1 + 0 0 -1 1 + + y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + +## Tridiagonal matrix + +This matrix, K, could be rewritten as 3 vectors e, f and g + +$e=\left[ \begin{array}{c} +0 \\ +-5 \\ +-2 \\ +-1 \end{array} \right]$ + +$f=\left[ \begin{array}{c} +15 \\ +7 \\ +3 \\ +1 \end{array} \right]$ + +$g=\left[ \begin{array}{c} +-5 \\ +-2 \\ +-1 \\ +0 \end{array} \right]$ + +Where all other components are 0 and the length of the vectors are n and the first component of e and the last component of g are zero + +`e(1)=0` + +`g(end)=0` + +No need to pivot and number of calculations reduced enormously. + +|method |Number of Floating point operations for n$\times$n-matrix| +|----------------|---------| +| Naive Gauss | n-cubed | +| Tridiagonal | n | + + +```octave +e=[0;-5;-2;-1]; +g=[-5;-2;-1;0]; +f=[15;7;3;1]; +Tridiag(e,f,g,y) + +``` + + ans = + + 9.8100 27.4680 61.8030 101.0430 + + + + +```octave +% tic ... t=toc +% is Matlab timer used for debugging programs +t_GE = zeros(1,100); +t_GE_tridiag = zeros(1,100); +t_TD = zeros(1,100); +for n = 1:200 + A = rand(n,n); + e = rand(n,1); e(1)=0; + f = rand(n,1); + g = rand(n,1); g(end)=0; + Atd=diag(f, 0) - diag(e(2:n), -1) - diag(g(1:n-1), 1); + b = rand(n,1); + tic; + x = GaussPivot(A,b); + t_GE(n) = toc; + tic; + x = GaussPivot(Atd,b); + t_GE_tridiag(n) = toc; + tic; + x = Tridiag(e,f,g,b); + t_TD(n) = toc; +end +``` + + +```octave +n=1:200; +loglog(n,t_GE,n,t_TD,n,t_GE_tridiag) +xlabel('number of elements') +ylabel('time (s)') +``` + + +![svg](lecture_10_files/lecture_10_27_0.svg) + + + +```octave +plot(t_TD) +``` + + +![svg](lecture_10_files/lecture_10_28_0.svg) + + + +```octave + +``` diff --git a/lecture_10/lecture_10.out b/lecture_10/lecture_10.out new file mode 100644 index 0000000..cb5b517 --- /dev/null +++ b/lecture_10/lecture_10.out @@ -0,0 +1,8 @@ +\BOOKMARK [1][-]{section.1}{Gauss Elimination}{}% 1 +\BOOKMARK [2][-]{subsubsection.1.0.1}{Solving sets of equations with matrix operations}{section.1}% 2 +\BOOKMARK [2][-]{subsection.1.1}{Gauss elimination}{section.1}% 3 +\BOOKMARK [3][-]{subsubsection.1.1.1}{Solving sets of equations systematically}{subsection.1.1}% 4 +\BOOKMARK [2][-]{subsection.1.2}{Automate Gauss Elimination}{section.1}% 5 +\BOOKMARK [2][-]{subsection.1.3}{Problem \(Diagonal element is zero\)}{section.1}% 6 +\BOOKMARK [3][-]{subsubsection.1.3.1}{Spring-Mass System again}{subsection.1.3}% 7 +\BOOKMARK [2][-]{subsection.1.4}{Tridiagonal matrix}{section.1}% 8 diff --git a/lecture_10/lecture_10.pdf b/lecture_10/lecture_10.pdf new file mode 100644 index 0000000000000000000000000000000000000000..447bbe233f131c3f14f9cdfbf95651b3847ad800 GIT binary patch literal 162693 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�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 HOTqm=e8<+U literal 0 HcmV?d00001 diff --git a/lecture_10/lecture_10.tex b/lecture_10/lecture_10.tex new file mode 100644 index 0000000..1131881 --- /dev/null +++ b/lecture_10/lecture_10.tex @@ -0,0 +1,852 @@ + +% Default to the notebook output style + + + + +% Inherit from the specified cell style. + + + + + +\documentclass[11pt]{article} + + + + \usepackage[T1]{fontenc} + % Nicer default font (+ math font) than Computer Modern for most use cases + \usepackage{mathpazo} + + % Basic figure setup, for now with no caption control since it's done + % automatically by Pandoc (which extracts ![](path) syntax from Markdown). + \usepackage{graphicx} + % We will generate all images so they have a width \maxwidth. This means + % that they will get their normal width if they fit onto the page, but + % are scaled down if they would overflow the margins. + \makeatletter + \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth + \else\Gin@nat@width\fi} + \makeatother + \let\Oldincludegraphics\includegraphics + % Set max figure width to be 80% of text width, for now hardcoded. + \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}} + % Ensure that by default, figures have no caption (until we provide a + % proper Figure object with a Caption API and a way to capture that + % in the conversion process - todo). + \usepackage{caption} + \DeclareCaptionLabelFormat{nolabel}{} + \captionsetup{labelformat=nolabel} + + \usepackage{adjustbox} % Used to constrain images to a maximum size + \usepackage{xcolor} % Allow colors to be defined + \usepackage{enumerate} % Needed for markdown enumerations to work + \usepackage{geometry} % Used to adjust the document margins + \usepackage{amsmath} % Equations + \usepackage{amssymb} % Equations + \usepackage{textcomp} % defines textquotesingle + % Hack from http://tex.stackexchange.com/a/47451/13684: + \AtBeginDocument{% + \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code + } + \usepackage{upquote} % Upright quotes for verbatim code + \usepackage{eurosym} % defines \euro + \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support + \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document + \usepackage{fancyvrb} % verbatim replacement that allows latex + \usepackage{grffile} % extends the file name processing of package graphics + % to support a larger range + % The hyperref package gives us a pdf with properly built + % internal navigation ('pdf bookmarks' for the table of contents, + % internal cross-reference links, web links for URLs, etc.) + \usepackage{hyperref} + \usepackage{longtable} % longtable support required by pandoc >1.10 + \usepackage{booktabs} % table support for pandoc > 1.12.2 + \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment) + \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout) + % normalem makes italics be italics, not underlines + + + + + % Colors for the hyperref package + \definecolor{urlcolor}{rgb}{0,.145,.698} + \definecolor{linkcolor}{rgb}{.71,0.21,0.01} + \definecolor{citecolor}{rgb}{.12,.54,.11} + + % ANSI colors + \definecolor{ansi-black}{HTML}{3E424D} + \definecolor{ansi-black-intense}{HTML}{282C36} + \definecolor{ansi-red}{HTML}{E75C58} + \definecolor{ansi-red-intense}{HTML}{B22B31} + \definecolor{ansi-green}{HTML}{00A250} + \definecolor{ansi-green-intense}{HTML}{007427} + \definecolor{ansi-yellow}{HTML}{DDB62B} + \definecolor{ansi-yellow-intense}{HTML}{B27D12} + \definecolor{ansi-blue}{HTML}{208FFB} + \definecolor{ansi-blue-intense}{HTML}{0065CA} + \definecolor{ansi-magenta}{HTML}{D160C4} + \definecolor{ansi-magenta-intense}{HTML}{A03196} + \definecolor{ansi-cyan}{HTML}{60C6C8} + \definecolor{ansi-cyan-intense}{HTML}{258F8F} + \definecolor{ansi-white}{HTML}{C5C1B4} + \definecolor{ansi-white-intense}{HTML}{A1A6B2} + + % commands and environments needed by pandoc snippets + % extracted from the output of `pandoc -s` + \providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} + % Add ',fontsize=\small' for more characters per line + \newenvironment{Shaded}{}{} + \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} + \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} + \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} + \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} + \newcommand{\RegionMarkerTok}[1]{{#1}} + \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\NormalTok}[1]{{#1}} + + % Additional commands for more recent versions of Pandoc + \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}} + \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}} + \newcommand{\ImportTok}[1]{{#1}} + \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}} + \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}} + \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}} + \newcommand{\BuiltInTok}[1]{{#1}} + \newcommand{\ExtensionTok}[1]{{#1}} + \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}} + \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}} + \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + + + % Define a nice break command that doesn't care if a line doesn't already + % exist. + \def\br{\hspace*{\fill} \\* } + % Math Jax compatability definitions + \def\gt{>} + \def\lt{<} + % Document parameters + \title{lecture\_10} + + + + + % Pygments definitions + +\makeatletter +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% + \let\PY@ul=\relax \let\PY@tc=\relax% + \let\PY@bc=\relax \let\PY@ff=\relax} +\def\PY@tok#1{\csname PY@tok@#1\endcsname} +\def\PY@toks#1+{\ifx\relax#1\empty\else% + \PY@tok{#1}\expandafter\PY@toks\fi} +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} + +\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} +\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} +\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} + +\def\PYZbs{\char`\\} +\def\PYZus{\char`\_} +\def\PYZob{\char`\{} +\def\PYZcb{\char`\}} +\def\PYZca{\char`\^} +\def\PYZam{\char`\&} +\def\PYZlt{\char`\<} +\def\PYZgt{\char`\>} +\def\PYZsh{\char`\#} +\def\PYZpc{\char`\%} +\def\PYZdl{\char`\$} +\def\PYZhy{\char`\-} +\def\PYZsq{\char`\'} +\def\PYZdq{\char`\"} +\def\PYZti{\char`\~} +% for compatibility with earlier versions +\def\PYZat{@} +\def\PYZlb{[} +\def\PYZrb{]} +\makeatother + + + % Exact colors from NB + \definecolor{incolor}{rgb}{0.0, 0.0, 0.5} + \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0} + + + + + % Prevent overflowing lines due to hard-to-break entities + \sloppy + % Setup hyperref package + \hypersetup{ + breaklinks=true, % so long urls are correctly broken across lines + colorlinks=true, + urlcolor=urlcolor, + linkcolor=linkcolor, + citecolor=citecolor, + } + % Slightly bigger margins than the latex defaults + + \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} + + + + \begin{document} + + + \maketitle + + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}14}]:} \PY{c}{\PYZpc{}plot \PYZhy{}\PYZhy{}format svg} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}15}]:} \PY{n}{setdefaults} +\end{Verbatim} + + \section{Gauss Elimination}\label{gauss-elimination} + +\subsubsection{Solving sets of equations with matrix +operations}\label{solving-sets-of-equations-with-matrix-operations} + +The number of dimensions of a matrix indicate the degrees of freedom of +the system you are solving. + +If you have a set of known output, \(y_{1},~y_{2},~...y_{N}\) and a set +of equations that relate unknown inputs, \(x_{1},~x_{2},~...x_{N}\), +then these can be written in a vector matrix format as: + +\(y=Ax\) + +Consider a problem with 2 DOF: + +\(x_{1}+3x_{2}=1\) + +\(2x_{1}+x_{2}=1\) + +\(\left[ \begin{array}{cc} 1 & 3 \\ 2 & 1 \end{array} \right] \left[\begin{array}{c} x_{1} \\ x_{2} \end{array}\right]= \left[\begin{array}{c} 1 \\ 1\end{array}\right]\) + +The solution for \(x_{1}\) and \(x_{2}\) is the intersection of two +lines: + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}16}]:} \PY{n}{x21}\PY{p}{=}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{:}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{;} + \PY{n}{x11}\PY{p}{=}\PY{l+m+mi}{1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{3}\PY{o}{*}\PY{n}{x21}\PY{p}{;} + \PY{n}{x21}\PY{p}{=}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{:}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{;} + \PY{n}{x22}\PY{p}{=}\PY{l+m+mi}{1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{x21}\PY{p}{;} + \PY{n+nb}{plot}\PY{p}{(}\PY{n}{x11}\PY{p}{,}\PY{n}{x21}\PY{p}{,}\PY{n}{x21}\PY{p}{,}\PY{n}{x22}\PY{p}{)} +\end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_10_files/lecture_10_3_0.pdf} + \end{center} + { \hspace*{\fill} \\} + + For a $3\times3$ matrix, the solution is the intersection of the 3 +planes. + +\(10x_{1}+2x_{2}+x_{3}=1\) + +\(2x_{1}+x_{2}+x_{3}=1\) + +\(x_{1}+2x_{2}+10x_{3}=1\) + +$\left[ \begin{array}{ccc} 10 & 2 & 1 \\ 2 & 1 & 1 \\ 1 & 2 & 10\end{array} \right] + \left[\begin{array}{c} x_{1} \\ x_{2} \\ x_{3} \end{array}\right]= + \left[\begin{array}{c} 1 \\ 1 \\ 1\end{array}\right]$ + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}17}]:} \PY{n}{x11}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{n}{x12}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{p}{[}\PY{n}{X11}\PY{p}{,}\PY{n}{X12}\PY{p}{]}\PY{p}{=}\PY{n+nb}{meshgrid}\PY{p}{(}\PY{n}{x11}\PY{p}{,}\PY{n}{x12}\PY{p}{)}\PY{p}{;} + \PY{n}{X13}\PY{p}{=}\PY{l+m+mi}{1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{10}\PY{o}{*}\PY{n}{X11}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{X22}\PY{p}{;} + + \PY{n}{x21}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{n}{x22}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{p}{[}\PY{n}{X21}\PY{p}{,}\PY{n}{X22}\PY{p}{]}\PY{p}{=}\PY{n+nb}{meshgrid}\PY{p}{(}\PY{n}{x21}\PY{p}{,}\PY{n}{x22}\PY{p}{)}\PY{p}{;} + \PY{n}{X23}\PY{p}{=}\PY{l+m+mi}{1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{X11}\PY{o}{\PYZhy{}}\PY{n}{X22}\PY{p}{;} + + \PY{n}{x31}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{n}{x32}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{p}{[}\PY{n}{X31}\PY{p}{,}\PY{n}{X32}\PY{p}{]}\PY{p}{=}\PY{n+nb}{meshgrid}\PY{p}{(}\PY{n}{x31}\PY{p}{,}\PY{n}{x32}\PY{p}{)}\PY{p}{;} + \PY{n}{X33}\PY{p}{=}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{10}\PY{o}{*}\PY{p}{(}\PY{l+m+mi}{1}\PY{o}{\PYZhy{}}\PY{n}{X31}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{X32}\PY{p}{)}\PY{p}{;} + + \PY{n+nb}{mesh}\PY{p}{(}\PY{n}{X11}\PY{p}{,}\PY{n}{X12}\PY{p}{,}\PY{n}{X13}\PY{p}{)}\PY{p}{;} + \PY{n+nb}{hold} \PY{n}{on}\PY{p}{;} + \PY{n+nb}{mesh}\PY{p}{(}\PY{n}{X21}\PY{p}{,}\PY{n}{X22}\PY{p}{,}\PY{n}{X23}\PY{p}{)} + \PY{n+nb}{mesh}\PY{p}{(}\PY{n}{X31}\PY{p}{,}\PY{n}{X32}\PY{p}{,}\PY{n}{X33}\PY{p}{)} + \PY{n}{x}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{10}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{;} \PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{2}\PY{p}{,} \PY{l+m+mi}{10}\PY{p}{]}\PY{o}{\PYZbs{}}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{;} + \PY{n}{plot3}\PY{p}{(}\PY{n}{x}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{,}\PY{n}{x}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{,}\PY{n}{x}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{)}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{o\PYZsq{}}\PY{p}{)} + \PY{n+nb}{view}\PY{p}{(}\PY{l+m+mi}{45}\PY{p}{,}\PY{l+m+mi}{45}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +error: 'X22' undefined near line 1 column 16 +error: 'X13' undefined near line 1 column 14 +error: evaluating argument list element number 3 + + \end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_10_files/lecture_10_5_1.pdf} + \end{center} + { \hspace*{\fill} \\} + + After 3 DOF problems, the solutions are described as \emph{hyperplane} +intersections. Which are even harder to visualize + + \subsection{Gauss elimination}\label{gauss-elimination} + +\subsubsection{Solving sets of equations +systematically}\label{solving-sets-of-equations-systematically} + +$\left[ +\begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +2 & 1 & 1 & 1 \\ +1 & 2 & 10 & 1\end{array} +\right] $ + +Ay(2,:)-Ay(1,:)/5 = ({[}2 1 1 1{]}-1/5{[}10 2 1 1{]}) + +$\left[ +\begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +1 & 2 & 10 & 1\end{array} +\right] $ + +Ay(3,:)-Ay(1,:)/10 = ({[}1 2 10 1{]}-1/10{[}10 2 1 1{]}) + +$\left[ +\begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +0 & 1.8 & 9.9 & 0.9\end{array} +\right] $ + +Ay(3,:)-1.8*5/3*Ay(2,:) = ({[}0 1.8 9.9 0.9{]}-3*{[}0 3/5 4/5 4/5{]}) + +$\left[ +\begin{array}{ccc|c} + & A & & y \\ +10 & 2 & 1 & 1\\ +0 & 3/5 & 4/5 & 4/5 \\ +0 & 0 & 7.5 & -1.5\end{array} +\right] $ + +now, \(7.5x_{3}=-1.5\) so \(x_{3}=-\frac{1}{5}\) + +then, \(3/5x_{2}+4/5(-1/5)=1\) so \(x_{2}=\frac{8}{5}\) + +finally, \$10x\_\{1\}+2(8/5) + + Consider the problem again from the intro to Linear Algebra, 4 masses +are connected in series to 4 springs with K=10 N/m. What are the final +positions of the masses? + +\begin{figure}[htbp] +\centering +\includegraphics{../lecture_09/mass_springs.svg} +\caption{Springs-masses} +\end{figure} + +The masses haves the following amounts, 1, 2, 3, and 4 kg for masses +1-4. Using a FBD for each mass: + +\(m_{1}g+k(x_{2}-x_{1})-kx_{1}=0\) + +\(m_{2}g+k(x_{3}-x_{2})-k(x_{2}-x_{1})=0\) + +\(m_{3}g+k(x_{4}-x_{3})-k(x_{3}-x_{2})=0\) + +\(m_{4}g-k(x_{4}-x_{3})=0\) + +in matrix form: + +\(\left[ \begin{array}{cccc} 2k & -k & 0 & 0 \\ -k & 2k & -k & 0 \\ 0 & -k & 2k & -k \\ 0 & 0 & -k & k \end{array} \right] \left[ \begin{array}{c} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{array} \right]= \left[ \begin{array}{c} m_{1}g \\ m_{2}g \\ m_{3}g \\ m_{4}g \end{array} \right]\) + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}18}]:} \PY{n}{k}\PY{p}{=}\PY{l+m+mi}{10}\PY{p}{;} \PY{c}{\PYZpc{} N/m} + \PY{n}{m1}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{;} \PY{c}{\PYZpc{} kg} + \PY{n}{m2}\PY{p}{=}\PY{l+m+mi}{2}\PY{p}{;} + \PY{n}{m3}\PY{p}{=}\PY{l+m+mi}{3}\PY{p}{;} + \PY{n}{m4}\PY{p}{=}\PY{l+m+mi}{4}\PY{p}{;} + \PY{n}{g}\PY{p}{=}\PY{l+m+mf}{9.81}\PY{p}{;} \PY{c}{\PYZpc{} m/s\PYZca{}2} + \PY{n}{K}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k} \PY{o}{\PYZhy{}}\PY{n}{k} \PY{l+m+mi}{0} \PY{l+m+mi}{0}\PY{p}{;} \PY{o}{\PYZhy{}}\PY{n}{k} \PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k} \PY{o}{\PYZhy{}}\PY{n}{k} \PY{l+m+mi}{0}\PY{p}{;} \PY{l+m+mi}{0} \PY{o}{\PYZhy{}}\PY{n}{k} \PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k} \PY{o}{\PYZhy{}}\PY{n}{k}\PY{p}{;} \PY{l+m+mi}{0} \PY{l+m+mi}{0} \PY{o}{\PYZhy{}}\PY{n}{k} \PY{n}{k}\PY{p}{]} + \PY{n}{y}\PY{p}{=}\PY{p}{[}\PY{n}{m1}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m2}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m3}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m4}\PY{o}{*}\PY{n}{g}\PY{p}{]} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +K = + + 20 -10 0 0 + -10 20 -10 0 + 0 -10 20 -10 + 0 0 -10 10 + +y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}19}]:} \PY{n}{K1}\PY{p}{=}\PY{p}{[}\PY{n}{K} \PY{n}{y}\PY{p}{]}\PY{p}{;} + \PY{n}{K1}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{K1}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{l+m+mi}{2}\PY{o}{+}\PY{n}{K1}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +K1 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 -10.00000 20.00000 -10.00000 29.43000 + 0.00000 0.00000 -10.00000 10.00000 39.24000 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}20}]:} \PY{n}{K2}\PY{p}{=}\PY{n}{K1}\PY{p}{;} + \PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{K1}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{*}\PY{l+m+mi}{2}\PY{o}{/}\PY{l+m+mi}{3}\PY{o}{+}\PY{n}{K1}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +K2 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 0.00000 13.33333 -10.00000 45.78000 + 0.00000 0.00000 -10.00000 10.00000 39.24000 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}21}]:} \PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{4}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{o}{\PYZhy{}}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{*}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{4}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)}\PY{o}{/}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)}\PY{o}{+}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{4}\PY{p}{,}\PY{p}{:}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +K2 = + + 20.00000 -10.00000 0.00000 0.00000 9.81000 + 0.00000 15.00000 -10.00000 0.00000 24.52500 + 0.00000 0.00000 13.33333 -10.00000 45.78000 + 0.00000 0.00000 0.00000 2.50000 73.57500 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}22}]:} \PY{n}{yp}\PY{p}{=}\PY{n}{K2}\PY{p}{(}\PY{p}{:}\PY{p}{,}\PY{l+m+mi}{5}\PY{p}{)}\PY{p}{;} + \PY{n}{x4}\PY{p}{=}\PY{n}{yp}\PY{p}{(}\PY{l+m+mi}{4}\PY{p}{)}\PY{o}{/}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{4}\PY{p}{,}\PY{l+m+mi}{4}\PY{p}{)} + \PY{n}{x3}\PY{p}{=}\PY{p}{(}\PY{n}{yp}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{)}\PY{o}{+}\PY{l+m+mi}{10}\PY{o}{*}\PY{n}{x4}\PY{p}{)}\PY{o}{/}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)} + \PY{n}{x2}\PY{p}{=}\PY{p}{(}\PY{n}{yp}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{o}{+}\PY{l+m+mi}{10}\PY{o}{*}\PY{n}{x3}\PY{p}{)}\PY{o}{/}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)} + \PY{n}{x1}\PY{p}{=}\PY{p}{(}\PY{n}{yp}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)}\PY{o}{+}\PY{l+m+mi}{10}\PY{o}{*}\PY{n}{x2}\PY{p}{)}\PY{o}{/}\PY{n}{K2}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x4 = 29.430 +x3 = 25.506 +x2 = 18.639 +x1 = 9.8100 + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}23}]:} \PY{n}{K}\PY{o}{\PYZbs{}}\PY{n}{y} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = + + 9.8100 + 18.6390 + 25.5060 + 29.4300 + + + \end{Verbatim} + + \subsection{Automate Gauss +Elimination}\label{automate-gauss-elimination} + +We can automate Gauss elimination with a function whose input is A and +y: + +\texttt{x=GaussNaive(A,y)} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}24}]:} \PY{n}{x}\PY{p}{=}\PY{n}{GaussNaive}\PY{p}{(}\PY{n}{K}\PY{p}{,}\PY{n}{y}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x = + + 9.8100 + 18.6390 + 25.5060 + 29.4300 + + + \end{Verbatim} + + \subsection{Problem (Diagonal element is +zero)}\label{problem-diagonal-element-is-zero} + +If a diagonal element is 0 or very small either: + +\begin{enumerate} +\def\labelenumi{\arabic{enumi}.} +\tightlist +\item + no solution found +\item + errors are introduced +\end{enumerate} + +Therefore, we would want to pivot before applying Gauss elimination + +Consider: + +\begin{enumerate} +\def\labelenumi{(\alph{enumi})} +\item + \(\left[ \begin{array}{cccc} 0 & 2 & 3 \\ 4 & 6 & 7 \\ 2 & -3 & 6 \end{array} \right] \left[ \begin{array}{c} x_{1} \\ x_{2} \\ x_{3} \end{array} \right]= \left[ \begin{array}{c} 8 \\ -3 \\ 5\end{array} \right]\) +\item + \(\left[ \begin{array}{cccc} 0.0003 & 3.0000 \\ 1.0000 & 1.0000 \end{array} \right] \left[ \begin{array}{c} x_{1} \\ x_{2} \end{array} \right]= \left[ \begin{array}{c} 2.0001 \\ 1.0000 \end{array} \right]\) +\end{enumerate} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}25}]:} \PY{n}{format} \PY{n}{short} + \PY{n}{Aa}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{4}\PY{p}{,}\PY{l+m+mi}{6}\PY{p}{,}\PY{l+m+mi}{7}\PY{p}{;}\PY{l+m+mi}{2}\PY{p}{,}\PY{o}{\PYZhy{}}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{6}\PY{p}{]}\PY{p}{;} \PY{n}{ya}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{8}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{5}\PY{p}{]}\PY{p}{;} + \PY{n}{GaussNaive}\PY{p}{(}\PY{n}{Aa}\PY{p}{,}\PY{n}{ya}\PY{p}{)} + \PY{n}{Aa}\PY{o}{\PYZbs{}}\PY{n}{ya} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +warning: division by zero +warning: called from + GaussNaive at line 16 column 12 +warning: division by zero +warning: division by zero +ans = + + NaN + NaN + NaN + +ans = + + -5.423913 + 0.021739 + 2.652174 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}26}]:} \PY{p}{[}\PY{n}{x}\PY{p}{,}\PY{n}{Aug}\PY{p}{,}\PY{n}{npivots}\PY{p}{]}\PY{p}{=}\PY{n}{GaussPivot}\PY{p}{(}\PY{n}{Aa}\PY{p}{,}\PY{n}{ya}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x = + + -5.423913 + 0.021739 + 2.652174 + +Aug = + + 4.00000 6.00000 7.00000 -3.00000 + 0.00000 -6.00000 2.50000 6.50000 + 0.00000 0.00000 3.83333 10.16667 + +npivots = 2 + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}27}]:} \PY{n}{format} \PY{n}{long} + \PY{n}{Ab}\PY{p}{=}\PY{p}{[}\PY{l+m+mf}{0.3E\PYZhy{}13}\PY{p}{,}\PY{l+m+mf}{3.0000}\PY{p}{;}\PY{l+m+mf}{1.0000}\PY{p}{,}\PY{l+m+mf}{1.0000}\PY{p}{]}\PY{p}{;}\PY{n}{yb}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{2}\PY{o}{+}\PY{l+m+mf}{0.1e\PYZhy{}13}\PY{p}{;}\PY{l+m+mf}{1.0000}\PY{p}{]}\PY{p}{;} + \PY{n}{GaussNaive}\PY{p}{(}\PY{n}{Ab}\PY{p}{,}\PY{n}{yb}\PY{p}{)} + \PY{n}{Ab}\PY{o}{\PYZbs{}}\PY{n}{yb} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = + + 0.325665420556713 + 0.666666666666667 + +ans = + + 0.333333333333333 + 0.666666666666667 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}28}]:} \PY{p}{[}\PY{n}{x}\PY{p}{,}\PY{n}{Aug}\PY{p}{,}\PY{n}{npivots}\PY{p}{]}\PY{p}{=}\PY{n}{GaussPivot}\PY{p}{(}\PY{n}{Ab}\PY{p}{,}\PY{n}{yb}\PY{p}{)} + \PY{n}{Ab}\PY{o}{\PYZbs{}}\PY{n}{yb} + \PY{n}{format} \PY{n}{short} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x = + + 0.333333333333333 + 0.666666666666667 + +Aug = + + 1.000000000000000 1.000000000000000 1.000000000000000 + 0.000000000000000 2.999999999999970 1.999999999999980 + +npivots = 1 +ans = + + 0.333333333333333 + 0.666666666666667 + + + \end{Verbatim} + + \subsubsection{Spring-Mass System again}\label{spring-mass-system-again} + +Now, 4 masses are connected in series to 4 springs with \(K_{1}\)=10 +N/m, \(K_{2}\)=5 N/m, \(K_{3}\)=2 N/m and \(K_{4}\)=1 N/m. What are the +final positions of the masses? + +\begin{figure}[htbp] +\centering +\includegraphics{../lecture_09/mass_springs.svg} +\caption{Springs-masses} +\end{figure} + +The masses have the following amounts, 1, 2, 3, and 4 kg for masses 1-4. +Using a FBD for each mass: + +\(m_{1}g+k_{2}(x_{2}-x_{1})-k_{1}x_{1}=0\) + +\(m_{2}g+k_{3}(x_{3}-x_{2})-k_{2}(x_{2}-x_{1})=0\) + +\(m_{3}g+k_{4}(x_{4}-x_{3})-k_{3}(x_{3}-x_{2})=0\) + +\(m_{4}g-k_{4}(x_{4}-x_{3})=0\) + +in matrix form: + +\(\left[ \begin{array}{cccc} k_1+k_2 & -k_2 & 0 & 0 \\ -k_2 & k_2+k_3 & -k_3 & 0 \\ 0 & -k_3 & k_3+k_4 & -k_4 \\ 0 & 0 & -k_4 & k_4 \end{array} \right] \left[ \begin{array}{c} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \end{array} \right]= \left[ \begin{array}{c} m_{1}g \\ m_{2}g \\ m_{3}g \\ m_{4}g \end{array} \right]\) + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}29}]:} \PY{n}{k1}\PY{p}{=}\PY{l+m+mi}{10}\PY{p}{;} \PY{n}{k2}\PY{p}{=}\PY{l+m+mi}{5}\PY{p}{;}\PY{n}{k3}\PY{p}{=}\PY{l+m+mi}{2}\PY{p}{;}\PY{n}{k4}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{;} \PY{c}{\PYZpc{} N/m} + \PY{n}{m1}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{;} \PY{c}{\PYZpc{} kg} + \PY{n}{m2}\PY{p}{=}\PY{l+m+mi}{2}\PY{p}{;} + \PY{n}{m3}\PY{p}{=}\PY{l+m+mi}{3}\PY{p}{;} + \PY{n}{m4}\PY{p}{=}\PY{l+m+mi}{4}\PY{p}{;} + \PY{n}{g}\PY{p}{=}\PY{l+m+mf}{9.81}\PY{p}{;} \PY{c}{\PYZpc{} m/s\PYZca{}2} + \PY{n}{K}\PY{p}{=}\PY{p}{[}\PY{n}{k1}\PY{o}{+}\PY{n}{k2} \PY{o}{\PYZhy{}}\PY{n}{k2} \PY{l+m+mi}{0} \PY{l+m+mi}{0}\PY{p}{;} \PY{o}{\PYZhy{}}\PY{n}{k2}\PY{p}{,} \PY{n}{k2}\PY{o}{+}\PY{n}{k3}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{n}{k3} \PY{l+m+mi}{0}\PY{p}{;} \PY{l+m+mi}{0} \PY{o}{\PYZhy{}}\PY{n}{k3}\PY{p}{,} \PY{n}{k3}\PY{o}{+}\PY{n}{k4}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{n}{k4}\PY{p}{;} \PY{l+m+mi}{0} \PY{l+m+mi}{0} \PY{o}{\PYZhy{}}\PY{n}{k4} \PY{n}{k4}\PY{p}{]} + \PY{n}{y}\PY{p}{=}\PY{p}{[}\PY{n}{m1}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m2}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m3}\PY{o}{*}\PY{n}{g}\PY{p}{;}\PY{n}{m4}\PY{o}{*}\PY{n}{g}\PY{p}{]} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +K = + + 15 -5 0 0 + -5 7 -2 0 + 0 -2 3 -1 + 0 0 -1 1 + +y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + \end{Verbatim} + + \subsection{Tridiagonal matrix}\label{tridiagonal-matrix} + +This matrix, K, could be rewritten as 3 vectors e, f and g + +\(e=\left[ \begin{array}{c} 0 \\ -5 \\ -2 \\ -1 \end{array} \right]\) + +\(f=\left[ \begin{array}{c} 15 \\ 7 \\ 3 \\ 1 \end{array} \right]\) + +\(g=\left[ \begin{array}{c} -5 \\ -2 \\ -1 \\ 0 \end{array} \right]\) + +Where all other components are 0 and the length of the vectors are n and +the first component of e and the last component of g are zero + +\texttt{e(1)=0} + +\texttt{g(end)=0} + +No need to pivot and number of calculations reduced enormously. + +\begin{longtable}[c]{@{}ll@{}} +\toprule +method & Number of Floating point operations for +n\(\times\)n-matrix\tabularnewline +\midrule +\endhead +Naive Gauss & n-cubed\tabularnewline +Tridiagonal & n\tabularnewline +\bottomrule +\end{longtable} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}30}]:} \PY{n+nb}{e}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{5}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{;} + \PY{n}{g}\PY{p}{=}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{l+m+mi}{5}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{;} + \PY{n}{f}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{15}\PY{p}{;}\PY{l+m+mi}{7}\PY{p}{;}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{;} + \PY{n}{Tridiag}\PY{p}{(}\PY{n+nb}{e}\PY{p}{,}\PY{n}{f}\PY{p}{,}\PY{n}{g}\PY{p}{,}\PY{n}{y}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = + + 9.8100 27.4680 61.8030 101.0430 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}12}]:} \PY{c}{\PYZpc{} tic ... t=toc } + \PY{c}{\PYZpc{} is Matlab timer used for debugging programs} + \PY{n}{t\PYZus{}GE} \PY{p}{=} \PY{n+nb}{zeros}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{100}\PY{p}{)}\PY{p}{;} + \PY{n}{t\PYZus{}GE\PYZus{}tridiag} \PY{p}{=} \PY{n+nb}{zeros}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{100}\PY{p}{)}\PY{p}{;} + \PY{n}{t\PYZus{}TD} \PY{p}{=} \PY{n+nb}{zeros}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{100}\PY{p}{)}\PY{p}{;} + \PY{c}{\PYZpc{}for n = 1:200} + \PY{k}{for} \PY{n}{n}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{l+m+mi}{100} + \PY{n}{A} \PY{p}{=} \PY{n+nb}{rand}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{n}{n}\PY{p}{)}\PY{p}{;} + \PY{n+nb}{e} \PY{p}{=} \PY{n+nb}{rand}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} \PY{n+nb}{e}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{=}\PY{l+m+mi}{0}\PY{p}{;} + \PY{n}{f} \PY{p}{=} \PY{n+nb}{rand}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n}{g} \PY{p}{=} \PY{n+nb}{rand}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} \PY{n}{g}\PY{p}{(}\PY{k}{end}\PY{p}{)}\PY{p}{=}\PY{l+m+mi}{0}\PY{p}{;} + \PY{n}{Atd}\PY{p}{=}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{f}\PY{p}{,} \PY{l+m+mi}{0}\PY{p}{)} \PY{o}{\PYZhy{}} \PY{n+nb}{diag}\PY{p}{(}\PY{n+nb}{e}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{:}\PY{n}{n}\PY{p}{)}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{)} \PY{o}{\PYZhy{}} \PY{n+nb}{diag}\PY{p}{(}\PY{n}{g}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{:}\PY{n}{n}\PY{o}{\PYZhy{}}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{,} \PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n}{b} \PY{p}{=} \PY{n+nb}{rand}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n+nb}{tic}\PY{p}{;} + \PY{n}{x} \PY{p}{=} \PY{n}{GaussPivot}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n}{b}\PY{p}{)}\PY{p}{;} + \PY{n}{t\PYZus{}GE}\PY{p}{(}\PY{n}{n}\PY{p}{)} \PY{p}{=} \PY{n+nb}{toc}\PY{p}{;} + \PY{n+nb}{tic}\PY{p}{;} + \PY{n}{x} \PY{p}{=} \PY{n}{GaussPivot}\PY{p}{(}\PY{n}{Atd}\PY{p}{,}\PY{n}{b}\PY{p}{)}\PY{p}{;} + \PY{n}{t\PYZus{}GE\PYZus{}tridiag}\PY{p}{(}\PY{n}{n}\PY{p}{)} \PY{p}{=} \PY{n+nb}{toc}\PY{p}{;} + \PY{n+nb}{tic}\PY{p}{;} + \PY{n}{x} \PY{p}{=} \PY{n}{Tridiag}\PY{p}{(}\PY{n+nb}{e}\PY{p}{,}\PY{n}{f}\PY{p}{,}\PY{n}{g}\PY{p}{,}\PY{n}{b}\PY{p}{)}\PY{p}{;} + \PY{n}{t\PYZus{}TD}\PY{p}{(}\PY{n}{n}\PY{p}{)} \PY{p}{=} \PY{n+nb}{toc}\PY{p}{;} + \PY{k}{end} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}13}]:} \PY{n}{n}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{l+m+mi}{200}\PY{p}{;} + \PY{n+nb}{loglog}\PY{p}{(}\PY{n}{n}\PY{p}{,}\PY{n}{t\PYZus{}GE}\PY{p}{,}\PY{n}{n}\PY{p}{,}\PY{n}{t\PYZus{}TD}\PY{p}{,}\PY{n}{n}\PY{p}{,}\PY{n}{t\PYZus{}GE\PYZus{}tridiag}\PY{p}{)} + \PY{n+nb}{xlabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{number of elements\PYZsq{}}\PY{p}{)} + \PY{n+nb}{ylabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{time (s)\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_10_files/lecture_10_27_0.pdf} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor} }]:} +\end{Verbatim} + + + % Add a bibliography block to the postdoc + + + + \end{document} diff --git a/lecture_10/lecture_10_files/lecture_10_27_0.pdf b/lecture_10/lecture_10_files/lecture_10_27_0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8606584d048093b5b120b53a065e5e02f998452e GIT binary patch literal 11168 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 + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10-4 + + + + + 10-3 + + + + + 10-2 + + + + + 10-1 + + + + + 100 + + + + + 100 + + + + + 101 + + + + + 102 + + + + + 103 + + + + + + + + + time (s) + + + + + number of elements + + + + + gnuplot_plot_1a + + + + + + gnuplot_plot_2a + + + + gnuplot_plot_3a + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_10/lecture_10_files/lecture_10_28_0.svg b/lecture_10/lecture_10_files/lecture_10_28_0.svg new file mode 100644 index 0000000..548cda9 --- /dev/null +++ b/lecture_10/lecture_10_files/lecture_10_28_0.svg @@ -0,0 +1,123 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0.0034 + + + + + 0.0036 + + + + + 0.0038 + + + + + 0.004 + + + + + 0.0042 + + + + + 0.0044 + + + + + 0.9 + + + + + 0.95 + + + + + 1 + + + + + 1.05 + + + + + 1.1 + + + + + + + + + gnuplot_plot_1a + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_10/lecture_10_files/lecture_10_3_0.pdf b/lecture_10/lecture_10_files/lecture_10_3_0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5ebf43a2eb517ed27c03d64b0f1dc8eb1bdc8f57 GIT binary patch literal 5402 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 QRfvijNLpI|r~&Bz0I%iQ(f|Me literal 0 HcmV?d00001 diff --git a/lecture_10/lecture_10_files/lecture_10_3_0.svg b/lecture_10/lecture_10_files/lecture_10_3_0.svg new file mode 100644 index 0000000..62b5e17 --- /dev/null +++ b/lecture_10/lecture_10_files/lecture_10_3_0.svg @@ -0,0 +1,140 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -4 + + + + + -2 + + + + + 0 + + + + + 2 + + + + + 4 + + + + + 6 + + + + + -6 + + + + + -4 + + + + + -2 + + + + + 0 + + + + + 2 + + + + + 4 + + + + + 6 + + + + + 8 + + + + + + + + + gnuplot_plot_1a + + + + + + gnuplot_plot_2a + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_10/lecture_10_files/lecture_10_5_0.svg b/lecture_10/lecture_10_files/lecture_10_5_0.svg new file mode 100644 index 0000000..9d2a214 --- /dev/null +++ b/lecture_10/lecture_10_files/lecture_10_5_0.svg @@ -0,0 +1,377 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2 + + + + + + + + + + + -1.5 + + + + + + + + + + + -1 + + + + + + + + + + + -0.5 + + + + + + + + + + + 0 + + + + + + + + + + + 0.5 + + + + + + + + + + + 1 + + + + + + + + + + + 1.5 + + + + + + + + + + + 2 + + + + + + + + + + + -2 + + + + + + + + + + + -1.5 + + + + + + + + + + + -1 + + + + + + + + + + + -0.5 + + + + + + + + + + + 0 + + + + + + + + + + + 0.5 + + + + + + + + + + + 1 + + + + + + + + + + + 1.5 + + + + + + + + + + + 2 + + + + + + + + + + + -30 + + + + + + + + + + + + + -20 + + + + + + + + + + + + + -10 + + + + + + + + + + + + + 0 + + + + + + + + + + + + + 10 + + + + + + + + + + + + + 20 + + + + + + + + + + + + + 30 + + + + + + + gnuplot_plot_1a + + + + + + gnuplot_plot_2a + + + + gnuplot_plot_3a + + + + gnuplot_plot_4a + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_10/lecture_10_files/lecture_10_5_1.pdf b/lecture_10/lecture_10_files/lecture_10_5_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4da25615b7fce4eb0d7858b8945223e8501f4a3f GIT binary patch literal 7156 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 + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -2 + + + + + + + + + -1.5 + + + + + + + + + -1 + + + + + + + + + -0.5 + + + + + + + + + 0 + + + + + + + + + 0.5 + + + + + + + + + 1 + + + + + + + + + 1.5 + + + + + + + + + 2 + + + + + + + + + -2 + + + + + + + + + -1.5 + + + + + + + + + -1 + + + + + + + + + -0.5 + + + + + + + + + 0 + + + + + + + + + 0.5 + + + + + + + + + 1 + + + + + + + + + 1.5 + + + + + + + + + 2 + + + + + + + -6 + + + + + + + + + -4 + + + + + + + + + -2 + + + + + + + + + 0 + + + + + + + + + 2 + + + + + + + + + 4 + + + + + + + + + 6 + + + + + + + + + 8 + + + + + + + gnuplot_plot_1a + + + + + + gnuplot_plot_2a + + + + gnuplot_plot_3a + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_10/nohup.out b/lecture_10/nohup.out new file mode 100644 index 0000000..e69de29 diff --git a/lecture_10/octave-workspace b/lecture_10/octave-workspace new file mode 100644 index 0000000000000000000000000000000000000000..ba49ea896777448b51b05e3e4675e347be091b2f GIT binary patch literal 86061 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 literal 0 HcmV?d00001