From ba3c42ceb0b2d70ab66e86df55548563fffe18fc Mon Sep 17 00:00:00 2001 From: "Ryan C. Cooper" Date: Thu, 2 Mar 2017 09:22:38 -0500 Subject: [PATCH] added lecture 13 --- lecture_12/lecture_12.ipynb | 12 +- lecture_13/.GS_rel.m.swp | Bin 0 -> 12288 bytes lecture_13/.GaussSeidel.m.swp | Bin 0 -> 12288 bytes lecture_13/.Jacobi_rel.m.swp | Bin 0 -> 12288 bytes ...oint.ipynb => lecture_13-checkpoint.ipynb} | 0 lecture_13/.lambda_fcn.m.swp | Bin 0 -> 12288 bytes lecture_13/GS_rel.m | 36 + lecture_13/GaussSeidel.m | 35 + lecture_13/Jacobi.m | 39 + lecture_13/Jacobi_rel.m | 41 + lecture_13/efficient_soln.png | Bin 0 -> 38654 bytes lecture_13/gp_image_01.png | Bin 0 -> 170 bytes lecture_13/lambda_fcn.m | 8 + lecture_13/lecture_13.aux | 59 + lecture_13/lecture_13.bbl | 0 lecture_13/lecture_13.blg | 48 + lecture_13/lecture_13.ipynb | 5622 +++++++++++++++++ lecture_13/lecture_13.log | 889 +++ lecture_13/lecture_13.md | 943 +++ lecture_13/lecture_13.out | 16 + lecture_13/lecture_13.pdf | Bin 0 -> 265779 bytes lecture_13/lecture_13.tex | 1255 ++++ .../lecture_13_files/lecture_13_22_1.pdf | Bin 0 -> 5731 bytes .../lecture_13_files/lecture_13_22_1.svg | 121 + .../lecture_13_files/lecture_13_27_0.pdf | Bin 0 -> 6468 bytes .../lecture_13_files/lecture_13_27_0.svg | 131 + .../lecture_13_files/lecture_13_34_0.pdf | Bin 0 -> 11322 bytes .../lecture_13_files/lecture_13_34_0.svg | 2040 ++++++ .../lecture_13_files/lecture_13_34_1.pdf | Bin 0 -> 11322 bytes .../lecture_13_files/lecture_13_34_1.svg | 2040 ++++++ lecture_13/nohup.out | 2 + lecture_13/norm_A.png | Bin 0 -> 24630 bytes lecture_13/octave-workspace | Bin 0 -> 153 bytes 33 files changed, 13331 insertions(+), 6 deletions(-) create mode 100644 lecture_13/.GS_rel.m.swp create mode 100644 lecture_13/.GaussSeidel.m.swp create mode 100644 lecture_13/.Jacobi_rel.m.swp rename lecture_13/.ipynb_checkpoints/{lecture_12-checkpoint.ipynb => lecture_13-checkpoint.ipynb} (100%) create mode 100644 lecture_13/.lambda_fcn.m.swp create mode 100644 lecture_13/GS_rel.m create mode 100644 lecture_13/GaussSeidel.m create mode 100644 lecture_13/Jacobi.m create mode 100644 lecture_13/Jacobi_rel.m create mode 100644 lecture_13/efficient_soln.png create mode 100644 lecture_13/gp_image_01.png create mode 100644 lecture_13/lambda_fcn.m create mode 100644 lecture_13/lecture_13.aux create mode 100644 lecture_13/lecture_13.bbl create mode 100644 lecture_13/lecture_13.blg create mode 100644 lecture_13/lecture_13.ipynb create mode 100644 lecture_13/lecture_13.log create mode 100644 lecture_13/lecture_13.md create mode 100644 lecture_13/lecture_13.out create mode 100644 lecture_13/lecture_13.pdf create mode 100644 lecture_13/lecture_13.tex create mode 100644 lecture_13/lecture_13_files/lecture_13_22_1.pdf create mode 100644 lecture_13/lecture_13_files/lecture_13_22_1.svg create mode 100644 lecture_13/lecture_13_files/lecture_13_27_0.pdf create mode 100644 lecture_13/lecture_13_files/lecture_13_27_0.svg create mode 100644 lecture_13/lecture_13_files/lecture_13_34_0.pdf create mode 100644 lecture_13/lecture_13_files/lecture_13_34_0.svg create mode 100644 lecture_13/lecture_13_files/lecture_13_34_1.pdf create mode 100644 lecture_13/lecture_13_files/lecture_13_34_1.svg create mode 100644 lecture_13/nohup.out create mode 100644 lecture_13/norm_A.png create mode 100644 lecture_13/octave-workspace diff --git a/lecture_12/lecture_12.ipynb b/lecture_12/lecture_12.ipynb index 41f1959..2937e47 100644 --- a/lecture_12/lecture_12.ipynb +++ b/lecture_12/lecture_12.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 27, + "execution_count": 2, "metadata": { "collapsed": true }, @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 3, "metadata": { "collapsed": true }, @@ -702,7 +702,7 @@ }, { "cell_type": "code", - "execution_count": 71, + "execution_count": 4, "metadata": { "collapsed": false }, @@ -828,7 +828,7 @@ "\t\n", "\n", "\n", - "\t\n", + "\t\n", "\t\n", "\tbackslash\n", "\n", @@ -837,7 +837,7 @@ "\t\n", "\n", "\n", - "\t\n", + "\t\n", "\t\n", "\tmultiplication\n", "\n", @@ -846,7 +846,7 @@ "\t\n", "\n", "\n", - "\t\n", + "\t\n", "\t\n", "\n", "\n", diff --git a/lecture_13/.GS_rel.m.swp b/lecture_13/.GS_rel.m.swp new file mode 100644 index 0000000000000000000000000000000000000000..58db6b3752876762202f82c174fa786d65b67162 GIT binary patch literal 12288 zcmeI2&x;&I6vu15s!@`I*QYUT_oipNdpASEZdw@D7y>RiEHOfmrDnQjwn+b&t*&+_ zaar+@`~{+i{0BLTAfClTKoJr1H+c0w@LSa#ci2n3M&7`e>U#C9_g;OfFU$5g`Q+9v zU0uH-@OxW`uaAHD^ta@rmA^>{^FUTE{IcIvnNq*Zg!L1bF#fQfw56(S6W`gXt18~T zvAHoE#-(z@{@zBCUX3SpYZ|pb(>5;D#I{E5rIf zr#vtLCcp%k025#WOn?b60Vco%m;e)C0q30>2AaqJ|6lz5|La>qJcZ`a z4Eh)vKmvMxPKaNi@1Y~;HWWbbK!3d{#2?Vl(2vj)=v(L;=rQyN`T{zH6m%ELp!3iQ z^gH@^2K@wm2R(v(Z?7O*ZkY)%0Vco%m;e)C0!)AjFo81!RFw-NJ*84E0wu%inQG{m zv{i;a$Xrz0h{i_A`w{hKx0ZR!<#ZdnyYT6VCmHAv9yxA;VBwwzw5W?5PhsrlA+1rG zByP8_?mZ_NB|hM185Ob|=W@->E(htLn}%zBqHb?*b(se{fsVGY?pCI?A&m~wtqL=@ z1rw|s9q2+)kcPq^5f!(EaBJiBIM;F(j6wvu6S;iY?+)_fF&-hNVOh?<$Q~+FH$fGp zSlNMnH1N6lga|soCs_rA#?&TQ-Idnp1&yd|8%twF&0#BzS`D{7&3k23eTF=ZeyDs$ z*k4IA)7AAW$GTDF+&&0Y6Gp1ZlJx|?bldfOY8(D*^H&%~e#nN&8Q*5qcO)$pN}`z! z($&1RgmT@7;$+letBuN6Q4d8f;mQ`Sxw>ert}FT+--y=+@w&Cxx#bp4w~yA+pl$=09mQfD5+YxL~E(t)gU0Ls;AeFD&oCbgPQ z^+e+%cT{(rQO2LC>&*3jQ?^aBr?9&SM$tIj>LS#I=t$cG90n&ZX_ hE~afY@j&h^A|)et7I%r=ck`}H)V;#EweC7X@efq1NxlF8 literal 0 HcmV?d00001 diff --git a/lecture_13/.GaussSeidel.m.swp b/lecture_13/.GaussSeidel.m.swp new file mode 100644 index 0000000000000000000000000000000000000000..43abe04c3309c98fbd3508233ab2ed5e4e5a3322 GIT binary patch literal 12288 zcmeI2y>App7{DAt7YV-Okyg-0s@5vv43| zkSJ)NfRYj<_zy^m6lsuXDIz6RBsxkYs#JMqZXKVjNTfx1M|w10&%EzDzj0&T_LA#Y zR_XNIfvW!NfC+qq1Z0k%{SON9Gvt2%-~IppkHbQ|g|?v@ zx&fVq4niLf3GqAhEA$Au2`xa=(3kIp_!Ig7y@TFBub`LEbLbiL7`hK_L4D{7bOt&A z3Ft4>@(KE-t?M=V7tj;vA@mgD#sruE6JP>NfC(@GCcp%kz_&+0mAN3&11jWbavZ33 zwzs%DQoc=`3zQ7cWvZra(pDKdpSft-M$|J({uohv((Ps5aw=U$*75RQkC6;?2#@U5 zK`?UTSsGQt9HTIH^N>zbnk4SDuiATdGD`e{pJn9ivnzp)mco-GXB||AG{UA!C1x%l zCfK>Np@)isG!(vWgjp8C?e*s3T+8*K8)9Kxri+L3uDab}+{K!PWitLKyQfT52W6CE zX9f1|tdG?O#G<3Ula=6NOl5+ZRcVbLQJ0FQw$xKpZ#B}WnQ+-7x>-c!EyStyJ>@IH z`BIv7U7nlY*0m}&?cG4tVWjFTnM=^pWmof_ZQ&oAf0r=wUACC)^L3)OB57%;B#P;f zE;k!XNH_jyoQ&FPv{CsC@*&9yyu-*9R}CAhtCDWxd-2L(y=p8@E_sK~2N!z({?b`% z3UW1&&Cp_JF$ujBe?T literal 0 HcmV?d00001 diff --git a/lecture_13/.Jacobi_rel.m.swp b/lecture_13/.Jacobi_rel.m.swp new file mode 100644 index 0000000000000000000000000000000000000000..8f17e8fbc8135790a5b945b8582cfa869ebfa50f GIT binary patch literal 12288 zcmeI2PirJa7{)6e)zw7>FCJc%A>EUnneJqVm1KKih_0-d(-IMuWvHI6nJMh9o~^D< zI$?>R_z6_-11O?5FYDc#oaBWzRhJ=^gzw$n zqwB+K4Bu789v*-H{x9LJwLgh5eZ-XwKkl0goy*6WFn(eaj@~S0RW6h%NBg^lQlq`M zwl>G(Q7&vVy|Woc*GIFW(xsR#q#0#mW-2YF(bni4J}VMA)gl|_|6)03aReNJQv#Kl z58k-Kwl<^ChF*W|ReJG-{nJs`Is%S>Bj5-)0*-(q;0QPZj==wbfLX1v4^ih+U9EoC zu3c)oKV9PpI0BAyAOW5-_ULKGzIq0m$N&FNfB*mV zJY!!&Ig~=Tp+5BYbBz58{Rn*r8R%W82fYM6y29Ac&=1f<=nLpG=u_xp=p(3x6qG>w z&@0ei&ocHc^f~kiR6w_&m!YfBAK2gT&~MN;klpW>koz0~N5Bzq1RMcJz!7i+9D)BF z0ijYxBW%+(Pc@T>xXVoo)2Ey%7K(4ionrWBDW zC>5&6rQ)X0R2C$(Mn{(LWZ57QOMW0M(i-JuJWo>IuQ$AC(Dwbl-MQUtk0!{72gkhT zMiz=zT=QI5wyo8!HLJA7d*+69rvQ%mjIn&ziG~3B;KlONOIV z@`X16Bi0_(t|xNrc5TXdQb$9 zejh)FH~koX1826|+Ip$i%75T7nas=N&F>a6RrYdkpSH&jL}+V5eEIzC)%Wb_=obm$ z-b)j2pVwM;TAh~^=0C;-)5o?RG#lTi2fNmobpOe8GMlBEV^_YIWchYl+rjl*&XrF) zuKnP+%%^E5b=AnSt<6~f!|RX&0SKHCxFV*LJd3wBH}25-^@B6B7(f655P$##AOHaf zKmY>&w}3w!iBDmRmsZ=nyy{1P^{XK|2tWV=5P$##AOHafKmY;|fB*z8pnzu)LvOb-jY^EY4w50zhyFmuGq!LV?8qF k^we5MlIH3i8`@bE74^0o;*>a9XIVWJ^yl#Wsp_}HZvhv2egFUf literal 0 HcmV?d00001 diff --git a/lecture_13/GS_rel.m b/lecture_13/GS_rel.m new file mode 100644 index 0000000..4a6daf4 --- /dev/null +++ b/lecture_13/GS_rel.m @@ -0,0 +1,36 @@ +function [x,ea,iter] = GS_rel(A,b,lambda,es,maxit) +% GaussSeidel: Gauss Seidel method +% x = GaussSeidel(A,b): Gauss Seidel without relaxation +% input: +% A = coefficient matrix +% b = right hand side vector +% es = stop criterion (default = 0.00001%) +% maxit = max iterations (default = 50) +% output: +% x = solution vector +if nargin<3,error('at least 2 input arguments required'),end +if nargin<5|isempty(maxit),maxit=50;end +if nargin<4|isempty(es),es=0.00001;end +[m,n] = size(A); +if m~=n, error('Matrix A must be square'); end +C = A-diag(diag(A)); +x=zeros(n,1); +for i = 1:n + C(i,1:n) = C(i,1:n)/A(i,i); +end + +d = b./diag(A); + +iter = 0; +while (1) + xold = x; + for i = 1:n + x(i) = d(i)-C(i,:)*x; + x(i) = lambda*x(i)+(1-lambda)*xold(i); + if x(i) ~= 0 + ea(i) = abs((x(i) - xold(i))/x(i)) * 100; + end + end + iter = iter+1; + if max(ea)<=es | iter >= maxit, break, end +end diff --git a/lecture_13/GaussSeidel.m b/lecture_13/GaussSeidel.m new file mode 100644 index 0000000..2be52e1 --- /dev/null +++ b/lecture_13/GaussSeidel.m @@ -0,0 +1,35 @@ +function x = GaussSeidel(A,b,es,maxit) +% GaussSeidel: Gauss Seidel method +% x = GaussSeidel(A,b): Gauss Seidel without relaxation +% input: +% A = coefficient matrix +% b = right hand side vector +% es = stop criterion (default = 0.00001%) +% maxit = max iterations (default = 50) +% output: +% x = solution vector +if nargin<2,error('at least 2 input arguments required'),end +if nargin<4|isempty(maxit),maxit=50;end +if nargin<3|isempty(es),es=0.00001;end +[m,n] = size(A); +if m~=n, error('Matrix A must be square'); end +C = A-diag(diag(A)); +x=zeros(n,1); +for i = 1:n + C(i,1:n) = C(i,1:n)/A(i,i); +end + +d = b./diag(A); + +iter = 0; +while (1) + xold = x; + for i = 1:n + x(i) = d(i)-C(i,:)*x; + if x(i) ~= 0 + ea(i) = abs((x(i) - xold(i))/x(i)) * 100; + end + end + iter = iter+1; + if max(ea)<=es | iter >= maxit, break, end +end diff --git a/lecture_13/Jacobi.m b/lecture_13/Jacobi.m new file mode 100644 index 0000000..8a7b4ae --- /dev/null +++ b/lecture_13/Jacobi.m @@ -0,0 +1,39 @@ +function x = Jacobi(A,b,es,maxit) +% GaussSeidel: Gauss Seidel method +% x = GaussSeidel(A,b): Gauss Seidel without relaxation +% input: +% A = coefficient matrix +% b = right hand side vector +% es = stop criterion (default = 0.00001%) +% maxit = max iterations (default = 50) +% output: +% x = solution vector +if nargin<2,error('at least 2 input arguments required'),end +if nargin<4|isempty(maxit),maxit=50;end +if nargin<3|isempty(es),es=0.00001;end +[m,n] = size(A); +if m~=n, error('Matrix A must be square'); end +C = A-diag(diag(A)); +x=zeros(n,1); +for i = 1:n + C(i,1:n) = C(i,1:n)/A(i,i); +end + +d = b./diag(A); + +iter = 0; +while (1) + xold = x; + x = d-C*x; + % if any values of x are zero, we add 1 to denominator so error is well-behaved + i_zero=find(x==0); + i=find(x~=0); + if length(i_zero)>0 + ea(i_zero)=abs((x-xold)./(1+x)*100); + ea(i) = abs((x(i) - xold(i))./x(i)) * 100; + else + ea = abs((x - xold)./x) * 100; + end + iter = iter+1; + if max(ea)<=es | iter >= maxit, break, end +end diff --git a/lecture_13/Jacobi_rel.m b/lecture_13/Jacobi_rel.m new file mode 100644 index 0000000..5cdec33 --- /dev/null +++ b/lecture_13/Jacobi_rel.m @@ -0,0 +1,41 @@ +function [x,ea,iter]= Jacobi_rel(A,b,lambda,es,maxit) +% GaussSeidel: Gauss Seidel method +% x = GaussSeidel(A,b): Gauss Seidel without relaxation +% input: +% A = coefficient matrix +% b = right hand side vector +% es = stop criterion (default = 0.00001%) +% maxit = max iterations (default = 50) +% output: +% x = solution vector +if nargin<3,error('at least 2 input arguments required'),end +if nargin<5|isempty(maxit),maxit=50;end +if nargin<4|isempty(es),es=0.00001;end +[m,n] = size(A); +if m~=n, error('Matrix A must be square'); end +C = A-diag(diag(A)); +x=zeros(n,1); +for i = 1:n + C(i,1:n) = C(i,1:n)/A(i,i); +end + +d = b./diag(A); + +iter = 0; +while (1) + xold = x; + x = d-C*x; + % Add relaxation parameter lambda to current iteration + x = lambda*x+(1-lambda)*xold; + % if any values of x are zero, we add 1 to denominator so error is well-behaved + i_zero=find(x==0); + i=find(x~=0); + if length(i_zero)>0 + ea(i_zero)=abs((x-xold)./(1+x)*100); + ea(i) = abs((x(i) - xold(i))./x(i)) * 100; + else + ea = abs((x - xold)./x) * 100; + end + iter = iter+1; + if max(ea)<=es | iter >= maxit, break, end +end diff --git a/lecture_13/efficient_soln.png b/lecture_13/efficient_soln.png new file mode 100644 index 0000000000000000000000000000000000000000..ef24ece1a7b53ae84a959a9f838ef18960b4f7a0 GIT binary patch literal 38654 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 DfrCCq literal 0 HcmV?d00001 diff --git a/lecture_13/gp_image_01.png b/lecture_13/gp_image_01.png new file mode 100644 index 0000000000000000000000000000000000000000..ef291b593f623b8b543ea653c733167f14e20882 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^OhD|w0V4Oi7>WQXwj^(N7l!{JxM1({$v}~KPZ!4! ziK$D^t>!yyAmDoN<_WI8|2yh)*jZR|8#@>83pLrbn%OLGLC*Y@3f~;{0&>J(ZGL?I zWQ?1fK>9k3yJi=!9DiKzxu#M{rgKq${H)5okGqTf4o%`H6Zy3u_L}#*wM7PU-tvF0 Q0Ig#1boFyt=akR{05-`#_y7O^ literal 0 HcmV?d00001 diff --git a/lecture_13/lambda_fcn.m b/lecture_13/lambda_fcn.m new file mode 100644 index 0000000..435f9e9 --- /dev/null +++ b/lecture_13/lambda_fcn.m @@ -0,0 +1,8 @@ +function iters = lambda_fcn(A,b,lambda) + % function to minimize the number of iterations for a given Ax=b solution + % using default Jacobi_rel parameters of es=0.00001 and maxit=50 + + [x,ea,iters]= Jacobi_rel(A,b,lambda,1e-8); +end + + diff --git a/lecture_13/lecture_13.aux b/lecture_13/lecture_13.aux new file mode 100644 index 0000000..513ef62 --- /dev/null +++ b/lecture_13/lecture_13.aux @@ -0,0 +1,59 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\providecommand \oddpage@label [2]{} +\@writefile{toc}{\contentsline {subsection}{\numberline {0.1}My question from last class}{1}{subsection.0.1}} +\newlabel{my-question-from-last-class}{{0.1}{1}{My question from last class}{subsection.0.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces q1\relax }}{1}{figure.caption.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {0.2}Your questions from last class}{1}{subsection.0.2}} +\newlabel{your-questions-from-last-class}{{0.2}{1}{Your questions from last class}{subsection.0.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces q2\relax }}{2}{figure.caption.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {0.3}Condition of a matrix}{2}{subsection.0.3}} +\newlabel{condition-of-a-matrix}{{0.3}{2}{Condition of a matrix}{subsection.0.3}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {0.3.1}\emph {just checked in to see what condition my condition was in}}{2}{subsubsection.0.3.1}} +\newlabel{just-checked-in-to-see-what-condition-my-condition-was-in}{{0.3.1}{2}{\texorpdfstring {\emph {just checked in to see what condition my condition was in}}{just checked in to see what condition my condition was in}}{subsubsection.0.3.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {0.3.2}Matrix norms}{2}{subsubsection.0.3.2}} +\newlabel{matrix-norms}{{0.3.2}{2}{Matrix norms}{subsubsection.0.3.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {0.3.3}Condition of Matrix}{3}{subsubsection.0.3.3}} +\newlabel{condition-of-matrix}{{0.3.3}{3}{Condition of Matrix}{subsubsection.0.3.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Springs-masses\relax }}{5}{figure.caption.3}} +\@writefile{toc}{\contentsline {section}{\numberline {1}Iterative Methods}{6}{section.1}} +\newlabel{iterative-methods}{{1}{6}{Iterative Methods}{section.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Gauss-Seidel method}{6}{subsection.1.1}} +\newlabel{gauss-seidel-method}{{1.1}{6}{Gauss-Seidel method}{subsection.1.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Gauss-Seidel Iterative approach}{7}{subsubsection.1.1.1}} +\newlabel{gauss-seidel-iterative-approach}{{1.1.1}{7}{Gauss-Seidel Iterative approach}{subsubsection.1.1.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}Jacobi method}{7}{subsubsection.1.1.2}} +\newlabel{jacobi-method}{{1.1.2}{7}{Jacobi method}{subsubsection.1.1.2}{}} +\gdef \LT@i {\LT@entry + {1}{52.97838pt}\LT@entry + {1}{181.1121pt}\LT@entry + {1}{35.4892pt}\LT@entry + {1}{179.80707pt}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Gauss-Seidel with Relaxation}{11}{subsection.1.2}} +\newlabel{gauss-seidel-with-relaxation}{{1.2}{11}{Gauss-Seidel with Relaxation}{subsection.1.2}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Nonlinear Systems}{13}{subsection.1.3}} +\newlabel{nonlinear-systems}{{1.3}{13}{Nonlinear Systems}{subsection.1.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Newton-Raphson part II}{14}{subsection.1.4}} +\newlabel{newton-raphson-part-ii}{{1.4}{14}{Newton-Raphson part II}{subsection.1.4}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.1}Solution is again in the form Ax=b}{15}{subsubsection.1.4.1}} +\newlabel{solution-is-again-in-the-form-axb}{{1.4.1}{15}{Solution is again in the form Ax=b}{subsubsection.1.4.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Example of Jacobian calculation}{15}{subsection.1.5}} +\newlabel{example-of-jacobian-calculation}{{1.5}{15}{Example of Jacobian calculation}{subsection.1.5}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}Nonlinear springs supporting two masses in series}{15}{subsubsection.1.5.1}} +\newlabel{nonlinear-springs-supporting-two-masses-in-series}{{1.5.1}{15}{Nonlinear springs supporting two masses in series}{subsubsection.1.5.1}{}} diff --git a/lecture_13/lecture_13.bbl b/lecture_13/lecture_13.bbl new file mode 100644 index 0000000..e69de29 diff --git a/lecture_13/lecture_13.blg b/lecture_13/lecture_13.blg new file mode 100644 index 0000000..fb66ca0 --- /dev/null +++ b/lecture_13/lecture_13.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99d (TeX Live 2015/Debian) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 +The top-level auxiliary file: lecture_13.aux +I found no \citation commands---while reading file lecture_13.aux +I found no \bibdata command---while reading file lecture_13.aux +I found no \bibstyle command---while reading file lecture_13.aux +You've used 0 entries, + 0 wiz_defined-function locations, + 83 strings with 494 characters, +and the built_in function-call counts, 0 in all, are: += -- 0 +> -- 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_13/lecture_13.ipynb b/lecture_13/lecture_13.ipynb new file mode 100644 index 0000000..34a39e5 --- /dev/null +++ b/lecture_13/lecture_13.ipynb @@ -0,0 +1,5622 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%plot --format svg" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "setdefaults" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## My question from last class \n", + "\n", + "![q1](efficient_soln.png)\n", + "\n", + "![A](https://lh4.googleusercontent.com/fmG7EnFxpvvjSgijOuwz8osuiH3cBDgOzTE64KnfQeeDDSG2oE86-BzcpYIQMVkkAgRRGEDEGi6-Nkr8qmEMeaAk-gcjEmXe42WFYUdOa5XoUaBkXRakkA77_XrkRjArCGZIFhjjDRoO7x0)\n", + "\n", + "![q2](norm_A.png)\n", + "\n", + "\n", + "## Your questions from last class\n", + "\n", + "1. Do we have to submit a link for HW #4 somewhere or is uploading to Github sufficient?\n", + " \n", + " -no, your submission from HW 3 is sufficient\n", + "\n", + "2. How do I get the formulas/formatting in markdown files to show up on github?\n", + " \n", + " -no luck for markdown equations in github, this is an ongoing request\n", + " \n", + "3. Confused about the p=1 norm part and ||A||_1\n", + "\n", + "4. When's the exam?\n", + " \n", + " -next week (3/9)\n", + "\n", + "5. What do you recommend doing to get better at figuring out the homeworks?\n", + "\n", + " -time and experimenting (try going through the lecture examples, verify my work)\n", + " \n", + "6. Could we have an hw or extra credit with a video lecture to learn some simple python?\n", + " \n", + " -Sounds great! how simple? \n", + " \n", + " -[Installing Python and Jupyter Notebook (via Anaconda) - https://www.continuum.io/downloads](https://www.continuum.io/downloads)\n", + " \n", + " -[Running Matlab kernel in Jupyter - https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/](https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/)\n", + " \n", + " -[Running Octave kernel in Jupyter - https://anaconda.org/pypi/octave_kernel](https://anaconda.org/pypi/octave_kernel)\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Condition of a matrix \n", + "### *just checked in to see what condition my condition was in*\n", + "### Matrix norms\n", + "\n", + "The Euclidean norm of a vector is measure of the magnitude (in 3D this would be: $|x|=\\sqrt{x_{1}^{2}+x_{2}^{2}+x_{3}^{2}}$) in general the equation is:\n", + "\n", + "$||x||_{e}=\\sqrt{\\sum_{i=1}^{n}x_{i}^{2}}$\n", + "\n", + "For a matrix, A, the same norm is called the Frobenius norm:\n", + "\n", + "$||A||_{f}=\\sqrt{\\sum_{i=1}^{n}\\sum_{i=1}^{m}A_{i,j}^{2}}$\n", + "\n", + "In general we can calculate any $p$-norm where\n", + "\n", + "$||A||_{p}=\\sqrt{\\sum_{i=1}^{n}\\sum_{i=1}^{m}A_{i,j}^{p}}$\n", + "\n", + "so the p=1, 1-norm is \n", + "\n", + "$||A||_{1}=\\sqrt{\\sum_{i=1}^{n}\\sum_{i=1}^{m}A_{i,j}^{1}}=\\sum_{i=1}^{n}\\sum_{i=1}^{m}|A_{i,j}|$\n", + "\n", + "$||A||_{\\infty}=\\sqrt{\\sum_{i=1}^{n}\\sum_{i=1}^{m}A_{i,j}^{\\infty}}=\\max_{1\\le i \\le n}\\sum_{j=1}^{m}|A_{i,j}|$\n", + "\n", + "### Condition of Matrix\n", + "\n", + "The matrix condition is the product of \n", + "\n", + "$Cond(A) = ||A||\\cdot||A^{-1}||$ \n", + "\n", + "So each norm will have a different condition number, but the limit is $Cond(A)\\ge 1$\n", + "\n", + "An estimate of the rounding error is based on the condition of A:\n", + "\n", + "$\\frac{||\\Delta x||}{x} \\le Cond(A) \\frac{||\\Delta A||}{||A||}$\n", + "\n", + "So if the coefficients of A have accuracy to $10^{-t}\n", + "\n", + "and the condition of A, $Cond(A)=10^{c}$\n", + "\n", + "then the solution for x can have rounding errors up to $10^{c-t}$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A =\n", + "\n", + " 1.00000 0.50000 0.33333\n", + " 0.50000 0.33333 0.25000\n", + " 0.33333 0.25000 0.20000\n", + "\n", + "L =\n", + "\n", + " 1.00000 0.00000 0.00000\n", + " 0.50000 1.00000 0.00000\n", + " 0.33333 1.00000 1.00000\n", + "\n", + "U =\n", + "\n", + " 1.00000 0.50000 0.33333\n", + " 0.00000 0.08333 0.08333\n", + " 0.00000 -0.00000 0.00556\n", + "\n" + ] + } + ], + "source": [ + "A=[1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5]\n", + "[L,U]=LU_naive(A)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Then, $A^{-1}=(LU)^{-1}=U^{-1}L^{-1}$\n", + "\n", + "$Ld_{1}=\\left[\\begin{array}{c}\n", + "1 \\\\\n", + "0 \\\\\n", + "0 \\end{array}\\right]$, $Ux_{1}=d_{1}$ ..." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "invA =\n", + "\n", + " 9.0000 -36.0000 30.0000\n", + " -36.0000 192.0000 -180.0000\n", + " 30.0000 -180.0000 180.0000\n", + "\n", + "ans =\n", + "\n", + " 1.0000e+00 3.5527e-15 2.9976e-15\n", + " -1.3249e-14 1.0000e+00 -9.1038e-15\n", + " 8.5117e-15 7.1054e-15 1.0000e+00\n", + "\n" + ] + } + ], + "source": [ + "invA=zeros(3,3);\n", + "d1=L\\[1;0;0];\n", + "d2=L\\[0;1;0];\n", + "d3=L\\[0;0;1];\n", + "invA(:,1)=U\\d1;\n", + "invA(:,2)=U\\d2;\n", + "invA(:,3)=U\\d3\n", + "invA*A" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Find the condition of A, $cond(A)$" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "normf_A = 1.4136\n", + "normf_invA = 372.21\n", + "cond_f_A = 526.16\n", + "ans = 1.4136\n", + "norm1_A = 1.8333\n", + "norm1_invA = 30.000\n", + "ans = 1.8333\n", + "cond_1_A = 55.000\n", + "norminf_A = 1.8333\n", + "norminf_invA = 30.000\n", + "ans = 1.8333\n", + "cond_inf_A = 55.000\n" + ] + } + ], + "source": [ + "% Frobenius norm\n", + "normf_A = sqrt(sum(sum(A.^2)))\n", + "normf_invA = sqrt(sum(sum(invA.^2)))\n", + "\n", + "cond_f_A = normf_A*normf_invA\n", + "\n", + "norm(A,'fro')\n", + "\n", + "% p=1, column sum norm\n", + "norm1_A = max(sum(A,2))\n", + "norm1_invA = max(sum(invA,2))\n", + "norm(A,1)\n", + "\n", + "cond_1_A=norm1_A*norm1_invA\n", + "\n", + "% p=inf, row sum norm\n", + "norminf_A = max(sum(A,1))\n", + "norminf_invA = max(sum(invA,1))\n", + "norm(A,inf)\n", + "\n", + "cond_inf_A=norminf_A*norminf_invA\n" + ] + }, + { + "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 spring constants $K_{i}$. What does a high condition number mean for this problem? \n", + "\n", + "![Springs-masses](../lecture_09/mass_springs.png)\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_{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": 21, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "K =\n", + "\n", + " 100010 -100000 0 0\n", + " -100000 100010 -10 0\n", + " 0 -10 11 -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; % N/m\n", + "k2=100000;\n", + "k3=10;\n", + "k4=1;\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": "code", + "execution_count": 25, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans = 3.2004e+05\n", + "ans = 3.2004e+05\n", + "ans = 2.5925e+05\n", + "ans = 2.5293e+05\n" + ] + } + ], + "source": [ + "cond(K,inf)\n", + "cond(K,1)\n", + "cond(K,'fro')\n", + "cond(K,2)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "e =\n", + "\n", + " 7.9078e-01\n", + " 3.5881e+00\n", + " 1.7621e+01\n", + " 2.0001e+05\n", + "\n", + "ans = 2.5293e+05\n" + ] + } + ], + "source": [ + "e=eig(K)\n", + "max(e)/min(e)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Iterative Methods\n", + "\n", + "## Gauss-Seidel method\n", + "\n", + "If we have an intial guess for each value of a vector $x$ that we are trying to solve, then it is easy enough to solve for one component given the others. \n", + "\n", + "Take a 3$\\times$3 matrix \n", + "\n", + "$Ax=b$\n", + "\n", + "$\\left[ \\begin{array}{ccc}\n", + "3 & -0.1 & -0.2 \\\\\n", + "0.1 & 7 & -0.3 \\\\\n", + "0.3 & -0.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", + "7.85 \\\\\n", + "-19.3 \\\\\n", + "71.4\\end{array} \\right]$\n", + "\n", + "$x_{1}=\\frac{7.85+0.1x_{2}+0.3x_{3}}{3}$\n", + "\n", + "$x_{2}=\\frac{-19.3-0.1x_{1}+0.3x_{3}}{7}$\n", + "\n", + "$x_{3}=\\frac{71.4+0.1x_{1}+0.2x_{2}}{10}$" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A =\n", + "\n", + " 3.00000 -0.10000 -0.20000\n", + " 0.10000 7.00000 -0.30000\n", + " 0.30000 -0.20000 10.00000\n", + "\n", + "b =\n", + "\n", + " 7.8500\n", + " -19.3000\n", + " 71.4000\n", + "\n", + "x =\n", + "\n", + " 3.0000\n", + " -2.5000\n", + " 7.0000\n", + "\n" + ] + } + ], + "source": [ + "A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10]\n", + "b=[7.85;-19.3;71.4]\n", + "\n", + "x=A\\b" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Gauss-Seidel Iterative approach\n", + "\n", + "As a first guess, we can use $x_{1}=x_{2}=x_{3}=0$\n", + "\n", + "$x_{1}=\\frac{7.85+0.1(0)+0.3(0)}{3}=2.6167$\n", + "\n", + "$x_{2}=\\frac{-19.3-0.1(2.6167)+0.3(0)}{7}=-2.7945$\n", + "\n", + "$x_{3}=\\frac{71.4+0.1(2.6167)+0.2(-2.7945)}{10}=7.0056$\n", + "\n", + "Then, we update the guess:\n", + "\n", + "$x_{1}=\\frac{7.85+0.1(-2.7945)+0.3(7.0056)}{3}=2.9906$\n", + "\n", + "$x_{2}=\\frac{-19.3-0.1(2.9906)+0.3(7.0056)}{7}=-2.4996$\n", + "\n", + "$x_{3}=\\frac{71.4+0.1(2.9906)+0.2(-2.4966)}{10}=7.00029$\n", + "\n", + "The results are conveerging to the solution we found with `\\` of $x_{1}=3,~x_{2}=-2.5,~x_{3}=7$\n", + "\n", + "We could also use an iterative method that solves for all of the x-components in one step:\n", + "\n", + "### Jacobi method\n", + "\n", + "$x_{1}^{i}=\\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$\n", + "\n", + "$x_{2}^{i}=\\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$\n", + "\n", + "$x_{3}^{i}=\\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$\n", + "\n", + "Here the solution is a matrix multiplication and vector addition\n", + "\n", + "$\\left[ \\begin{array}{c}\n", + "x_{1}^{i} \\\\\n", + "x_{2}^{i} \\\\\n", + "x_{3}^{i} \\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "7.85/3 \\\\\n", + "-19.3/7 \\\\\n", + "71.4/10\\end{array} \\right]-\n", + "\\left[ \\begin{array}{ccc}\n", + "0 & -0.1 & -0.2 \\\\\n", + "0.1 & 0 & -0.3 \\\\\n", + "0.3 & -0.2 & 0 \\end{array} \\right]\n", + "\\left[ \\begin{array}{c}\n", + "x_{1}^{i-1} \\\\\n", + "x_{2}^{i-1} \\\\\n", + "x_{3}^{i-1} \\end{array} \\right]$\n", + "\n", + "|x_{j}|Jacobi method |vs| Gauss-Seidel |\n", + "|--------|------------------------------|---|-------------------------------|\n", + "|$x_{1}^{i}=$ | $\\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ | | $\\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$|\n", + "|$x_{2}^{i}=$ | $\\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$ | | $\\frac{-19.3-0.1x_{1}^{i}+0.3x_{3}^{i-1}}{7}$ |\n", + "|$x_{3}^{i}=$ | $\\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$ | | $\\frac{71.4+0.1x_{1}^{i}+0.2x_{2}^{i}}{10}$|" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ba =\n", + "\n", + " 2.6167\n", + " -2.7571\n", + " 7.1400\n", + "\n", + "sA =\n", + "\n", + " 0.00000 -0.10000 -0.20000\n", + " 0.10000 0.00000 -0.30000\n", + " 0.30000 -0.20000 0.00000\n", + "\n", + "sA =\n", + "\n", + " 0.000000 -0.033333 -0.066667\n", + " 0.014286 0.000000 -0.042857\n", + " 0.030000 -0.020000 0.000000\n", + "\n", + "x1 =\n", + "\n", + " 2.6167\n", + " -2.7571\n", + " 7.1400\n", + "\n", + "x2 =\n", + "\n", + " 3.0008\n", + " -2.4885\n", + " 7.0064\n", + "\n", + "x3 =\n", + "\n", + " 3.0008\n", + " -2.4997\n", + " 7.0002\n", + "\n", + "solution is converging to [3,-2.5,7]]\n" + ] + } + ], + "source": [ + "ba=b./diag(A) % or ba=b./[A(1,1);A(2,2);A(3,3)]\n", + "sA=A-diag(diag(A)) % A with zeros on diagonal\n", + "sA(1,:)=sA(1,:)/A(1,1);\n", + "sA(2,:)=sA(2,:)/A(2,2);\n", + "sA(3,:)=sA(3,:)/A(3,3)\n", + "x0=[0;0;0];\n", + "x1=ba-sA*x0\n", + "x2=ba-sA*x1\n", + "x3=ba-sA*x2\n", + "fprintf('solution is converging to [3,-2.5,7]]\\n')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 3\n", + " 7\n", + " 10\n", + "\n", + "ans =\n", + "\n", + "Diagonal Matrix\n", + "\n", + " 3 0 0\n", + " 0 7 0\n", + " 0 0 10\n", + "\n" + ] + } + ], + "source": [ + "diag(A)\n", + "diag(diag(A))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This method works if problem is diagonally dominant, \n", + "\n", + "$|a_{ii}|>\\sum_{j=1,j\\ne i}^{n}|a_{ij}|$\n", + "\n", + "If this condition is true, then Jacobi or Gauss-Seidel should converge\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A =\n", + "\n", + " 0.10000 1.00000 3.00000\n", + " 1.00000 0.20000 3.00000\n", + " 5.00000 2.00000 0.30000\n", + "\n", + "b =\n", + "\n", + " 12\n", + " 2\n", + " 4\n", + "\n", + "ans =\n", + "\n", + " -2.9393\n", + " 9.1933\n", + " 1.0336\n", + "\n" + ] + } + ], + "source": [ + "A=[0.1,1,3;1,0.2,3;5,2,0.3]\n", + "b=[12;2;4]\n", + "A\\b" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ba =\n", + "\n", + " 120.000\n", + " 10.000\n", + " 13.333\n", + "\n", + "sA =\n", + "\n", + " 0 1 3\n", + " 1 0 3\n", + " 5 2 0\n", + "\n", + "sA =\n", + "\n", + " 0.00000 10.00000 30.00000\n", + " 5.00000 0.00000 15.00000\n", + " 16.66667 6.66667 0.00000\n", + "\n", + "x1 =\n", + "\n", + " 120.000\n", + " 10.000\n", + " 13.333\n", + "\n", + "x2 =\n", + "\n", + " -380.00\n", + " -790.00\n", + " -2053.33\n", + "\n", + "x3 =\n", + "\n", + " 6.9620e+04\n", + " 3.2710e+04\n", + " 1.1613e+04\n", + "\n", + "solution is not converging to [-2.93,9.19,1.03]\n" + ] + } + ], + "source": [ + "ba=b./diag(A) % or ba=b./[A(1,1);A(2,2);A(3,3)]\n", + "sA=A-diag(diag(A)) % A with zeros on diagonal\n", + "sA(1,:)=sA(1,:)/A(1,1);\n", + "sA(2,:)=sA(2,:)/A(2,2);\n", + "sA(3,:)=sA(3,:)/A(3,3)\n", + "x0=[0;0;0];\n", + "x1=ba-sA*x0\n", + "x2=ba-sA*x1\n", + "x3=ba-sA*x2\n", + "fprintf('solution is not converging to [-2.93,9.19,1.03]\\n')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Gauss-Seidel with Relaxation\n", + "\n", + "In order to force the solution to converge faster, we can introduce a relaxation term $\\lambda$. \n", + "\n", + "where the new x values are weighted between the old and new:\n", + "\n", + "$x^{i}=\\lambda x^{i}+(1-\\lambda)x^{i-1}$\n", + "\n", + "after solving for x, lambda weights the current approximation with the previous approximation for the updated x\n" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A =\n", + "\n", + " 3.00000 -0.10000 -0.20000\n", + " 0.10000 7.00000 -0.30000\n", + " 0.30000 -0.20000 10.00000\n", + "\n", + "b =\n", + "\n", + " 7.8500\n", + " -19.3000\n", + " 71.4000\n", + "\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", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t30\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t40\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1.5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "% rearrange A and b\n", + "A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10]\n", + "b=[7.85;-19.3;71.4]\n", + "\n", + "iters=zeros(100,1);\n", + "for i=1:100\n", + " lambda=2/100*i;\n", + " [x,ea,iters(i)]=Jacobi_rel(A,b,lambda);\n", + "end\n", + "plot([1:100]*2/100,iters) " + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "l = 0.99158\r\n" + ] + } + ], + "source": [ + "l=fminbnd(@(l) lambda_fcn(A,b,l),0.5,1.5)" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ans =\n", + "\n", + " 3.0000\n", + " -2.5000\n", + " 7.0000\n", + "\n" + ] + } + ], + "source": [ + "A\\b" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =\n", + "\n", + " 3.0000\n", + " -2.5000\n", + " 7.0000\n", + "\n", + "ea =\n", + "\n", + " 1.8289e-07\n", + " 2.1984e-08\n", + " 2.3864e-08\n", + "\n", + "iter = 8\n", + "x =\n", + "\n", + " 3.0000\n", + " -2.5000\n", + " 7.0000\n", + "\n", + "ea =\n", + "\n", + " 1.9130e-08\n", + " 7.6449e-08\n", + " 3.3378e-08\n", + "\n", + "iter = 8\n" + ] + } + ], + "source": [ + "[x,ea,iter]=Jacobi_rel(A,b,l,0.000001)\n", + "[x,ea,iter]=Jacobi_rel(A,b,1,0.000001)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Nonlinear Systems\n", + "\n", + "Consider two simultaneous nonlinear equations with two unknowns:\n", + "\n", + "$x_{1}^{2}+x_{1}x_{2}=10$\n", + "\n", + "$x_{2}+3x_{1}x_{2}^{2}=57$\n", + "\n", + "Graphically, we are looking for the solution:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "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\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t10\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t15\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t20\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t2\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t3\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t4\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t5\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", + "\tgnuplot_plot_3a\n", + "\n", + "\t \n", + "\t\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x11=linspace(0.5,3);\n", + "x12=(10-x11.^2)./x11;\n", + "\n", + "x22=linspace(2,8);\n", + "x21=(57-x22).*x22.^-2/3;\n", + "\n", + "plot(x11,x12,x21,x22)\n", + "% Solution at x_1=2, x_2=3\n", + "hold on;\n", + "plot(2,3,'o')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Newton-Raphson part II\n", + "\n", + "Remember the first order approximation for the next point in a function is:\n", + "\n", + "$f(x_{i+1})=f(x_{i})+(x_{i+1}-x_{i})f'(x_{i})$\n", + "\n", + "then, $f(x_{i+1})=0$ so we are left with:\n", + "\n", + "$x_{i+1}=x_{i}-\\frac{f(x_{i})}{f'(x_{i})}$\n", + "\n", + "We can use the same formula, but now we have multiple dimensions so we need to determine the Jacobian\n", + "\n", + "$[J]=\\left[ \\begin{array}{cccc}\n", + "\\frac{\\partial f_{1,i}}{\\partial x_{1}} & \\frac{\\partial f_{1,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{1,i}}{\\partial x_{n}} \\\\\n", + "\\frac{\\partial f_{2,i}}{\\partial x_{1}} & \\frac{\\partial f_{2,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{2,i}}{\\partial x_{n}} \\\\\n", + "\\vdots & \\vdots & & \\vdots \\\\\n", + "\\frac{\\partial f_{n,i}}{\\partial x_{1}} & \\frac{\\partial f_{n,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{n,i}}{\\partial x_{n}} \\\\\n", + "\\end{array} \\right]$\n", + "\n", + "$\\left[ \\begin{array}{c}\n", + "f_{1,i+1} \\\\\n", + "f_{2,i+1} \\\\\n", + "\\vdots \\\\\n", + "f_{n,i+1}\\end{array} \\right]=\n", + "\\left[ \\begin{array}{c}\n", + "f_{1,i} \\\\\n", + "f_{2,i} \\\\\n", + "\\vdots \\\\\n", + "f_{n,i}\\end{array} \\right]+\n", + "\\left[ \\begin{array}{cccc}\n", + "\\frac{\\partial f_{1,i}}{\\partial x_{1}} & \\frac{\\partial f_{1,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{1,i}}{\\partial x_{n}} \\\\\n", + "\\frac{\\partial f_{2,i}}{\\partial x_{1}} & \\frac{\\partial f_{2,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{2,i}}{\\partial x_{n}} \\\\\n", + "\\vdots & \\vdots & & \\vdots \\\\\n", + "\\frac{\\partial f_{n,i}}{\\partial x_{1}} & \\frac{\\partial f_{n,i}}{\\partial x_{2}} & \n", + "\\cdots & \\frac{\\partial f_{n,i}}{\\partial x_{n}} \\\\\n", + "\\end{array} \\right]\n", + "\\left( \\left[ \\begin{array}{c}\n", + "x_{i+1} \\\\\n", + "x_{i+1} \\\\\n", + "\\vdots \\\\\n", + "x_{i+1}\\end{array} \\right]-\n", + "\\left[ \\begin{array}{c}\n", + "f_{1,i} \\\\\n", + "f_{2,i} \\\\\n", + "\\vdots \\\\\n", + "f_{n,i}\\end{array} \\right]\\right)$\n", + "\n", + "### Solution is again in the form Ax=b\n", + "\n", + "$[J]([x_{i+1}]-[x_{i}])=-[f]$\n", + "\n", + "so\n", + "\n", + "$[x_{i+1}]= [x_{i}]-[J]^{-1}[f]$\n", + "\n", + "## Example of Jacobian calculation\n", + "\n", + "### Nonlinear springs supporting two masses in series\n", + "\n", + "Two springs are connected to two masses, with $m_1$=1 kg and $m_{2}$=2 kg. The springs are identical, but they have nonlinear spring constants, of $k_1$=10 N/m and $k_2$=-4 N/m\n", + "\n", + "We want to solve for the final position of the masses ($x_1$ and $x_2$)\n", + "\n", + "$m_{1}g+k_{1}(x_{2}-x_{1})+k_{2}(x_{2}-x_{1})^{2}+k_{1}x_{1}+k_{2}x_{1}^{2}=0$\n", + "\n", + "$m_{2}g-k_{1}(x_{2}-x_{1})-k_{2}(x_2-x_1)^{2}=0$\n", + "\n", + "$J(1,1)=\\frac{\\partial f_{1}}{\\partial x_{1}}=-k_{1}-2k_{2}(x_{2}-x_{1})+k_{1}+2k_{2}x_{1}$\n", + "\n", + "$J(1,2)=\\frac{\\partial f_1}{\\partial x_{2}}=k_{1}+2k_{2}(x_{2}-x_{1})$\n", + "\n", + "$J(2,1)=\\frac{\\partial f_2}{\\partial x_{1}}=k_{1}+2k_{2}(x_{2}-x_{1})$\n", + "\n", + "$J(2,2)=\\frac{\\partial f_2}{\\partial x_{2}}=-k_{1}-2k_{2}(x_{2}-x_{1})$\n", + "\n", + "Use an initial guess of $x_1=x_2=0$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "m1=1; % kg \n", + "m2=2; % kg\n", + "k1=10; % N/m\n", + "k2=-4; % N/m^2" + ] + }, + { + "cell_type": "code", + "execution_count": 214, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "function [f,J]=mass_spring(x)\n", + " % Function to calculate function values f1 and f2 as well as Jacobian \n", + " % for 2 masses and 2 identical nonlinear springs\n", + " m1=1; % kg \n", + " m2=2; % kg\n", + " k1=100; % N/m\n", + " k2=-10; % N/m^2\n", + " g=9.81; % m/s^2\n", + " x1=x(1);\n", + " x2=x(2);\n", + " J=[-k1-2*k2*(x2-x1)-k1-2*k2*x1,k1+2*k2*(x2-x1);\n", + " k1+2*k2*(x2-x1),-k1-2*k2*(x2-x1)];\n", + " f=[m1*g+k1*(x2-x1)+k2*(x2-x1).^2-k1*x1-k2*x1^2;\n", + " m2*g-k1*(x2-x1)-k2*(x2-x1).^2];\n", + "end\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 217, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f =\n", + "\n", + " -190.19\n", + " 129.62\n", + "\n", + "J =\n", + "\n", + " -200 120\n", + " 120 -120\n", + "\n" + ] + } + ], + "source": [ + "[f,J]=mass_spring([1,0])" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x1 =\n", + "\n", + " -1.5142\n", + " -1.4341\n", + "\n", + "ea =\n", + "\n", + " 2.9812\n", + " 2.3946\n", + "\n", + "x2 =\n", + "\n", + " 0.049894\n", + " 0.248638\n", + "\n", + "ea =\n", + "\n", + " 31.3492\n", + " 6.7678\n", + "\n", + "x3 =\n", + "\n", + " 0.29701\n", + " 0.49722\n", + "\n", + "ea =\n", + "\n", + " 0.83201\n", + " 0.49995\n", + "\n", + "x =\n", + "\n", + " 0.29701\n", + " 0.49722\n", + "\n", + "ea =\n", + "\n", + " 0.021392\n", + " 0.012890\n", + "\n", + "ea =\n", + "\n", + " 1.4786e-05\n", + " 8.9091e-06\n", + "\n", + "ea =\n", + "\n", + " 7.0642e-12\n", + " 4.2565e-12\n", + "\n" + ] + } + ], + "source": [ + "x0=[3;2];\n", + "[f0,J0]=mass_spring(x0);\n", + "x1=x0-J0\\f0\n", + "ea=(x1-x0)./x1\n", + "[f1,J1]=mass_spring(x1);\n", + "x2=x1-J1\\f1\n", + "ea=(x2-x1)./x2\n", + "[f2,J2]=mass_spring(x2);\n", + "x3=x2-J2\\f2\n", + "ea=(x3-x2)./x3\n", + "x=x3\n", + "for i=1:3\n", + " xold=x;\n", + " [f,J]=mass_spring(x);\n", + " x=x-J\\f;\n", + " ea=(x-xold)./x\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 228, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =\n", + "\n", + " 0.30351\n", + " 0.50372\n", + "\n", + "X0 =\n", + "\n", + " 0.30351\n", + " 0.50372\n", + "\n" + ] + } + ], + "source": [ + "x\n", + "X0=fsolve(@(x) mass_spring(x),[3;5])" + ] + }, + { + "cell_type": "code", + "execution_count": 236, + "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", + "\n", + "\n", + "\t\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\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.2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\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.2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tx2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1b\n", + "\n", + "\n", + "\n", + ";\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-150\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-100\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t100\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + "\n", + "\n", + "\t\n", + "\tgnuplot_plot_1a\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\t\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.2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\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.2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.4\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.6\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t0.8\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\t\t\n", + "\t\t1\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\tx2\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\t\t\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\tgnuplot_plot_1b\n", + "\n", + "\n", + "\n", + ";\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "\t\t\n", + "\t\t-150\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-100\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t-50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t0\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t50\n", + "\t\n", + "\n", + "\n", + "\t\t\n", + "\t\t100\n", + "\t\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\t\n", + "\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "[X,Y]=meshgrid(linspace(0,1,20),linspace(0,1,20));\n", + "[N,M]=size(X);\n", + "F=zeros(size(X));\n", + "for i=1:N\n", + " for j=1:M\n", + " [f,~]=mass_spring([X(i,j),Y(i,j)]);\n", + " F(i,j)=f(1);\n", + " end\n", + "end\n", + "pcolor(X,Y,F)\n", + "xlabel('x_1')\n", + "ylabel('x_2')\n", + "colorbar()\n", + "figure()\n", + "pcolor(X,Y,F)\n", + "xlabel('x_1')\n", + "ylabel('x_2')\n", + "colorbar()" + ] + }, + { + "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_13/lecture_13.log b/lecture_13/lecture_13.log new file mode 100644 index 0000000..bb369ae --- /dev/null +++ b/lecture_13/lecture_13.log @@ -0,0 +1,889 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=pdflatex 2017.1.11) 2 MAR 2017 09:22 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**lecture_13.tex +(./lecture_13.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_13.aux) +\openout1 = `lecture_13.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_13.out) (./lecture_13.out) +\@outlinefile=\write4 +\openout4 = `lecture_13.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 <12> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 288. + + +File: efficient_soln.png Graphic file (type png) + +Package pdftex.def Info: efficient_soln.png used on input line 292. +(pdftex.def) Requested size: 375.80544pt x 201.02519pt. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 11.40997pt on input line 296. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 8.33606pt on input line 296. +LaTeX Font Info: Font shape `U/msa/m/n' will be +(Font) scaled to size 6.25204pt on input line 296. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 11.40997pt on input line 296. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 8.33606pt on input line 296. +LaTeX Font Info: Font shape `U/msb/m/n' will be +(Font) scaled to size 6.25204pt on input line 296. + + +File: norm_A.png Graphic file (type png) + +Package pdftex.def Info: norm_A.png used on input line 303. +(pdftex.def) Requested size: 375.80544pt x 177.55602pt. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./efficient_soln.png>] +Underfull \hbox (badness 10000) in paragraph at lines 341--343 +[]\T1/ppl/m/n/10.95 -[][]Installing Python and Jupyter Note-book (via Ana-conda +) - + [] + + +Underfull \hbox (badness 1681) in paragraph at lines 344--347 +[]\T1/ppl/m/n/10.95 -[][]Running Mat-lab ker-nel in Jupyter - https://anneurai. +net/2015/11/12/matlab-based- + [] + +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 356. +LaTeX Font Info: Font shape `T1/ppl/bx/it' in size <10.95> not available +(Font) Font shape `T1/ppl/b/it' tried instead on input line 356. +[2 <./norm_A.png>] [3] +LaTeX Font Info: Try loading font information for TS1+cmtt on input line 467 +. + (/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmtt.fd +File: ts1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) [4] <../lecture_09/mass_springs.png, id=114, 112.42pt x 190.7125pt> +File: ../lecture_09/mass_springs.png Graphic file (type png) + + +Package pdftex.def Info: ../lecture_09/mass_springs.png used on input line 506. + +(pdftex.def) Requested size: 89.93611pt x 152.576pt. + [5 <../lecture_09/mass_springs.png>] +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 589. + +[6] [7] [8] [9] [10] +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 911. + + +File: lecture_13_files/lecture_13_22_1.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_13_files/lecture_13_22_1.pdf used on input lin +e 935. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + [11] +Underfull \hbox (badness 10000) in paragraph at lines 937--938 + + [] + +[12 <./lecture_13_files/lecture_13_22_1.pdf>] + +File: lecture_13_files/lecture_13_27_0.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_13_files/lecture_13_27_0.pdf used on input lin +e 1021. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + [13] +Underfull \hbox (badness 10000) in paragraph at lines 1023--1024 + + [] + +[14 <./lecture_13_files/lecture_13_27_0.pdf>] [15] [16] [17] + +File: lecture_13_files/lecture_13_34_0.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_13_files/lecture_13_34_0.pdf used on input lin +e 1237. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + +Underfull \hbox (badness 10000) in paragraph at lines 1239--1240 + + [] + + +File: lecture_13_files/lecture_13_34_1.pdf Graphic file (type pdf) + + +Package pdftex.def Info: lecture_13_files/lecture_13_34_1.pdf used on input lin +e 1242. +(pdftex.def) Requested size: 449.6789pt x 337.25917pt. + [18 <./lecture_13_files/lecture_13_34_0.pdf>] +Underfull \hbox (badness 10000) in paragraph at lines 1244--1245 + + [] + +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1255. +[19 <./lecture_13_files/lecture_13_34_1.pdf>] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 1255. + (./lecture_13.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1255. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1255. + +Package rerunfilecheck Info: File `lecture_13.out' has not changed. +(rerunfilecheck) Checksum: 3327085CC63CD3D2D32FC014A9388EB9;1247. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1255. + ) +Here is how much of TeX's memory you used: + 11003 strings out of 493029 + 164927 string characters out of 6136234 + 273636 words of memory out of 5000000 + 14260 multiletter control sequences out of 15000+600000 + 39435 words of font info for 100 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 36i,10n,77p,867b,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_13.pdf (19 pages, 265779 bytes). +PDF statistics: + 281 PDF objects out of 1000 (max. 8388607) + 225 compressed objects within 3 object streams + 46 named destinations out of 1000 (max. 500000) + 164 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/lecture_13/lecture_13.md b/lecture_13/lecture_13.md new file mode 100644 index 0000000..914980b --- /dev/null +++ b/lecture_13/lecture_13.md @@ -0,0 +1,943 @@ + + +```octave +%plot --format svg +``` + + +```octave +setdefaults +``` + +## My question from last class + +![q1](efficient_soln.png) + +![A](https://lh4.googleusercontent.com/fmG7EnFxpvvjSgijOuwz8osuiH3cBDgOzTE64KnfQeeDDSG2oE86-BzcpYIQMVkkAgRRGEDEGi6-Nkr8qmEMeaAk-gcjEmXe42WFYUdOa5XoUaBkXRakkA77_XrkRjArCGZIFhjjDRoO7x0) + +![q2](norm_A.png) + + +## Your questions from last class + +1. Do we have to submit a link for HW #4 somewhere or is uploading to Github sufficient? + + -no, your submission from HW 3 is sufficient + +2. How do I get the formulas/formatting in markdown files to show up on github? + + -no luck for markdown equations in github, this is an ongoing request + +3. Confused about the p=1 norm part and ||A||_1 + +4. When's the exam? + + -next week (3/9) + +5. What do you recommend doing to get better at figuring out the homeworks? + + -time and experimenting (try going through the lecture examples, verify my work) + +6. Could we have an hw or extra credit with a video lecture to learn some simple python? + + -Sounds great! how simple? + + -[Installing Python and Jupyter Notebook (via Anaconda) - https://www.continuum.io/downloads](https://www.continuum.io/downloads) + + -[Running Matlab kernel in Jupyter - https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/](https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/) + + -[Running Octave kernel in Jupyter - https://anaconda.org/pypi/octave_kernel](https://anaconda.org/pypi/octave_kernel) + + + +## Condition of a matrix +### *just checked in to see what condition my condition was in* +### Matrix norms + +The Euclidean norm of a vector is measure of the magnitude (in 3D this would be: $|x|=\sqrt{x_{1}^{2}+x_{2}^{2}+x_{3}^{2}}$) in general the equation is: + +$||x||_{e}=\sqrt{\sum_{i=1}^{n}x_{i}^{2}}$ + +For a matrix, A, the same norm is called the Frobenius norm: + +$||A||_{f}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{2}}$ + +In general we can calculate any $p$-norm where + +$||A||_{p}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{p}}$ + +so the p=1, 1-norm is + +$||A||_{1}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{1}}=\sum_{i=1}^{n}\sum_{i=1}^{m}|A_{i,j}|$ + +$||A||_{\infty}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{\infty}}=\max_{1\le i \le n}\sum_{j=1}^{m}|A_{i,j}|$ + +### Condition of Matrix + +The matrix condition is the product of + +$Cond(A) = ||A||\cdot||A^{-1}||$ + +So each norm will have a different condition number, but the limit is $Cond(A)\ge 1$ + +An estimate of the rounding error is based on the condition of A: + +$\frac{||\Delta x||}{x} \le Cond(A) \frac{||\Delta A||}{||A||}$ + +So if the coefficients of A have accuracy to $10^{-t} + +and the condition of A, $Cond(A)=10^{c}$ + +then the solution for x can have rounding errors up to $10^{c-t}$ + + + +```octave +A=[1,1/2,1/3;1/2,1/3,1/4;1/3,1/4,1/5] +[L,U]=LU_naive(A) +``` + + A = + + 1.00000 0.50000 0.33333 + 0.50000 0.33333 0.25000 + 0.33333 0.25000 0.20000 + + L = + + 1.00000 0.00000 0.00000 + 0.50000 1.00000 0.00000 + 0.33333 1.00000 1.00000 + + U = + + 1.00000 0.50000 0.33333 + 0.00000 0.08333 0.08333 + 0.00000 -0.00000 0.00556 + + + +Then, $A^{-1}=(LU)^{-1}=U^{-1}L^{-1}$ + +$Ld_{1}=\left[\begin{array}{c} +1 \\ +0 \\ +0 \end{array}\right]$, $Ux_{1}=d_{1}$ ... + + +```octave +invA=zeros(3,3); +d1=L\[1;0;0]; +d2=L\[0;1;0]; +d3=L\[0;0;1]; +invA(:,1)=U\d1; +invA(:,2)=U\d2; +invA(:,3)=U\d3 +invA*A +``` + + invA = + + 9.0000 -36.0000 30.0000 + -36.0000 192.0000 -180.0000 + 30.0000 -180.0000 180.0000 + + ans = + + 1.0000e+00 3.5527e-15 2.9976e-15 + -1.3249e-14 1.0000e+00 -9.1038e-15 + 8.5117e-15 7.1054e-15 1.0000e+00 + + + +Find the condition of A, $cond(A)$ + + +```octave +% Frobenius norm +normf_A = sqrt(sum(sum(A.^2))) +normf_invA = sqrt(sum(sum(invA.^2))) + +cond_f_A = normf_A*normf_invA + +norm(A,'fro') + +% p=1, column sum norm +norm1_A = max(sum(A,2)) +norm1_invA = max(sum(invA,2)) +norm(A,1) + +cond_1_A=norm1_A*norm1_invA + +% p=inf, row sum norm +norminf_A = max(sum(A,1)) +norminf_invA = max(sum(invA,1)) +norm(A,inf) + +cond_inf_A=norminf_A*norminf_invA + +``` + + normf_A = 1.4136 + normf_invA = 372.21 + cond_f_A = 526.16 + ans = 1.4136 + norm1_A = 1.8333 + norm1_invA = 30.000 + ans = 1.8333 + cond_1_A = 55.000 + norminf_A = 1.8333 + norminf_invA = 30.000 + ans = 1.8333 + cond_inf_A = 55.000 + + +Consider the problem again from the intro to Linear Algebra, 4 masses are connected in series to 4 springs with spring constants $K_{i}$. What does a high condition number mean for this problem? + +![Springs-masses](../lecture_09/mass_springs.png) + +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_{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; % N/m +k2=100000; +k3=10; +k4=1; +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 = + + 100010 -100000 0 0 + -100000 100010 -10 0 + 0 -10 11 -1 + 0 0 -1 1 + + y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + + +```octave +cond(K,inf) +cond(K,1) +cond(K,'fro') +cond(K,2) +``` + + ans = 3.2004e+05 + ans = 3.2004e+05 + ans = 2.5925e+05 + ans = 2.5293e+05 + + + +```octave +e=eig(K) +max(e)/min(e) +``` + + e = + + 7.9078e-01 + 3.5881e+00 + 1.7621e+01 + 2.0001e+05 + + ans = 2.5293e+05 + + +# Iterative Methods + +## Gauss-Seidel method + +If we have an intial guess for each value of a vector $x$ that we are trying to solve, then it is easy enough to solve for one component given the others. + +Take a 3$\times$3 matrix + +$Ax=b$ + +$\left[ \begin{array}{ccc} +3 & -0.1 & -0.2 \\ +0.1 & 7 & -0.3 \\ +0.3 & -0.2 & 10 \end{array} \right] +\left[ \begin{array}{c} +x_{1} \\ +x_{2} \\ +x_{3} \end{array} \right]= +\left[ \begin{array}{c} +7.85 \\ +-19.3 \\ +71.4\end{array} \right]$ + +$x_{1}=\frac{7.85+0.1x_{2}+0.3x_{3}}{3}$ + +$x_{2}=\frac{-19.3-0.1x_{1}+0.3x_{3}}{7}$ + +$x_{3}=\frac{71.4+0.1x_{1}+0.2x_{2}}{10}$ + + +```octave +A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10] +b=[7.85;-19.3;71.4] + +x=A\b +``` + + A = + + 3.00000 -0.10000 -0.20000 + 0.10000 7.00000 -0.30000 + 0.30000 -0.20000 10.00000 + + b = + + 7.8500 + -19.3000 + 71.4000 + + x = + + 3.0000 + -2.5000 + 7.0000 + + + +### Gauss-Seidel Iterative approach + +As a first guess, we can use $x_{1}=x_{2}=x_{3}=0$ + +$x_{1}=\frac{7.85+0.1(0)+0.3(0)}{3}=2.6167$ + +$x_{2}=\frac{-19.3-0.1(2.6167)+0.3(0)}{7}=-2.7945$ + +$x_{3}=\frac{71.4+0.1(2.6167)+0.2(-2.7945)}{10}=7.0056$ + +Then, we update the guess: + +$x_{1}=\frac{7.85+0.1(-2.7945)+0.3(7.0056)}{3}=2.9906$ + +$x_{2}=\frac{-19.3-0.1(2.9906)+0.3(7.0056)}{7}=-2.4996$ + +$x_{3}=\frac{71.4+0.1(2.9906)+0.2(-2.4966)}{10}=7.00029$ + +The results are conveerging to the solution we found with `\` of $x_{1}=3,~x_{2}=-2.5,~x_{3}=7$ + +We could also use an iterative method that solves for all of the x-components in one step: + +### Jacobi method + +$x_{1}^{i}=\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ + +$x_{2}^{i}=\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$ + +$x_{3}^{i}=\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$ + +Here the solution is a matrix multiplication and vector addition + +$\left[ \begin{array}{c} +x_{1}^{i} \\ +x_{2}^{i} \\ +x_{3}^{i} \end{array} \right]= +\left[ \begin{array}{c} +7.85/3 \\ +-19.3/7 \\ +71.4/10\end{array} \right]- +\left[ \begin{array}{ccc} +0 & -0.1 & -0.2 \\ +0.1 & 0 & -0.3 \\ +0.3 & -0.2 & 0 \end{array} \right] +\left[ \begin{array}{c} +x_{1}^{i-1} \\ +x_{2}^{i-1} \\ +x_{3}^{i-1} \end{array} \right]$ + +|x_{j}|Jacobi method |vs| Gauss-Seidel | +|--------|------------------------------|---|-------------------------------| +|$x_{1}^{i}=$ | $\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ | | $\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$| +|$x_{2}^{i}=$ | $\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$ | | $\frac{-19.3-0.1x_{1}^{i}+0.3x_{3}^{i-1}}{7}$ | +|$x_{3}^{i}=$ | $\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$ | | $\frac{71.4+0.1x_{1}^{i}+0.2x_{2}^{i}}{10}$| + + +```octave +ba=b./diag(A) % or ba=b./[A(1,1);A(2,2);A(3,3)] +sA=A-diag(diag(A)) % A with zeros on diagonal +sA(1,:)=sA(1,:)/A(1,1); +sA(2,:)=sA(2,:)/A(2,2); +sA(3,:)=sA(3,:)/A(3,3) +x0=[0;0;0]; +x1=ba-sA*x0 +x2=ba-sA*x1 +x3=ba-sA*x2 +fprintf('solution is converging to [3,-2.5,7]]\n') +``` + + ba = + + 2.6167 + -2.7571 + 7.1400 + + sA = + + 0.00000 -0.10000 -0.20000 + 0.10000 0.00000 -0.30000 + 0.30000 -0.20000 0.00000 + + sA = + + 0.000000 -0.033333 -0.066667 + 0.014286 0.000000 -0.042857 + 0.030000 -0.020000 0.000000 + + x1 = + + 2.6167 + -2.7571 + 7.1400 + + x2 = + + 3.0008 + -2.4885 + 7.0064 + + x3 = + + 3.0008 + -2.4997 + 7.0002 + + solution is converging to [3,-2.5,7]] + + + +```octave +diag(A) +diag(diag(A)) +``` + + ans = + + 3 + 7 + 10 + + ans = + + Diagonal Matrix + + 3 0 0 + 0 7 0 + 0 0 10 + + + +This method works if problem is diagonally dominant, + +$|a_{ii}|>\sum_{j=1,j\ne i}^{n}|a_{ij}|$ + +If this condition is true, then Jacobi or Gauss-Seidel should converge + + + + +```octave +A=[0.1,1,3;1,0.2,3;5,2,0.3] +b=[12;2;4] +A\b +``` + + A = + + 0.10000 1.00000 3.00000 + 1.00000 0.20000 3.00000 + 5.00000 2.00000 0.30000 + + b = + + 12 + 2 + 4 + + ans = + + -2.9393 + 9.1933 + 1.0336 + + + + +```octave +ba=b./diag(A) % or ba=b./[A(1,1);A(2,2);A(3,3)] +sA=A-diag(diag(A)) % A with zeros on diagonal +sA(1,:)=sA(1,:)/A(1,1); +sA(2,:)=sA(2,:)/A(2,2); +sA(3,:)=sA(3,:)/A(3,3) +x0=[0;0;0]; +x1=ba-sA*x0 +x2=ba-sA*x1 +x3=ba-sA*x2 +fprintf('solution is not converging to [-2.93,9.19,1.03]\n') +``` + + ba = + + 120.000 + 10.000 + 13.333 + + sA = + + 0 1 3 + 1 0 3 + 5 2 0 + + sA = + + 0.00000 10.00000 30.00000 + 5.00000 0.00000 15.00000 + 16.66667 6.66667 0.00000 + + x1 = + + 120.000 + 10.000 + 13.333 + + x2 = + + -380.00 + -790.00 + -2053.33 + + x3 = + + 6.9620e+04 + 3.2710e+04 + 1.1613e+04 + + solution is not converging to [-2.93,9.19,1.03] + + +## Gauss-Seidel with Relaxation + +In order to force the solution to converge faster, we can introduce a relaxation term $\lambda$. + +where the new x values are weighted between the old and new: + +$x^{i}=\lambda x^{i}+(1-\lambda)x^{i-1}$ + +after solving for x, lambda weights the current approximation with the previous approximation for the updated x + + + +```octave +% rearrange A and b +A=[3 -0.1 -0.2;0.1 7 -0.3;0.3 -0.2 10] +b=[7.85;-19.3;71.4] + +iters=zeros(100,1); +for i=1:100 + lambda=2/100*i; + [x,ea,iters(i)]=Jacobi_rel(A,b,lambda); +end +plot([1:100]*2/100,iters) +``` + + A = + + 3.00000 -0.10000 -0.20000 + 0.10000 7.00000 -0.30000 + 0.30000 -0.20000 10.00000 + + b = + + 7.8500 + -19.3000 + 71.4000 + + + + +![svg](lecture_13_files/lecture_13_22_1.svg) + + + +```octave +l=fminbnd(@(l) lambda_fcn(A,b,l),0.5,1.5) +``` + + l = 0.99158 + + + +```octave +A\b +``` + + ans = + + 3.0000 + -2.5000 + 7.0000 + + + + +```octave +[x,ea,iter]=Jacobi_rel(A,b,l,0.000001) +[x,ea,iter]=Jacobi_rel(A,b,1,0.000001) + +``` + + x = + + 3.0000 + -2.5000 + 7.0000 + + ea = + + 1.8289e-07 + 2.1984e-08 + 2.3864e-08 + + iter = 8 + x = + + 3.0000 + -2.5000 + 7.0000 + + ea = + + 1.9130e-08 + 7.6449e-08 + 3.3378e-08 + + iter = 8 + + +## Nonlinear Systems + +Consider two simultaneous nonlinear equations with two unknowns: + +$x_{1}^{2}+x_{1}x_{2}=10$ + +$x_{2}+3x_{1}x_{2}^{2}=57$ + +Graphically, we are looking for the solution: + + + +```octave +x11=linspace(0.5,3); +x12=(10-x11.^2)./x11; + +x22=linspace(2,8); +x21=(57-x22).*x22.^-2/3; + +plot(x11,x12,x21,x22) +% Solution at x_1=2, x_2=3 +hold on; +plot(2,3,'o') +``` + + +![svg](lecture_13_files/lecture_13_27_0.svg) + + +## Newton-Raphson part II + +Remember the first order approximation for the next point in a function is: + +$f(x_{i+1})=f(x_{i})+(x_{i+1}-x_{i})f'(x_{i})$ + +then, $f(x_{i+1})=0$ so we are left with: + +$x_{i+1}=x_{i}-\frac{f(x_{i})}{f'(x_{i})}$ + +We can use the same formula, but now we have multiple dimensions so we need to determine the Jacobian + +$[J]=\left[ \begin{array}{cccc} +\frac{\partial f_{1,i}}{\partial x_{1}} & \frac{\partial f_{1,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{1,i}}{\partial x_{n}} \\ +\frac{\partial f_{2,i}}{\partial x_{1}} & \frac{\partial f_{2,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{2,i}}{\partial x_{n}} \\ +\vdots & \vdots & & \vdots \\ +\frac{\partial f_{n,i}}{\partial x_{1}} & \frac{\partial f_{n,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{n,i}}{\partial x_{n}} \\ +\end{array} \right]$ + +$\left[ \begin{array}{c} +f_{1,i+1} \\ +f_{2,i+1} \\ +\vdots \\ +f_{n,i+1}\end{array} \right]= +\left[ \begin{array}{c} +f_{1,i} \\ +f_{2,i} \\ +\vdots \\ +f_{n,i}\end{array} \right]+ +\left[ \begin{array}{cccc} +\frac{\partial f_{1,i}}{\partial x_{1}} & \frac{\partial f_{1,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{1,i}}{\partial x_{n}} \\ +\frac{\partial f_{2,i}}{\partial x_{1}} & \frac{\partial f_{2,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{2,i}}{\partial x_{n}} \\ +\vdots & \vdots & & \vdots \\ +\frac{\partial f_{n,i}}{\partial x_{1}} & \frac{\partial f_{n,i}}{\partial x_{2}} & +\cdots & \frac{\partial f_{n,i}}{\partial x_{n}} \\ +\end{array} \right] +\left( \left[ \begin{array}{c} +x_{i+1} \\ +x_{i+1} \\ +\vdots \\ +x_{i+1}\end{array} \right]- +\left[ \begin{array}{c} +f_{1,i} \\ +f_{2,i} \\ +\vdots \\ +f_{n,i}\end{array} \right]\right)$ + +### Solution is again in the form Ax=b + +$[J]([x_{i+1}]-[x_{i}])=-[f]$ + +so + +$[x_{i+1}]= [x_{i}]-[J]^{-1}[f]$ + +## Example of Jacobian calculation + +### Nonlinear springs supporting two masses in series + +Two springs are connected to two masses, with $m_1$=1 kg and $m_{2}$=2 kg. The springs are identical, but they have nonlinear spring constants, of $k_1$=10 N/m and $k_2$=-4 N/m + +We want to solve for the final position of the masses ($x_1$ and $x_2$) + +$m_{1}g+k_{1}(x_{2}-x_{1})+k_{2}(x_{2}-x_{1})^{2}+k_{1}x_{1}+k_{2}x_{1}^{2}=0$ + +$m_{2}g-k_{1}(x_{2}-x_{1})-k_{2}(x_2-x_1)^{2}=0$ + +$J(1,1)=\frac{\partial f_{1}}{\partial x_{1}}=-k_{1}-2k_{2}(x_{2}-x_{1})+k_{1}+2k_{2}x_{1}$ + +$J(1,2)=\frac{\partial f_1}{\partial x_{2}}=k_{1}+2k_{2}(x_{2}-x_{1})$ + +$J(2,1)=\frac{\partial f_2}{\partial x_{1}}=k_{1}+2k_{2}(x_{2}-x_{1})$ + +$J(2,2)=\frac{\partial f_2}{\partial x_{2}}=-k_{1}-2k_{2}(x_{2}-x_{1})$ + +Use an initial guess of $x_1=x_2=0$ + + + +```octave +m1=1; % kg +m2=2; % kg +k1=10; % N/m +k2=-4; % N/m^2 +``` + + +```octave +function [f,J]=mass_spring(x) + % Function to calculate function values f1 and f2 as well as Jacobian + % for 2 masses and 2 identical nonlinear springs + m1=1; % kg + m2=2; % kg + k1=100; % N/m + k2=-10; % N/m^2 + g=9.81; % m/s^2 + x1=x(1); + x2=x(2); + J=[-k1-2*k2*(x2-x1)-k1-2*k2*x1,k1+2*k2*(x2-x1); + k1+2*k2*(x2-x1),-k1-2*k2*(x2-x1)]; + f=[m1*g+k1*(x2-x1)+k2*(x2-x1).^2-k1*x1-k2*x1^2; + m2*g-k1*(x2-x1)-k2*(x2-x1).^2]; +end + +``` + + +```octave +[f,J]=mass_spring([1,0]) +``` + + f = + + -190.19 + 129.62 + + J = + + -200 120 + 120 -120 + + + + +```octave +x0=[3;2]; +[f0,J0]=mass_spring(x0); +x1=x0-J0\f0 +ea=(x1-x0)./x1 +[f1,J1]=mass_spring(x1); +x2=x1-J1\f1 +ea=(x2-x1)./x2 +[f2,J2]=mass_spring(x2); +x3=x2-J2\f2 +ea=(x3-x2)./x3 +x=x3 +for i=1:3 + xold=x; + [f,J]=mass_spring(x); + x=x-J\f; + ea=(x-xold)./x +end +``` + + x1 = + + -1.5142 + -1.4341 + + ea = + + 2.9812 + 2.3946 + + x2 = + + 0.049894 + 0.248638 + + ea = + + 31.3492 + 6.7678 + + x3 = + + 0.29701 + 0.49722 + + ea = + + 0.83201 + 0.49995 + + x = + + 0.29701 + 0.49722 + + ea = + + 0.021392 + 0.012890 + + ea = + + 1.4786e-05 + 8.9091e-06 + + ea = + + 7.0642e-12 + 4.2565e-12 + + + + +```octave +x +X0=fsolve(@(x) mass_spring(x),[3;5]) +``` + + x = + + 0.30351 + 0.50372 + + X0 = + + 0.30351 + 0.50372 + + + + +```octave +[X,Y]=meshgrid(linspace(0,1,20),linspace(0,1,20)); +[N,M]=size(X); +F=zeros(size(X)); +for i=1:N + for j=1:M + [f,~]=mass_spring([X(i,j),Y(i,j)]); + F(i,j)=f(1); + end +end +pcolor(X,Y,F) +xlabel('x_1') +ylabel('x_2') +colorbar() +figure() +pcolor(X,Y,F) +xlabel('x_1') +ylabel('x_2') +colorbar() +``` + + +![svg](lecture_13_files/lecture_13_34_0.svg) + + + +![svg](lecture_13_files/lecture_13_34_1.svg) + + + +```octave + +``` diff --git a/lecture_13/lecture_13.out b/lecture_13/lecture_13.out new file mode 100644 index 0000000..edec246 --- /dev/null +++ b/lecture_13/lecture_13.out @@ -0,0 +1,16 @@ +\BOOKMARK [2][-]{subsection.0.1}{My question from last class}{}% 1 +\BOOKMARK [2][-]{subsection.0.2}{Your questions from last class}{}% 2 +\BOOKMARK [2][-]{subsection.0.3}{Condition of a matrix}{}% 3 +\BOOKMARK [3][-]{subsubsection.0.3.1}{just checked in to see what condition my condition was in}{subsection.0.3}% 4 +\BOOKMARK [3][-]{subsubsection.0.3.2}{Matrix norms}{subsection.0.3}% 5 +\BOOKMARK [3][-]{subsubsection.0.3.3}{Condition of Matrix}{subsection.0.3}% 6 +\BOOKMARK [1][-]{section.1}{Iterative Methods}{}% 7 +\BOOKMARK [2][-]{subsection.1.1}{Gauss-Seidel method}{section.1}% 8 +\BOOKMARK [3][-]{subsubsection.1.1.1}{Gauss-Seidel Iterative approach}{subsection.1.1}% 9 +\BOOKMARK [3][-]{subsubsection.1.1.2}{Jacobi method}{subsection.1.1}% 10 +\BOOKMARK [2][-]{subsection.1.2}{Gauss-Seidel with Relaxation}{section.1}% 11 +\BOOKMARK [2][-]{subsection.1.3}{Nonlinear Systems}{section.1}% 12 +\BOOKMARK [2][-]{subsection.1.4}{Newton-Raphson part II}{section.1}% 13 +\BOOKMARK [3][-]{subsubsection.1.4.1}{Solution is again in the form Ax=b}{subsection.1.4}% 14 +\BOOKMARK [2][-]{subsection.1.5}{Example of Jacobian calculation}{section.1}% 15 +\BOOKMARK [3][-]{subsubsection.1.5.1}{Nonlinear springs supporting two masses in series}{subsection.1.5}% 16 diff --git a/lecture_13/lecture_13.pdf b/lecture_13/lecture_13.pdf new file mode 100644 index 0000000000000000000000000000000000000000..fad59c8ae70f03d44132fd2f07055c8c95179ded GIT binary patch literal 265779 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 z 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�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%0AVlPl$^KU{mnOcZW z79Pd`J%-Ci0|q(&aR3VyW2h7%=cf;%2nqpQA4U9Wq(xO#jaX`FUjxw#0`*d_wBg&h z-Z?pkZ;q0h3ktcFEVd5#xa|NGw6^oknokuIEHOtWW?DBjv&)tD5n{yW#N-sEK#Svu zxb#59C=4I{OW7s(TxokTP=|qB$)hwP*51C=#qhg4^@t2p9M-o?#7GeJO1{@(=)<@d zGrh3tE=651xr;m{@((kN#oq5R6RhB&w1EkSfe@hJK`pb6WGh%-mLr31D_CbkF9Gu< zyu;20X}$xS(bc^X^MQ!k&Pj7em39w;cYE_Ho2Hv(DNp@Affn@kSQ|-)#vYO&;zna(qO=T1BG0nF$s#|KT8haky;GveDkHYk4TA~; zBbMQcnzKNvp&Pr!9x-FQ2F;thq~)M!!eD-<7{T98!AapZW2$k>cno^u1O##%4IxDh zf^=mI6Y{X`ee~?$4}UEcBv+|&lk(`Am;nm{D(?dMbZYxFCr{m}`_=lxd#M6tk{K?K zV()TGD0Wteaon^_5SD?&pZfyy!awPX5e||$LiZqr4iT#x`qPmsTG_6yx8wVVYd0;bf2e<{3lc^#RbVp_czoL6Kryy%=&FKe8xx7;i$ zK1jYgA~L^gDoUI<7Jh}XIZRGF><<6F`AEj(@_qnRY?PO=bTnmhTW(XAiw8W`DfRP*Ky&P&z*sO>T*1;pwp{|17*?jid>xik9z(GS%Wj7^|u z#chm?-S9Q(@EO<`w4rDf%{_iQIU55Mtt!4IJw78o{qI8sTU#f523GdpA{723hl%a4 z$$$9A|F{#v*W_ZOXA%}>5D;V#WM}&ISNu%OA}lQQ!h-yCf{X(E0)jmF|96w$dj87+ zFwp%c)cOD50B{l~Y^C*)hkBf^s~nW^O1GQ0mF7Hn&%dZ7DsYt(Jy^iN5X0%>LjU;* z84zvEI`R<_2@D3p)6>U_iAf2;hlL5X_AtL0Up39N%&_mM?}(EZ{Zp4vS9s@4m6Imc zMvq1ua`%xmejo@r@ZUzXDtW7al>T>Qu3d2>()dm z1=GCyL}%6`IvsvUhz2U)=grp5LyaUS7{C2YcFqkQIYiH`1cynK3M)vA(xW04Jb*Z2 zqsxvTvrlyZN`)XHKeGA2O-PdYuCtJrP*zdwRZ6}B{h2Py;~?Skt2^a0$RI(p2p-KvAo9s#!ULszt3- z@o-z&##DJE=l-~M09Gq`d@Y>#4TyIpynTdPD}Sb3G$HNlI>C{&Jzcjl)cIA4TdRHc zCCs{-5{WbJHfohJKXPGHt2!5T4(yr8)6!n2dZrn%1Sq#&OiQZ8z~cf~a+o{6VuH!f z*Pnt7^qnl4=+jMu6RIoBni&9iJYI9gvk4F<`_6YnJ^Ju`U$>KU_07)|2g{ieey zcv$>TbcYoX?511ULne1WW*{?(xOR?&Wru1jJqG-o9ZP!A7u+VkKEIiNRMgr0E)MIc z5nBTFe42sz;@W~uBhWks2&0(6t0dA0el$OezZ6(nBugy_6{rw9N1p>9qG6HKS;k0B zybYUvorcGL47O$AZzP~)iGMumRf;ODR!utUcV)^Q^$#+hR&q4|7Ay)Ja5}13$X&}v z$_3j}VyajI0(N8X1$k~esFZvWauJpMEaZSi{N?qSN3+|MWFr{U`H\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\_13} + + + + + % 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}1}]:} \PY{c}{\PYZpc{}plot \PYZhy{}\PYZhy{}format svg} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}2}]:} \PY{n}{setdefaults} +\end{Verbatim} + + \subsection{My question from last +class}\label{my-question-from-last-class} + +\begin{figure}[htbp] +\centering +\includegraphics{efficient_soln.png} +\caption{q1} +\end{figure} + +$A=\left[\begin{array}{ccc} + 2 & -2 & 0\\ + -1& 5 & 1 \\ +3 &4 & 5 \end{array}\right]$ + +\begin{figure}[htbp] +\centering +\includegraphics{norm_A.png} +\caption{q2} +\end{figure} + +\subsection{Your questions from last +class}\label{your-questions-from-last-class} + +\begin{enumerate} +\def\labelenumi{\arabic{enumi}.} +\item + Do we have to submit a link for HW \#4 somewhere or is uploading to + Github sufficient? + + -no, your submission from HW 3 is sufficient +\item + How do I get the formulas/formatting in markdown files to show up on + github? + + -no luck for markdown equations in github, this is an ongoing request +\item + Confused about the p=1 norm part and + \textbar{}\textbar{}A\textbar{}\textbar{}\_1 +\item + When's the exam? + + -next week (3/9) +\item + What do you recommend doing to get better at figuring out the + homeworks? + + -time and experimenting (try going through the lecture examples, + verify my work) +\item + Could we have an hw or extra credit with a video lecture to learn some + simple python? + + -Sounds great! how simple? + + -\href{https://www.continuum.io/downloads}{Installing Python and + Jupyter Notebook (via Anaconda) - https://www.continuum.io/downloads} + + -\href{https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/}{Running + Matlab kernel in Jupyter - + https://anneurai.net/2015/11/12/matlab-based-ipython-notebooks/} + + -\href{https://anaconda.org/pypi/octave_kernel}{Running Octave kernel + in Jupyter - https://anaconda.org/pypi/octave\_kernel} +\end{enumerate} + + \subsection{Condition of a matrix}\label{condition-of-a-matrix} + +\subsubsection{\texorpdfstring{\emph{just checked in to see what +condition my condition was +in}}{just checked in to see what condition my condition was in}}\label{just-checked-in-to-see-what-condition-my-condition-was-in} + +\subsubsection{Matrix norms}\label{matrix-norms} + +The Euclidean norm of a vector is measure of the magnitude (in 3D this +would be: $|x|=\sqrt{x_{1}^{2}+x_{2}^{2}+x_{3}^{2}}$) in general the +equation is: + +$||x||_{e}=\sqrt{\sum_{i=1}^{n}x_{i}^{2}}$ + +For a matrix, A, the same norm is called the Frobenius norm: + +$||A||_{f}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{2}}$ + +In general we can calculate any $p$-norm where + +$||A||_{p}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{p}}$ + +so the p=1, 1-norm is + +$||A||_{1}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{1}}=\sum_{i=1}^{n}\sum_{i=1}^{m}|A_{i,j}|$ + +$||A||_{\infty}=\sqrt{\sum_{i=1}^{n}\sum_{i=1}^{m}A_{i,j}^{\infty}}=\max_{1\le i \le n}\sum_{j=1}^{m}|A_{i,j}|$ + +\subsubsection{Condition of Matrix}\label{condition-of-matrix} + +The matrix condition is the product of + +$Cond(A) = ||A||\cdot||A^{-1}||$ + +So each norm will have a different condition number, but the limit is +$Cond(A)\ge 1$ + +An estimate of the rounding error is based on the condition of A: + +$\frac{||\Delta x||}{x} \le Cond(A) \frac{||\Delta A||}{||A||}$ + +So if the coefficients of A have accuracy to \$10\^{}\{-t\} + +and the condition of A, $Cond(A)=10^{c}$ + +then the solution for x can have rounding errors up to $10^{c-t}$ + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}72}]:} \PY{n}{A}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{4}\PY{p}{;}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{4}\PY{p}{,}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{5}\PY{p}{]} + \PY{p}{[}\PY{n}{L}\PY{p}{,}\PY{n}{U}\PY{p}{]}\PY{p}{=}\PY{n}{LU\PYZus{}naive}\PY{p}{(}\PY{n}{A}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +A = + + 1.00000 0.50000 0.33333 + 0.50000 0.33333 0.25000 + 0.33333 0.25000 0.20000 + +L = + + 1.00000 0.00000 0.00000 + 0.50000 1.00000 0.00000 + 0.33333 1.00000 1.00000 + +U = + + 1.00000 0.50000 0.33333 + 0.00000 0.08333 0.08333 + 0.00000 -0.00000 0.00556 + + + \end{Verbatim} + + Then, $A^{-1}=(LU)^{-1}=U^{-1}L^{-1}$ + +$Ld_{1}=\left[\begin{array}{c} 1 \\ 0 \\ 0 \end{array}\right]$, +$Ux_{1}=d_{1}$ ... + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}75}]:} \PY{n}{invA}\PY{p}{=}\PY{n+nb}{zeros}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)}\PY{p}{;} + \PY{n}{d1}\PY{p}{=}\PY{n}{L}\PY{o}{\PYZbs{}}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{;} + \PY{n}{d2}\PY{p}{=}\PY{n}{L}\PY{o}{\PYZbs{}}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{;} + \PY{n}{d3}\PY{p}{=}\PY{n}{L}\PY{o}{\PYZbs{}}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{;} + \PY{n}{invA}\PY{p}{(}\PY{p}{:}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{=}\PY{n}{U}\PY{o}{\PYZbs{}}\PY{n}{d1}\PY{p}{;} + \PY{n}{invA}\PY{p}{(}\PY{p}{:}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{=}\PY{n}{U}\PY{o}{\PYZbs{}}\PY{n}{d2}\PY{p}{;} + \PY{n}{invA}\PY{p}{(}\PY{p}{:}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)}\PY{p}{=}\PY{n}{U}\PY{o}{\PYZbs{}}\PY{n}{d3} + \PY{n}{invA}\PY{o}{*}\PY{n}{A} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +invA = + + 9.0000 -36.0000 30.0000 + -36.0000 192.0000 -180.0000 + 30.0000 -180.0000 180.0000 + +ans = + + 1.0000e+00 3.5527e-15 2.9976e-15 + -1.3249e-14 1.0000e+00 -9.1038e-15 + 8.5117e-15 7.1054e-15 1.0000e+00 + + + \end{Verbatim} + + Find the condition of A, $cond(A)$ + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}74}]:} \PY{c}{\PYZpc{} Frobenius norm} + \PY{n}{normf\PYZus{}A} \PY{p}{=} \PY{n+nb}{sqrt}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{A}\PY{o}{.\PYZca{}}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{)}\PY{p}{)} + \PY{n}{normf\PYZus{}invA} \PY{p}{=} \PY{n+nb}{sqrt}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{invA}\PY{o}{.\PYZca{}}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{)}\PY{p}{)} + + \PY{n}{cond\PYZus{}f\PYZus{}A} \PY{p}{=} \PY{n}{normf\PYZus{}A}\PY{o}{*}\PY{n}{normf\PYZus{}invA} + + \PY{n+nb}{norm}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{fro\PYZsq{}}\PY{p}{)} + + \PY{c}{\PYZpc{} p=1, column sum norm} + \PY{n}{norm1\PYZus{}A} \PY{p}{=} \PY{n+nb}{max}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{)} + \PY{n}{norm1\PYZus{}invA} \PY{p}{=} \PY{n+nb}{max}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{invA}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{)} + \PY{n+nb}{norm}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)} + + \PY{n}{cond\PYZus{}1\PYZus{}A}\PY{p}{=}\PY{n}{norm1\PYZus{}A}\PY{o}{*}\PY{n}{norm1\PYZus{}invA} + + \PY{c}{\PYZpc{} p=inf, row sum norm} + \PY{n}{norminf\PYZus{}A} \PY{p}{=} \PY{n+nb}{max}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{)} + \PY{n}{norminf\PYZus{}invA} \PY{p}{=} \PY{n+nb}{max}\PY{p}{(}\PY{n+nb}{sum}\PY{p}{(}\PY{n}{invA}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{)} + \PY{n+nb}{norm}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n+nb}{inf}\PY{p}{)} + + \PY{n}{cond\PYZus{}inf\PYZus{}A}\PY{p}{=}\PY{n}{norminf\PYZus{}A}\PY{o}{*}\PY{n}{norminf\PYZus{}invA} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +normf\_A = 1.4136 +normf\_invA = 372.21 +cond\_f\_A = 526.16 +ans = 1.4136 +norm1\_A = 1.8333 +norm1\_invA = 30.000 +ans = 1.8333 +cond\_1\_A = 55.000 +norminf\_A = 1.8333 +norminf\_invA = 30.000 +ans = 1.8333 +cond\_inf\_A = 55.000 + + \end{Verbatim} + + Consider the problem again from the intro to Linear Algebra, 4 masses +are connected in series to 4 springs with spring constants $K_{i}$. +What does a high condition number mean for this problem? + +\begin{figure}[htbp] +\centering +\includegraphics{../lecture_09/mass_springs.png} +\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_{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}21}]:} \PY{n}{k1}\PY{p}{=}\PY{l+m+mi}{10}\PY{p}{;} \PY{c}{\PYZpc{} N/m} + \PY{n}{k2}\PY{p}{=}\PY{l+m+mi}{100000}\PY{p}{;} + \PY{n}{k3}\PY{p}{=}\PY{l+m+mi}{10}\PY{p}{;} + \PY{n}{k4}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{;} + \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{n}{k2}\PY{o}{+}\PY{n}{k3} \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{n}{k3}\PY{o}{+}\PY{n}{k4} \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 = + + 100010 -100000 0 0 + -100000 100010 -10 0 + 0 -10 11 -1 + 0 0 -1 1 + +y = + + 9.8100 + 19.6200 + 29.4300 + 39.2400 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}25}]:} \PY{n+nb}{cond}\PY{p}{(}\PY{n}{K}\PY{p}{,}\PY{n+nb}{inf}\PY{p}{)} + \PY{n+nb}{cond}\PY{p}{(}\PY{n}{K}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)} + \PY{n+nb}{cond}\PY{p}{(}\PY{n}{K}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{fro\PYZsq{}}\PY{p}{)} + \PY{n+nb}{cond}\PY{p}{(}\PY{n}{K}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = 3.2004e+05 +ans = 3.2004e+05 +ans = 2.5925e+05 +ans = 2.5293e+05 + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}26}]:} \PY{n+nb}{e}\PY{p}{=}\PY{n+nb}{eig}\PY{p}{(}\PY{n}{K}\PY{p}{)} + \PY{n+nb}{max}\PY{p}{(}\PY{n+nb}{e}\PY{p}{)}\PY{o}{/}\PY{n+nb}{min}\PY{p}{(}\PY{n+nb}{e}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +e = + + 7.9078e-01 + 3.5881e+00 + 1.7621e+01 + 2.0001e+05 + +ans = 2.5293e+05 + + \end{Verbatim} + + \section{Iterative Methods}\label{iterative-methods} + +\subsection{Gauss-Seidel method}\label{gauss-seidel-method} + +If we have an intial guess for each value of a vector $x$ that we are +trying to solve, then it is easy enough to solve for one component given +the others. + +Take a 3$\times$3 matrix + +$Ax=b$ + +$\left[ \begin{array}{ccc} 3 & -0.1 & -0.2 \\ 0.1 & 7 & -0.3 \\ 0.3 & -0.2 & 10 \end{array} \right] \left[ \begin{array}{c} x_{1} \\ x_{2} \\ x_{3} \end{array} \right]= \left[ \begin{array}{c} 7.85 \\ -19.3 \\ 71.4\end{array} \right]$ + +$x_{1}=\frac{7.85+0.1x_{2}+0.3x_{3}}{3}$ + +$x_{2}=\frac{-19.3-0.1x_{1}+0.3x_{3}}{7}$ + +$x_{3}=\frac{71.4+0.1x_{1}+0.2x_{2}}{10}$ + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}9}]:} \PY{n}{A}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{3} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.1} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.2}\PY{p}{;}\PY{l+m+mf}{0.1} \PY{l+m+mi}{7} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.3}\PY{p}{;}\PY{l+m+mf}{0.3} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.2} \PY{l+m+mi}{10}\PY{p}{]} + \PY{n}{b}\PY{p}{=}\PY{p}{[}\PY{l+m+mf}{7.85}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mf}{19.3}\PY{p}{;}\PY{l+m+mf}{71.4}\PY{p}{]} + + \PY{n}{x}\PY{p}{=}\PY{n}{A}\PY{o}{\PYZbs{}}\PY{n}{b} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +A = + + 3.00000 -0.10000 -0.20000 + 0.10000 7.00000 -0.30000 + 0.30000 -0.20000 10.00000 + +b = + + 7.8500 + -19.3000 + 71.4000 + +x = + + 3.0000 + -2.5000 + 7.0000 + + + \end{Verbatim} + + \subsubsection{Gauss-Seidel Iterative +approach}\label{gauss-seidel-iterative-approach} + +As a first guess, we can use $x_{1}=x_{2}=x_{3}=0$ + +$x_{1}=\frac{7.85+0.1(0)+0.3(0)}{3}=2.6167$ + +$x_{2}=\frac{-19.3-0.1(2.6167)+0.3(0)}{7}=-2.7945$ + +$x_{3}=\frac{71.4+0.1(2.6167)+0.2(-2.7945)}{10}=7.0056$ + +Then, we update the guess: + +$x_{1}=\frac{7.85+0.1(-2.7945)+0.3(7.0056)}{3}=2.9906$ + +$x_{2}=\frac{-19.3-0.1(2.9906)+0.3(7.0056)}{7}=-2.4996$ + +$x_{3}=\frac{71.4+0.1(2.9906)+0.2(-2.4966)}{10}=7.00029$ + +The results are conveerging to the solution we found with +\texttt{\textbackslash{}} of $x_{1}=3,~x_{2}=-2.5,~x_{3}=7$ + +We could also use an iterative method that solves for all of the +x-components in one step: + +\subsubsection{Jacobi method}\label{jacobi-method} + +$x_{1}^{i}=\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ + +$x_{2}^{i}=\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$ + +$x_{3}^{i}=\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$ + +Here the solution is a matrix multiplication and vector addition + +$\left[ \begin{array}{c} x_{1}^{i} \\ x_{2}^{i} \\ x_{3}^{i} \end{array} \right]= \left[ \begin{array}{c} 7.85/3 \\ -19.3/7 \\ 71.4/10\end{array} \right]- \left[ \begin{array}{ccc} 0 & -0.1 & -0.2 \\ 0.1 & 0 & -0.3 \\ 0.3 & -0.2 & 0 \end{array} \right] \left[ \begin{array}{c} x_{1}^{i-1} \\ x_{2}^{i-1} \\ x_{3}^{i-1} \end{array} \right]$ + +\begin{longtable}[c]{@{}llll@{}} +\toprule +\begin{minipage}[b]{0.10\columnwidth}\raggedright\strut +x\_\{j\} +\strut\end{minipage} & +\begin{minipage}[b]{0.36\columnwidth}\raggedright\strut +Jacobi method +\strut\end{minipage} & +\begin{minipage}[b]{0.05\columnwidth}\raggedright\strut +vs +\strut\end{minipage} & +\begin{minipage}[b]{0.37\columnwidth}\raggedright\strut +Gauss-Seidel +\strut\end{minipage}\tabularnewline +\midrule +\endhead +\begin{minipage}[t]{0.10\columnwidth}\raggedright\strut +$x_{1}^{i}=$ +\strut\end{minipage} & +\begin{minipage}[t]{0.36\columnwidth}\raggedright\strut +$\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ +\strut\end{minipage} & +\begin{minipage}[t]{0.05\columnwidth}\raggedright\strut +\strut\end{minipage} & +\begin{minipage}[t]{0.37\columnwidth}\raggedright\strut +$\frac{7.85+0.1x_{2}^{i-1}+0.3x_{3}^{i-1}}{3}$ +\strut\end{minipage}\tabularnewline +\begin{minipage}[t]{0.10\columnwidth}\raggedright\strut +$x_{2}^{i}=$ +\strut\end{minipage} & +\begin{minipage}[t]{0.36\columnwidth}\raggedright\strut +$\frac{-19.3-0.1x_{1}^{i-1}+0.3x_{3}^{i-1}}{7}$ +\strut\end{minipage} & +\begin{minipage}[t]{0.05\columnwidth}\raggedright\strut +\strut\end{minipage} & +\begin{minipage}[t]{0.37\columnwidth}\raggedright\strut +$\frac{-19.3-0.1x_{1}^{i}+0.3x_{3}^{i-1}}{7}$ +\strut\end{minipage}\tabularnewline +\begin{minipage}[t]{0.10\columnwidth}\raggedright\strut +$x_{3}^{i}=$ +\strut\end{minipage} & +\begin{minipage}[t]{0.36\columnwidth}\raggedright\strut +$\frac{71.4+0.1x_{1}^{i-1}+0.2x_{2}^{i-1}}{10}$ +\strut\end{minipage} & +\begin{minipage}[t]{0.05\columnwidth}\raggedright\strut +\strut\end{minipage} & +\begin{minipage}[t]{0.37\columnwidth}\raggedright\strut +$\frac{71.4+0.1x_{1}^{i}+0.2x_{2}^{i}}{10}$ +\strut\end{minipage}\tabularnewline +\bottomrule +\end{longtable} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}15}]:} \PY{n}{ba}\PY{p}{=}\PY{n}{b}\PY{o}{./}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)} \PY{c}{\PYZpc{} or ba=b./[A(1,1);A(2,2);A(3,3)]} + \PY{n}{sA}\PY{p}{=}\PY{n}{A}\PY{o}{\PYZhy{}}\PY{n+nb}{diag}\PY{p}{(}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)}\PY{p}{)} \PY{c}{\PYZpc{} A with zeros on diagonal} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{;} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)} + \PY{n}{x0}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{;} + \PY{n}{x1}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x0} + \PY{n}{x2}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x1} + \PY{n}{x3}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x2} + \PY{n+nb}{fprintf}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{solution is converging to [3,\PYZhy{}2.5,7]]\PYZbs{}n\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ba = + + 2.6167 + -2.7571 + 7.1400 + +sA = + + 0.00000 -0.10000 -0.20000 + 0.10000 0.00000 -0.30000 + 0.30000 -0.20000 0.00000 + +sA = + + 0.000000 -0.033333 -0.066667 + 0.014286 0.000000 -0.042857 + 0.030000 -0.020000 0.000000 + +x1 = + + 2.6167 + -2.7571 + 7.1400 + +x2 = + + 3.0008 + -2.4885 + 7.0064 + +x3 = + + 3.0008 + -2.4997 + 7.0002 + +solution is converging to [3,-2.5,7]] + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}16}]:} \PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)} + \PY{n+nb}{diag}\PY{p}{(}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = + + 3 + 7 + 10 + +ans = + +Diagonal Matrix + + 3 0 0 + 0 7 0 + 0 0 10 + + + \end{Verbatim} + + This method works if problem is diagonally dominant, + +$|a_{ii}|>\sum_{j=1,j\ne i}^{n}|a_{ij}|$ + +If this condition is true, then Jacobi or Gauss-Seidel should converge + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}17}]:} \PY{n}{A}\PY{p}{=}\PY{p}{[}\PY{l+m+mf}{0.1}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mf}{0.2}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{5}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mf}{0.3}\PY{p}{]} + \PY{n}{b}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{12}\PY{p}{;}\PY{l+m+mi}{2}\PY{p}{;}\PY{l+m+mi}{4}\PY{p}{]} + \PY{n}{A}\PY{o}{\PYZbs{}}\PY{n}{b} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +A = + + 0.10000 1.00000 3.00000 + 1.00000 0.20000 3.00000 + 5.00000 2.00000 0.30000 + +b = + + 12 + 2 + 4 + +ans = + + -2.9393 + 9.1933 + 1.0336 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}20}]:} \PY{n}{ba}\PY{p}{=}\PY{n}{b}\PY{o}{./}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)} \PY{c}{\PYZpc{} or ba=b./[A(1,1);A(2,2);A(3,3)]} + \PY{n}{sA}\PY{p}{=}\PY{n}{A}\PY{o}{\PYZhy{}}\PY{n+nb}{diag}\PY{p}{(}\PY{n+nb}{diag}\PY{p}{(}\PY{n}{A}\PY{p}{)}\PY{p}{)} \PY{c}{\PYZpc{} A with zeros on diagonal} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{;} + \PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{p}{=}\PY{n}{sA}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{p}{:}\PY{p}{)}\PY{o}{/}\PY{n}{A}\PY{p}{(}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)} + \PY{n}{x0}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{;}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{;} + \PY{n}{x1}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x0} + \PY{n}{x2}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x1} + \PY{n}{x3}\PY{p}{=}\PY{n}{ba}\PY{o}{\PYZhy{}}\PY{n}{sA}\PY{o}{*}\PY{n}{x2} + \PY{n+nb}{fprintf}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{solution is not converging to [\PYZhy{}2.93,9.19,1.03]\PYZbs{}n\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ba = + + 120.000 + 10.000 + 13.333 + +sA = + + 0 1 3 + 1 0 3 + 5 2 0 + +sA = + + 0.00000 10.00000 30.00000 + 5.00000 0.00000 15.00000 + 16.66667 6.66667 0.00000 + +x1 = + + 120.000 + 10.000 + 13.333 + +x2 = + + -380.00 + -790.00 + -2053.33 + +x3 = + + 6.9620e+04 + 3.2710e+04 + 1.1613e+04 + +solution is not converging to [-2.93,9.19,1.03] + + \end{Verbatim} + + \subsection{Gauss-Seidel with +Relaxation}\label{gauss-seidel-with-relaxation} + +In order to force the solution to converge faster, we can introduce a +relaxation term $\lambda$. + +where the new x values are weighted between the old and new: + +$x^{i}=\lambda x^{i}+(1-\lambda)x^{i-1}$ + +after solving for x, lambda weights the current approximation with the +previous approximation for the updated x + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}105}]:} \PY{c}{\PYZpc{} rearrange A and b} + \PY{n}{A}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{3} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.1} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.2}\PY{p}{;}\PY{l+m+mf}{0.1} \PY{l+m+mi}{7} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.3}\PY{p}{;}\PY{l+m+mf}{0.3} \PY{o}{\PYZhy{}}\PY{l+m+mf}{0.2} \PY{l+m+mi}{10}\PY{p}{]} + \PY{n}{b}\PY{p}{=}\PY{p}{[}\PY{l+m+mf}{7.85}\PY{p}{;}\PY{o}{\PYZhy{}}\PY{l+m+mf}{19.3}\PY{p}{;}\PY{l+m+mf}{71.4}\PY{p}{]} + + \PY{n}{iters}\PY{p}{=}\PY{n+nb}{zeros}\PY{p}{(}\PY{l+m+mi}{100}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{k}{for} \PY{n}{i}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{l+m+mi}{100} + \PY{n}{lambda}\PY{p}{=}\PY{l+m+mi}{2}\PY{o}{/}\PY{l+m+mi}{100}\PY{o}{*}\PY{n}{i}\PY{p}{;} + \PY{p}{[}\PY{n}{x}\PY{p}{,}\PY{n}{ea}\PY{p}{,}\PY{n}{iters}\PY{p}{(}\PY{n}{i}\PY{p}{)}\PY{p}{]}\PY{p}{=}\PY{n}{Jacobi\PYZus{}rel}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{lambda}\PY{p}{)}\PY{p}{;} + \PY{k}{end} + \PY{n+nb}{plot}\PY{p}{(}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{:}\PY{l+m+mi}{100}\PY{p}{]}\PY{o}{*}\PY{l+m+mi}{2}\PY{o}{/}\PY{l+m+mi}{100}\PY{p}{,}\PY{n}{iters}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +A = + + 3.00000 -0.10000 -0.20000 + 0.10000 7.00000 -0.30000 + 0.30000 -0.20000 10.00000 + +b = + + 7.8500 + -19.3000 + 71.4000 + + + \end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_22_1.pdf} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}107}]:} \PY{n}{l}\PY{p}{=}\PY{n}{fminbnd}\PY{p}{(}\PY{p}{@}\PY{p}{(}\PY{n}{l}\PY{p}{)} \PY{n}{lambda\PYZus{}fcn}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{l}\PY{p}{)}\PY{p}{,}\PY{l+m+mf}{0.5}\PY{p}{,}\PY{l+m+mf}{1.5}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +l = 0.99158 + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}108}]:} \PY{n}{A}\PY{o}{\PYZbs{}}\PY{n}{b} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +ans = + + 3.0000 + -2.5000 + 7.0000 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}109}]:} \PY{p}{[}\PY{n}{x}\PY{p}{,}\PY{n}{ea}\PY{p}{,}\PY{n}{iter}\PY{p}{]}\PY{p}{=}\PY{n}{Jacobi\PYZus{}rel}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{l}\PY{p}{,}\PY{l+m+mf}{0.000001}\PY{p}{)} + \PY{p}{[}\PY{n}{x}\PY{p}{,}\PY{n}{ea}\PY{p}{,}\PY{n}{iter}\PY{p}{]}\PY{p}{=}\PY{n}{Jacobi\PYZus{}rel}\PY{p}{(}\PY{n}{A}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mf}{0.000001}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x = + + 3.0000 + -2.5000 + 7.0000 + +ea = + + 1.8289e-07 + 2.1984e-08 + 2.3864e-08 + +iter = 8 +x = + + 3.0000 + -2.5000 + 7.0000 + +ea = + + 1.9130e-08 + 7.6449e-08 + 3.3378e-08 + +iter = 8 + + \end{Verbatim} + + \subsection{Nonlinear Systems}\label{nonlinear-systems} + +Consider two simultaneous nonlinear equations with two unknowns: + +$x_{1}^{2}+x_{1}x_{2}=10$ + +$x_{2}+3x_{1}x_{2}^{2}=57$ + +Graphically, we are looking for the solution: + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}121}]:} \PY{n}{x11}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{l+m+mf}{0.5}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{)}\PY{p}{;} + \PY{n}{x12}\PY{p}{=}\PY{p}{(}\PY{l+m+mi}{10}\PY{o}{\PYZhy{}}\PY{n}{x11}\PY{o}{.\PYZca{}}\PY{l+m+mi}{2}\PY{p}{)}\PY{o}{./}\PY{n}{x11}\PY{p}{;} + + \PY{n}{x22}\PY{p}{=}\PY{n+nb}{linspace}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{8}\PY{p}{)}\PY{p}{;} + \PY{n}{x21}\PY{p}{=}\PY{p}{(}\PY{l+m+mi}{57}\PY{o}{\PYZhy{}}\PY{n}{x22}\PY{p}{)}\PY{o}{.*}\PY{n}{x22}\PY{o}{.\PYZca{}}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{/}\PY{l+m+mi}{3}\PY{p}{;} + + \PY{n+nb}{plot}\PY{p}{(}\PY{n}{x11}\PY{p}{,}\PY{n}{x12}\PY{p}{,}\PY{n}{x21}\PY{p}{,}\PY{n}{x22}\PY{p}{)} + \PY{c}{\PYZpc{} Solution at x\PYZus{}1=2, x\PYZus{}2=3} + \PY{n+nb}{hold} \PY{n}{on}\PY{p}{;} + \PY{n+nb}{plot}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{,}\PY{l+m+mi}{3}\PY{p}{,}\PY{l+s}{\PYZsq{}}\PY{l+s}{o\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_27_0.pdf} + \end{center} + { \hspace*{\fill} \\} + + \subsection{Newton-Raphson part II}\label{newton-raphson-part-ii} + +Remember the first order approximation for the next point in a function +is: + +$f(x_{i+1})=f(x_{i})+(x_{i+1}-x_{i})f'(x_{i})$ + +then, $f(x_{i+1})=0$ so we are left with: + +$x_{i+1}=x_{i}-\frac{f(x_{i})}{f'(x_{i})}$ + +We can use the same formula, but now we have multiple dimensions so we +need to determine the Jacobian + +$[J]=\left[ \begin{array}{cccc} \frac{\partial f_{1,i}}{\partial x_{1}} & \frac{\partial f_{1,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{1,i}}{\partial x_{n}} \\ \frac{\partial f_{2,i}}{\partial x_{1}} & \frac{\partial f_{2,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{2,i}}{\partial x_{n}} \\ \vdots & \vdots & & \vdots \\ \frac{\partial f_{n,i}}{\partial x_{1}} & \frac{\partial f_{n,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{n,i}}{\partial x_{n}} \\ \end{array} \right]$ + +$\left[ \begin{array}{c} f_{1,i+1} \\ f_{2,i+1} \\ \vdots \\ f_{n,i+1}\end{array} \right]= \left[ \begin{array}{c} f_{1,i} \\ f_{2,i} \\ \vdots \\ f_{n,i}\end{array} \right]+ \left[ \begin{array}{cccc} \frac{\partial f_{1,i}}{\partial x_{1}} & \frac{\partial f_{1,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{1,i}}{\partial x_{n}} \\ \frac{\partial f_{2,i}}{\partial x_{1}} & \frac{\partial f_{2,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{2,i}}{\partial x_{n}} \\ \vdots & \vdots & & \vdots \\ \frac{\partial f_{n,i}}{\partial x_{1}} & \frac{\partial f_{n,i}}{\partial x_{2}} & \cdots & \frac{\partial f_{n,i}}{\partial x_{n}} \\ \end{array} \right] \left( \left[ \begin{array}{c} x_{i+1} \\ x_{i+1} \\ \vdots \\ x_{i+1}\end{array} \right]- \left[ \begin{array}{c} f_{1,i} \\ f_{2,i} \\ \vdots \\ f_{n,i}\end{array} \right]\right)$ + +\subsubsection{Solution is again in the form +Ax=b}\label{solution-is-again-in-the-form-axb} + +$[J]([x_{i+1}]-[x_{i}])=-[f]$ + +so + +$[x_{i+1}]= [x_{i}]-[J]^{-1}[f]$ + +\subsection{Example of Jacobian +calculation}\label{example-of-jacobian-calculation} + +\subsubsection{Nonlinear springs supporting two masses in +series}\label{nonlinear-springs-supporting-two-masses-in-series} + +Two springs are connected to two masses, with $m_1$=1 kg and +$m_{2}$=2 kg. The springs are identical, but they have nonlinear +spring constants, of $k_1$=10 N/m and $k_2$=-4 N/m + +We want to solve for the final position of the masses ($x_1$ and +$x_2$) + +$m_{1}g+k_{1}(x_{2}-x_{1})+k_{2}(x_{2}-x_{1})^{2}+k_{1}x_{1}+k_{2}x_{1}^{2}=0$ + +$m_{2}g-k_{1}(x_{2}-x_{1})-k_{2}(x_2-x_1)^{2}=0$ + +$J(1,1)=\frac{\partial f_{1}}{\partial x_{1}}=-k_{1}-2k_{2}(x_{2}-x_{1})+k_{1}+2k_{2}x_{1}$ + +$J(1,2)=\frac{\partial f_1}{\partial x_{2}}=k_{1}+2k_{2}(x_{2}-x_{1})$ + +$J(2,1)=\frac{\partial f_2}{\partial x_{1}}=k_{1}+2k_{2}(x_{2}-x_{1})$ + +$J(2,2)=\frac{\partial f_2}{\partial x_{2}}=-k_{1}-2k_{2}(x_{2}-x_{1})$ + +Use an initial guess of $x_1=x_2=0$ + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor} }]:} \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{c}{\PYZpc{} kg} + \PY{n}{k1}\PY{p}{=}\PY{l+m+mi}{10}\PY{p}{;} \PY{c}{\PYZpc{} N/m} + \PY{n}{k2}\PY{p}{=}\PY{o}{\PYZhy{}}\PY{l+m+mi}{4}\PY{p}{;} \PY{c}{\PYZpc{} N/m\PYZca{}2} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}214}]:} \PY{k}{function}\PY{+w}{ }[f,J]\PY{p}{=}\PY{n+nf}{mass\PYZus{}spring}\PY{p}{(}x\PY{p}{)} + \PY{+w}{ }\PY{c}{\PYZpc{} Function to calculate function values f1 and f2 as well as Jacobian } + \PY{c}{\PYZpc{} for 2 masses and 2 identical nonlinear springs} + \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{c}{\PYZpc{} kg} + \PY{n}{k1}\PY{p}{=}\PY{l+m+mi}{100}\PY{p}{;} \PY{c}{\PYZpc{} N/m} + \PY{n}{k2}\PY{p}{=}\PY{o}{\PYZhy{}}\PY{l+m+mi}{10}\PY{p}{;} \PY{c}{\PYZpc{} N/m\PYZca{}2} + \PY{n}{g}\PY{p}{=}\PY{l+m+mf}{9.81}\PY{p}{;} \PY{c}{\PYZpc{} m/s\PYZca{}2} + \PY{n}{x1}\PY{p}{=}\PY{n}{x}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{n}{x2}\PY{p}{=}\PY{n}{x}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{;} + \PY{n}{J}\PY{p}{=}\PY{p}{[}\PY{o}{\PYZhy{}}\PY{n}{k1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{\PYZhy{}}\PY{n}{k1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k2}\PY{o}{*}\PY{n}{x1}\PY{p}{,}\PY{n}{k1}\PY{o}{+}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{p}{;} + \PY{n}{k1}\PY{o}{+}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{p}{,}\PY{o}{\PYZhy{}}\PY{n}{k1}\PY{o}{\PYZhy{}}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{p}{]}\PY{p}{;} + \PY{n}{f}\PY{p}{=}\PY{p}{[}\PY{n}{m1}\PY{o}{*}\PY{n}{g}\PY{o}{+}\PY{n}{k1}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{+}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{.\PYZca{}}\PY{l+m+mi}{2}\PY{o}{\PYZhy{}}\PY{n}{k1}\PY{o}{*}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{k2}\PY{o}{*}\PY{n}{x1}\PYZca{}\PY{l+m+mi}{2}\PY{p}{;} + \PY{n}{m2}\PY{o}{*}\PY{n}{g}\PY{o}{\PYZhy{}}\PY{n}{k1}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{\PYZhy{}}\PY{n}{k2}\PY{o}{*}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{.\PYZca{}}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{;} + \PY{k}{end} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}217}]:} \PY{p}{[}\PY{n}{f}\PY{p}{,}\PY{n}{J}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +f = + + -190.19 + 129.62 + +J = + + -200 120 + 120 -120 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}227}]:} \PY{n}{x0}\PY{p}{=}\PY{p}{[}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{2}\PY{p}{]}\PY{p}{;} + \PY{p}{[}\PY{n}{f0}\PY{p}{,}\PY{n}{J0}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{n}{x0}\PY{p}{)}\PY{p}{;} + \PY{n}{x1}\PY{p}{=}\PY{n}{x0}\PY{o}{\PYZhy{}}\PY{n}{J0}\PY{o}{\PYZbs{}}\PY{n}{f0} + \PY{n}{ea}\PY{p}{=}\PY{p}{(}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{x0}\PY{p}{)}\PY{o}{./}\PY{n}{x1} + \PY{p}{[}\PY{n}{f1}\PY{p}{,}\PY{n}{J1}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{n}{x1}\PY{p}{)}\PY{p}{;} + \PY{n}{x2}\PY{p}{=}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{J1}\PY{o}{\PYZbs{}}\PY{n}{f1} + \PY{n}{ea}\PY{p}{=}\PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)}\PY{o}{./}\PY{n}{x2} + \PY{p}{[}\PY{n}{f2}\PY{p}{,}\PY{n}{J2}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{n}{x2}\PY{p}{)}\PY{p}{;} + \PY{n}{x3}\PY{p}{=}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{J2}\PY{o}{\PYZbs{}}\PY{n}{f2} + \PY{n}{ea}\PY{p}{=}\PY{p}{(}\PY{n}{x3}\PY{o}{\PYZhy{}}\PY{n}{x2}\PY{p}{)}\PY{o}{./}\PY{n}{x3} + \PY{n}{x}\PY{p}{=}\PY{n}{x3} + \PY{k}{for} \PY{n}{i}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{l+m+mi}{3} + \PY{n}{xold}\PY{p}{=}\PY{n}{x}\PY{p}{;} + \PY{p}{[}\PY{n}{f}\PY{p}{,}\PY{n}{J}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{n}{x}\PY{p}{)}\PY{p}{;} + \PY{n}{x}\PY{p}{=}\PY{n}{x}\PY{o}{\PYZhy{}}\PY{n}{J}\PY{o}{\PYZbs{}}\PY{n}{f}\PY{p}{;} + \PY{n}{ea}\PY{p}{=}\PY{p}{(}\PY{n}{x}\PY{o}{\PYZhy{}}\PY{n}{xold}\PY{p}{)}\PY{o}{./}\PY{n}{x} + \PY{k}{end} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x1 = + + -1.5142 + -1.4341 + +ea = + + 2.9812 + 2.3946 + +x2 = + + 0.049894 + 0.248638 + +ea = + + 31.3492 + 6.7678 + +x3 = + + 0.29701 + 0.49722 + +ea = + + 0.83201 + 0.49995 + +x = + + 0.29701 + 0.49722 + +ea = + + 0.021392 + 0.012890 + +ea = + + 1.4786e-05 + 8.9091e-06 + +ea = + + 7.0642e-12 + 4.2565e-12 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}228}]:} \PY{n}{x} + \PY{n}{X0}\PY{p}{=}\PY{n+nb}{fsolve}\PY{p}{(}\PY{p}{@}\PY{p}{(}\PY{n}{x}\PY{p}{)} \PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{n}{x}\PY{p}{)}\PY{p}{,}\PY{p}{[}\PY{l+m+mi}{3}\PY{p}{;}\PY{l+m+mi}{5}\PY{p}{]}\PY{p}{)} +\end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +x = + + 0.30351 + 0.50372 + +X0 = + + 0.30351 + 0.50372 + + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}236}]:} \PY{p}{[}\PY{n}{X}\PY{p}{,}\PY{n}{Y}\PY{p}{]}\PY{p}{=}\PY{n+nb}{meshgrid}\PY{p}{(}\PY{n+nb}{linspace}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{20}\PY{p}{)}\PY{p}{,}\PY{n+nb}{linspace}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,}\PY{l+m+mi}{1}\PY{p}{,}\PY{l+m+mi}{20}\PY{p}{)}\PY{p}{)}\PY{p}{;} + \PY{p}{[}\PY{n}{N}\PY{p}{,}\PY{n}{M}\PY{p}{]}\PY{p}{=}\PY{n+nb}{size}\PY{p}{(}\PY{n}{X}\PY{p}{)}\PY{p}{;} + \PY{n}{F}\PY{p}{=}\PY{n+nb}{zeros}\PY{p}{(}\PY{n+nb}{size}\PY{p}{(}\PY{n}{X}\PY{p}{)}\PY{p}{)}\PY{p}{;} + \PY{k}{for} \PY{n}{i}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{n}{N} + \PY{k}{for} \PY{n}{j}\PY{p}{=}\PY{l+m+mi}{1}\PY{p}{:}\PY{n}{M} + \PY{p}{[}\PY{n}{f}\PY{p}{,}\PY{o}{\PYZti{}}\PY{p}{]}\PY{p}{=}\PY{n}{mass\PYZus{}spring}\PY{p}{(}\PY{p}{[}\PY{n}{X}\PY{p}{(}\PY{n}{i}\PY{p}{,}\PY{n}{j}\PY{p}{)}\PY{p}{,}\PY{n}{Y}\PY{p}{(}\PY{n}{i}\PY{p}{,}\PY{n}{j}\PY{p}{)}\PY{p}{]}\PY{p}{)}\PY{p}{;} + \PY{n}{F}\PY{p}{(}\PY{n}{i}\PY{p}{,}\PY{n}{j}\PY{p}{)}\PY{p}{=}\PY{n}{f}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)}\PY{p}{;} + \PY{k}{end} + \PY{k}{end} + \PY{n+nb}{pcolor}\PY{p}{(}\PY{n}{X}\PY{p}{,}\PY{n}{Y}\PY{p}{,}\PY{n}{F}\PY{p}{)} + \PY{n+nb}{xlabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{x\PYZus{}1\PYZsq{}}\PY{p}{)} + \PY{n+nb}{ylabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{x\PYZus{}2\PYZsq{}}\PY{p}{)} + \PY{n+nb}{colorbar}\PY{p}{(}\PY{p}{)} + \PY{n+nb}{figure}\PY{p}{(}\PY{p}{)} + \PY{n+nb}{pcolor}\PY{p}{(}\PY{n}{X}\PY{p}{,}\PY{n}{Y}\PY{p}{,}\PY{n}{F}\PY{p}{)} + \PY{n+nb}{xlabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{x\PYZus{}1\PYZsq{}}\PY{p}{)} + \PY{n+nb}{ylabel}\PY{p}{(}\PY{l+s}{\PYZsq{}}\PY{l+s}{x\PYZus{}2\PYZsq{}}\PY{p}{)} + \PY{n+nb}{colorbar}\PY{p}{(}\PY{p}{)} +\end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_34_0.pdf} + \end{center} + { \hspace*{\fill} \\} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_34_1.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_13/lecture_13_files/lecture_13_22_1.pdf b/lecture_13/lecture_13_files/lecture_13_22_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..292be46468146886532429cb942c782e4528b8d3 GIT binary patch literal 5731 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 AumAu6 literal 0 HcmV?d00001 diff --git a/lecture_13/lecture_13_files/lecture_13_22_1.svg b/lecture_13/lecture_13_files/lecture_13_22_1.svg new file mode 100644 index 0000000..c8482cc --- /dev/null +++ b/lecture_13/lecture_13_files/lecture_13_22_1.svg @@ -0,0 +1,121 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + 10 + + + + + 20 + + + + + 30 + + + + + 40 + + + + + 50 + + + + + 0 + + + + + 0.5 + + + + + 1 + + + + + 1.5 + + + + + 2 + + + + + + + + + gnuplot_plot_1a + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_13/lecture_13_files/lecture_13_27_0.pdf b/lecture_13/lecture_13_files/lecture_13_27_0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..45aaf4ed382b70919b24540cb7d858f71c271d87 GIT binary patch literal 6468 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 + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + 5 + + + + + 10 + + + + + 15 + + + + + 20 + + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + + + + + gnuplot_plot_1a + + + + + + gnuplot_plot_2a + + + + gnuplot_plot_3a + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_13/lecture_13_files/lecture_13_34_0.pdf b/lecture_13/lecture_13_files/lecture_13_34_0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9bb7744ac827c0df105d00bc7ec5d30d2b99e11 GIT binary patch literal 11322 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

F=wL z2PYANHU*n+ze7?^IbKu-V3I6BTEArl_D}4&ymW1@hVgmIZ!f=j#>M&i9Eef`*<*9$ zU-n~Mj7?-+$X-2uLb3JkLtWLbJxk(puuEJ&%T7FfhE3jl(THxJ3^wsIW$D__iW}#9 zl0;9;FRm2nlWq@5c@q1fMO9?%GM2sQ!chWh<9D!oy<%d~g>F#! z5_KS0E$&u2IrhBeZKsH-50>~z>aPfoaQ@lnOJDeUtK{?Pm|H}Seb zo%DND2O+XkY06eWHRIl(q;}()QzA{FvWMnBsUE-h46MS82o}D~9 zYuGkA3i)8RD*ujtf2SpWJYXmh3-GdP+sN9*VjuP7iKOL^QQk2e+XQ!~r(XdtvkH@} zX~$rf3@$cM^cxH#vq=H(0zndcqk4#tQc*dmZ-u@D^@sAaH z+T(D5ae`NS^p#HJM$G3{6*0xmkw<2VXREodfphe|)vYn)R?L?YbWd3JwIW*+kGX+! zx4hm6JWPK%of=Wl?4`2O_Xy(rF_ga7N!g!y^7e~{X#rR zyuiTu&d&&qUD% z1$us~h{ynX>N%a&=~XVo%+=YN8Qz0WIz7i)iaWM!V_!_5s92%q---gXvfyMUkG*_@A2bfQNjEhQ0%9Tn=x}JPrt-4j9 zx89x)Ojat1=;|gjvgk-==E61g#(a$ZIf!sLSx94LN!1UGwV~wKp2TRJ@@zyk9U3`8 zq;=OhNv^f)6)-DN$ebxD>^mh+l2SU?zD;De{N0B%9e0TDKaV6GZ_;DkXZv`rjZY@z z%s$>Vu_)C2G#-)LZ4ntic%0W2sbOuF+r`444gzQS{9s;>`Xpz}AFWaGY@ce~VBa}1 z=C+d&pjU4F@!=P|j%=&AjKgxbzOdGwro)W}F0}1Aw4_J#ScDExt9_rArfelw8 zKI4P$gmi}6n7u;{hrR0N!K)q=;wR!O-J~@mGmexUOaV{d<1G=Iei8gJ$}Bc)OMzyy z8|6aWERg=}sQURO-Hugn_^D5qY>e4sf;ZlScQ~=dE!7fJ?tq1{<1ww`Xcq!@h&$wh zVmEuyI2x=mpukmGisazRt}d0G-CpAwt!Ad4(YzErHx)Of7fIFyC?3j77h4@k!3N9< zCt%IoNg!hhkduEF7;G7N7cUCPXss6_H~AD@(&g)yFDUn!*i`y^QXhPLX@d#W=R=gw zwxORt@mh9tXp51+y1Jc-n7V-s|D+H%2d&>nGCn>5!9Qm*@b%&TzYfaaUx(@I!`J_I zQbwM=|9S!o`mzz;1tOI9Z87Utue=rSPx?W##>VJNj?f8!8XbcTJ;eEQD?!Ypf(i=F zw?Wz=K(oh4h5*r~uTxbo=Bys6le1kcCgc5{xUgVe-bFYp8L^C|z8+wBXE7GJl4c-$?T)7KB zvp5?#o)^2tee|Y|DWjvC0N825!W2|V7Ba;tU3}S1rNj9;X-O8e0xsZ9!oMR#c3<(M z_oVl_?3(Pl)|%G3>YD2M8<+TFqeIuJ_iqIr4GT}Do7?P6NyEXdYyKYZ!(w~52#nW< z;;Eh=N$w9@>FT%kqKAb2`xJZ=$KNsk8~FkM{h7C4$l)5-$iZCAU2L4(99?c;!nJhY z)B%YSG;|CUA82yO!E8-++_jLX2kjVt&1zl5szmuA4D)lD;{}YX0 z!~LNz+DI03U3a6(n7YEQhxoLCTnf#@+SalroYQz-d~sx;AiWxU0<{;b!I=^yB&)eqED`fB*17ctCvMYo-Q4g0VmE|E=`zzW+ZJ z0b%g3jYm>1$479R>t`!LH#dX7@6F$D4!`#1nhpL+Kvf%y>rh-TRr4$e4g9WgendLPUu>S`Et<%N; literal 0 HcmV?d00001 diff --git a/lecture_13/lecture_13_files/lecture_13_34_0.svg b/lecture_13/lecture_13_files/lecture_13_34_0.svg new file mode 100644 index 0000000..5163d90 --- /dev/null +++ b/lecture_13/lecture_13_files/lecture_13_34_0.svg @@ -0,0 +1,2040 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gnuplot_plot_1a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + 0.4 + + + + + + + + + 0.6 + + + + + + + + + 0.8 + + + + + + + + + 1 + + + + + + + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + 0.4 + + + + + + + + + 0.6 + + + + + + + + + 0.8 + + + + + + + + + 1 + + + + + x2 + + + + + + + + + + + + + + + + + + gnuplot_plot_1b + + + +; + + + + + + + -150 + + + + + -100 + + + + + -50 + + + + + 0 + + + + + 50 + + + + + 100 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_13/lecture_13_files/lecture_13_34_1.pdf b/lecture_13/lecture_13_files/lecture_13_34_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d9bb7744ac827c0df105d00bc7ec5d30d2b99e11 GIT binary patch literal 11322 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

F=wL z2PYANHU*n+ze7?^IbKu-V3I6BTEArl_D}4&ymW1@hVgmIZ!f=j#>M&i9Eef`*<*9$ zU-n~Mj7?-+$X-2uLb3JkLtWLbJxk(puuEJ&%T7FfhE3jl(THxJ3^wsIW$D__iW}#9 zl0;9;FRm2nlWq@5c@q1fMO9?%GM2sQ!chWh<9D!oy<%d~g>F#! z5_KS0E$&u2IrhBeZKsH-50>~z>aPfoaQ@lnOJDeUtK{?Pm|H}Seb zo%DND2O+XkY06eWHRIl(q;}()QzA{FvWMnBsUE-h46MS82o}D~9 zYuGkA3i)8RD*ujtf2SpWJYXmh3-GdP+sN9*VjuP7iKOL^QQk2e+XQ!~r(XdtvkH@} zX~$rf3@$cM^cxH#vq=H(0zndcqk4#tQc*dmZ-u@D^@sAaH z+T(D5ae`NS^p#HJM$G3{6*0xmkw<2VXREodfphe|)vYn)R?L?YbWd3JwIW*+kGX+! zx4hm6JWPK%of=Wl?4`2O_Xy(rF_ga7N!g!y^7e~{X#rR zyuiTu&d&&qUD% z1$us~h{ynX>N%a&=~XVo%+=YN8Qz0WIz7i)iaWM!V_!_5s92%q---gXvfyMUkG*_@A2bfQNjEhQ0%9Tn=x}JPrt-4j9 zx89x)Ojat1=;|gjvgk-==E61g#(a$ZIf!sLSx94LN!1UGwV~wKp2TRJ@@zyk9U3`8 zq;=OhNv^f)6)-DN$ebxD>^mh+l2SU?zD;De{N0B%9e0TDKaV6GZ_;DkXZv`rjZY@z z%s$>Vu_)C2G#-)LZ4ntic%0W2sbOuF+r`444gzQS{9s;>`Xpz}AFWaGY@ce~VBa}1 z=C+d&pjU4F@!=P|j%=&AjKgxbzOdGwro)W}F0}1Aw4_J#ScDExt9_rArfelw8 zKI4P$gmi}6n7u;{hrR0N!K)q=;wR!O-J~@mGmexUOaV{d<1G=Iei8gJ$}Bc)OMzyy z8|6aWERg=}sQURO-Hugn_^D5qY>e4sf;ZlScQ~=dE!7fJ?tq1{<1ww`Xcq!@h&$wh zVmEuyI2x=mpukmGisazRt}d0G-CpAwt!Ad4(YzErHx)Of7fIFyC?3j77h4@k!3N9< zCt%IoNg!hhkduEF7;G7N7cUCPXss6_H~AD@(&g)yFDUn!*i`y^QXhPLX@d#W=R=gw zwxORt@mh9tXp51+y1Jc-n7V-s|D+H%2d&>nGCn>5!9Qm*@b%&TzYfaaUx(@I!`J_I zQbwM=|9S!o`mzz;1tOI9Z87Utue=rSPx?W##>VJNj?f8!8XbcTJ;eEQD?!Ypf(i=F zw?Wz=K(oh4h5*r~uTxbo=Bys6le1kcCgc5{xUgVe-bFYp8L^C|z8+wBXE7GJl4c-$?T)7KB zvp5?#o)^2tee|Y|DWjvC0N825!W2|V7Ba;tU3}S1rNj9;X-O8e0xsZ9!oMR#c3<(M z_oVl_?3(Pl)|%G3>YD2M8<+TFqeIuJ_iqIr4GT}Do7?P6NyEXdYyKYZ!(w~52#nW< z;;Eh=N$w9@>FT%kqKAb2`xJZ=$KNsk8~FkM{h7C4$l)5-$iZCAU2L4(99?c;!nJhY z)B%YSG;|CUA82yO!E8-++_jLX2kjVt&1zl5szmuA4D)lD;{}YX0 z!~LNz+DI03U3a6(n7YEQhxoLCTnf#@+SalroYQz-d~sx;AiWxU0<{;b!I=^yB&)eqED`fB*17ctCvMYo-Q4g0VmE|E=`zzW+ZJ z0b%g3jYm>1$479R>t`!LH#dX7@6F$D4!`#1nhpL+Kvf%y>rh-TRr4$e4g9WgendLPUu>S`Et<%N; literal 0 HcmV?d00001 diff --git a/lecture_13/lecture_13_files/lecture_13_34_1.svg b/lecture_13/lecture_13_files/lecture_13_34_1.svg new file mode 100644 index 0000000..5163d90 --- /dev/null +++ b/lecture_13/lecture_13_files/lecture_13_34_1.svg @@ -0,0 +1,2040 @@ + + +Gnuplot +Produced by GNUPLOT 5.0 patchlevel 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gnuplot_plot_1a + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + 0.4 + + + + + + + + + 0.6 + + + + + + + + + 0.8 + + + + + + + + + 1 + + + + + + + + + + + 0 + + + + + + + + + 0.2 + + + + + + + + + 0.4 + + + + + + + + + 0.6 + + + + + + + + + 0.8 + + + + + + + + + 1 + + + + + x2 + + + + + + + + + + + + + + + + + + gnuplot_plot_1b + + + +; + + + + + + + -150 + + + + + -100 + + + + + -50 + + + + + 0 + + + + + 50 + + + + + 100 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/lecture_13/nohup.out b/lecture_13/nohup.out new file mode 100644 index 0000000..ee0677e --- /dev/null +++ b/lecture_13/nohup.out @@ -0,0 +1,2 @@ + +(evince:3288): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -71 and height 20 diff --git a/lecture_13/norm_A.png b/lecture_13/norm_A.png new file mode 100644 index 0000000000000000000000000000000000000000..5f2d273643730f70ae2a21b3cae05e9c229916fe GIT binary patch literal 24630 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 literal 0 HcmV?d00001