diff --git a/HW4/README.md b/HW4/README.md
index 7f04a9a..4a06ed0 100644
--- a/HW4/README.md
+++ b/HW4/README.md
@@ -1,4 +1,4 @@
-# Homework #3
+# Homework #4
## due 3/1/17 by 11:59pm
diff --git a/HW5/README.html b/HW5/README.html
new file mode 100644
index 0000000..96595a9
--- /dev/null
+++ b/HW5/README.html
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+Homework #5
+due 3/28/17 by 11:59pm
+Include all work as either an m-file script, m-file function, or example code included with ``` and document your code in the README.md file
+
+Create a new github repository called ‘linear_algebra’.
+
+Add rcc02007 and pez16103 as collaborators.
+Clone the repository to your computer.
+
+Create an LU-decomposition function called lu_tridiag.m
that takes 3 vectors as inputs and calculates the LU-decomposition of a tridiagonal matrix. The output should be 3 vectors, the diagonal of the Upper matrix, and the two off-diagonal vectors of the Lower and Upper matrices.
+[ud,uo,lo]=lu_tridiag(e,f,g);
+Use the output from lu_tridiag.m
to create a forward substitution and back-substitution function called solve_tridiag.m
that provides the solution of Ax=b given the vectors from the output of [ud,uo,lo]=lu_tridiag(e,f,g). Note: do not use the backslash solver \
, create an algebraic solution
+x=solve_tridiag(ud,uo,lo,b);
+Test your function on the matrices A3, A4, …, A10 generated with test_arrays.m
Solving for b=ones(N,1);
where N is the size of A. In your README.md
file, compare the norm of the error between your result and the result of AN.
+
+| size of A | norm(error) |
+|-----------|-------------|
+| 3 | ... |
+| 4 | ... |
+
+
+In the system shown above, determine the three differential equations for the position of masses 1, 2, and 3. Solve for the vibrational modes of the spring-mass system if k1=10 N/m, k2=k3=20 N/m, and k4=10 N/m. The masses are m1=1 kg, m2=2 kg and m3=4 kg. Determine the eigenvalues and natural frequencies.
+The curvature of a slender column subject to an axial load P (Fig. P13.10) can be modeled by
+
+\(\frac{d^{2}y}{dx^{2}} + p^{2} y = 0\)
+where \(p^{2} = \frac{P}{EI}\)
+where E = the modulus of elasticity, and I = the moment of inertia of the cross section about its neutral axis.
+This model can be converted into an eigenvalue problem by substituting a centered finite-difference approximation for the second derivative to give \(\frac{y_{i+1} − 2y_{i} + y_{i−1} }{\Delta x^{2}}+ p^{2} y_{i}\)
+where i = a node located at a position along the rod’s interior, and \(\Delta x\) = the spacing between nodes. This equation can be expressed as \(y_{i−1} − (2 − \Delta x^{2} p^{2} )y_{i} + y_{i+1} = 0\) Writing this equation for a series of interior nodes along the axis of the column yields a homogeneous system of equations. (See 13.10 for 4 interior-node example)
+Determine the eigenvalues for a 5-segment (4-interior nodes), 6-segment (5-interior nodes), and 10-segment (9-interior nodes). Using the modulus and moment of inertia of a pole for pole-vaulting ( http://people.bath.ac.uk/taf21/sports_whole.htm ) E=76E9 Pa, I=4E-8 m^4, and L= 5m.
+Include a table in the README.md
that shows the following results: What are the largest and smallest eigenvalues for the beam? How many eigenvalues are there?
+| # of segments | largest | smallest | # of eigenvalues |
+| --- | --- | --- | --- |
+| 5 | ... | ... | ... |
+| 6 | ... | ... | ... |
+| 10 | ... | ... | ... |
+If the segment length approaches 0, how many eigenvalues would there be?
+
+
diff --git a/HW5/README.md b/HW5/README.md
new file mode 100644
index 0000000..a8495ea
--- /dev/null
+++ b/HW5/README.md
@@ -0,0 +1,83 @@
+# Homework #5
+## due 3/28/17 by 11:59pm
+
+*Include all work as either an m-file script, m-file function, or example code included
+with \`\`\` and document your code in the README.md file*
+
+1. Create a new github repository called 'linear_algebra'.
+
+ a. Add rcc02007 and pez16103 as collaborators.
+
+ b. Clone the repository to your computer.
+
+2. Create an LU-decomposition function called `lu_tridiag.m` that takes 3 vectors as inputs
+and calculates the LU-decomposition of a tridiagonal matrix. The output should be 3
+vectors, the diagonal of the Upper matrix, and the two off-diagonal vectors of the Lower
+and Upper matrices.
+
+ ```[ud,uo,lo]=lu_tridiag(e,f,g);```
+
+3. Use the output from `lu_tridiag.m` to create a forward substitution and
+back-substitution function called `solve_tridiag.m` that provides the solution of
+Ax=b given the vectors from the output of [ud,uo,lo]=lu_tridiag(e,f,g). *Note: do not use
+the backslash solver `\`, create an algebraic solution*
+
+ ```x=solve_tridiag(ud,uo,lo,b);```
+
+4. Test your function on the matrices A3, A4, ..., A10 generated with `test_arrays.m`
+Solving for `b=ones(N,1);` where N is the size of A. In your `README.md` file, compare
+the norm of the error between your result and the result of AN\b.
+
+```
+| size of A | norm(error) |
+|-----------|-------------|
+| 3 | ... |
+| 4 | ... |
+```
+
+![Spring-mass system for analysis](spring_mass.png)
+
+5. In the system shown above, determine the three differential equations for the position
+of masses 1, 2, and 3. Solve for the vibrational modes of the spring-mass system if k1=10
+N/m, k2=k3=20 N/m, and k4=10 N/m. The masses are m1=1 kg, m2=2 kg and m3=4 kg. Determine
+the eigenvalues and natural frequencies.
+
+6. The curvature of a slender column subject to an axial load P (Fig. P13.10) can be
+modeled by
+
+$\frac{d^{2}y}{dx^{2}} + p^{2} y = 0$
+
+where $p^{2} = \frac{P}{EI}$
+
+where E = the modulus of elasticity, and I = the moment of inertia of the cross section
+about its neutral axis.
+
+This model can be converted into an eigenvalue problem by
+substituting a centered finite-difference approximation for the second derivative to give
+$\frac{y_{i+1} -2y_{i} + y_{i-1} }{\Delta x^{2}}+ p^{2} y_{i}$
+
+where i = a node located at a position along the rod’s interior, and $\Delta x$ = the
+spacing between nodes. This equation can be expressed as $y_{i-1} - (2 - \Delta x^{2}
+p^{2} )y_{i} y_{i+1} = 0$ Writing this equation for a series of interior nodes along the
+axis of the column yields a homogeneous system of equations. (See 13.10 for 4
+interior-node example)
+
+Determine the eigenvalues for a 5-segment (4-interior nodes), 6-segment (5-interior
+nodes), and 10-segment (9-interior nodes). Using the modulus and moment of inertia of a
+pole for pole-vaulting (
+[http://people.bath.ac.uk/taf21/sports_whole.htm](http://people.bath.ac.uk/taf21/sports_whole.htm))
+E=76E9 Pa, I=4E-8 m^4, and L= 5m.
+
+Include a table in the `README.md` that shows the following results:
+What are the largest and smallest eigenvalues for the beam? How many eigenvalues are
+there?
+
+```
+| # of segments | largest | smallest | # of eigenvalues |
+| --- | --- | --- | --- |
+| 5 | ... | ... | ... |
+| 6 | ... | ... | ... |
+| 10 | ... | ... | ... |
+```
+
+If the segment length ($\Delta x$) approaches 0, how many eigenvalues would there be?
diff --git a/HW5/README.pdf b/HW5/README.pdf
new file mode 100644
index 0000000..fdb31a3
Binary files /dev/null and b/HW5/README.pdf differ
diff --git a/HW5/lu_tridiag.m b/HW5/lu_tridiag.m
new file mode 100644
index 0000000..1339973
--- /dev/null
+++ b/HW5/lu_tridiag.m
@@ -0,0 +1,12 @@
+function [ud,uo,lo]=lu_tridiag(e,f,g);```
+ % lu_tridiag calculates the components for LU-decomposition of a tridiagonal matrix
+ % given its off-diagonal vectors, e and g
+ % and diagonal vector f
+ % the output is
+ % the diagonal of the Upper matrix, ud
+ % the off-diagonal of the Upper matrix, uo
+ % and the off-diagonal of the Lower matrix, lo
+ % note: the diagonal of the Lower matrix is all ones
+
+end
+
diff --git a/HW5/solve_tridiag.m b/HW5/solve_tridiag.m
new file mode 100644
index 0000000..0c9e510
--- /dev/null
+++ b/HW5/solve_tridiag.m
@@ -0,0 +1,11 @@
+function x=solve_tridiag(ud,uo,lo,b);```
+ % solve_tridiag solves Ax=b for x
+ % given
+ % the diagonal of the Upper matrix, ud
+ % the off-diagonal of the Upper matrix, uo
+ % the off-diagonal of the Lower matrix, lo
+ % the vector b
+ % note: the diagonal of the Lower matrix is all ones
+
+end
+
diff --git a/HW5/spring_mass.png b/HW5/spring_mass.png
new file mode 100644
index 0000000..274c049
Binary files /dev/null and b/HW5/spring_mass.png differ
diff --git a/HW5/spring_mass.svg b/HW5/spring_mass.svg
new file mode 100644
index 0000000..b854162
--- /dev/null
+++ b/HW5/spring_mass.svg
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+ x1
+ x2
+ x3
+
+
+
+
+ m1
+ m2
+ m3
+ k1
+ k2
+ k3
+ k4
+
+
diff --git a/HW5/test_arrays.m b/HW5/test_arrays.m
new file mode 100644
index 0000000..002d79c
--- /dev/null
+++ b/HW5/test_arrays.m
@@ -0,0 +1,8 @@
+rand("seed",1);
+
+for i = 3:10
+ e=sort(randi(6,[i-1,1]));
+ f=sort(randi(10,[i,1]));
+ g=sort(randi(9,[i-1,1]));
+ eval(['A',int2str(i),'=diag(f)+diag(e,-1)+diag(g,1);']);
+end
diff --git a/README.md b/README.md
index c7011f5..134beea 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# Computational Mechanics
## ME 3255 Spring 2017
### Github page: [https://github.uconn.edu/rcc02007/ME3255S2017.git]
+### Public (ipynb rendering)[https://github.com/cooperrc/ME3255S2017]
### Course Description
This course introduces students to scientific programming utilizing Matlab/Octave.
@@ -48,7 +49,7 @@ Jupiter notebook (with matlab or octave kernel)
### Note on Homework and online forms
-The Homeworks are graded based upon effort and completeness. The forms are not graded at
+The Homeworks are graded based upon effort, correctness, and completeness. The forms are not graded at
all, if they are completed you get credit. It is *your* responsibility to make sure your
answers are correct. Use the homeworks and forms as a study guide for the exams. In
general, I will not post homework solutions.
diff --git a/lecture_01/lecture_01.ipynb b/lecture_01/lecture_01.ipynb
new file mode 100644
index 0000000..307bc0c
--- /dev/null
+++ b/lecture_01/lecture_01.ipynb
@@ -0,0 +1,366 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Freefall Model\n",
+ "## Octave solution (will run same on Matlab)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%plot --format svg"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "set (0, \"defaultaxesfontname\", \"Helvetica\")\n",
+ "set (0, \"defaultaxesfontsize\", 18)\n",
+ "set (0, \"defaulttextfontname\", \"Helvetica\")\n",
+ "set (0, \"defaulttextfontsize\", 18) \n",
+ "set (0, \"defaultlinelinewidth\", 4)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Define time from 0 to 12 seconds"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "t =\n",
+ "\n",
+ " 0\n",
+ " 2\n",
+ " 4\n",
+ " 6\n",
+ " 8\n",
+ " 10\n",
+ " 12\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "t=[0,2,4,6,8,10,12]'"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Define constants and analytical solution (meters-kilogram-sec)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "v_analytical =\n",
+ "\n",
+ " 0.00000\n",
+ " 18.61630\n",
+ " 32.45521\n",
+ " 40.64183\n",
+ " 44.84646\n",
+ " 46.84974\n",
+ " 47.77002\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "c=0.25; m=60; g=9.81; v_terminal=sqrt(m*g/c);\n",
+ "\n",
+ "v_analytical = v_terminal*tanh(g*t/v_terminal)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "v_numerical =\n",
+ "\n",
+ " 0.00000\n",
+ " 19.62000\n",
+ " 36.03213\n",
+ " 44.83284\n",
+ " 47.70298\n",
+ " 48.35986\n",
+ " 48.49089\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "v_numerical=zeros(length(t),1);\n",
+ "for i=1:length(t)-1\n",
+ " v_numerical(i+1)=v_numerical(i)+(g-c/m*v_numerical(i)^2)*2;\n",
+ "end\n",
+ "v_numerical"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Display time, velocity (analytical) and velocity (numerical)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "time (s)|vel analytical (m/s)|vel numerical (m/s)\n",
+ "-----------------------------------------------\n",
+ " 0.0 | 0.00 | 0.00\n",
+ " 2.0 | 18.62 | 19.62\n",
+ " 4.0 | 32.46 | 36.03\n",
+ " 6.0 | 40.64 | 44.83\n",
+ " 8.0 | 44.85 | 47.70\n",
+ " 10.0 | 46.85 | 48.36\n",
+ " 12.0 | 47.77 | 48.49\n"
+ ]
+ }
+ ],
+ "source": [
+ "fprintf('time (s)|vel analytical (m/s)|vel numerical (m/s)\\n')\n",
+ "fprintf('-----------------------------------------------')\n",
+ "M=[t,v_analytical,v_numerical];\n",
+ "fprintf('%7.1f | %18.2f | %15.2f\\n',M(:,1:3)');"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "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\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\t2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t12 \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 \t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\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": [
+ "plot(t,v_analytical,'-',t,v_numerical,'o-')"
+ ]
+ }
+ ],
+ "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_02/lecture_02.ipynb b/lecture_02/lecture_02.ipynb
index 3e0a9e6..e34d82f 100644
--- a/lecture_02/lecture_02.ipynb
+++ b/lecture_02/lecture_02.ipynb
@@ -9,7 +9,7 @@
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 21,
"metadata": {
"collapsed": false
},
@@ -18,15 +18,12 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "ans =\n",
- "\n",
- " 1 2 3\n",
- "\n"
+ "ans = 14\r\n"
]
}
],
"source": [
- "[1,2,3]"
+ "[1,2,3]*[1;2;3]"
]
},
{
diff --git a/lecture_04/lecture_4.ipynb b/lecture_04/lecture_4.ipynb
new file mode 100644
index 0000000..7ba7af7
--- /dev/null
+++ b/lecture_04/lecture_4.ipynb
@@ -0,0 +1,913 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## When using the command prompt, anything in your path or working directory can be run either as a script, function or class (to define objects)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Questions from last class:\n",
+ "- I downloaded GitHub to my desktop but I cannot sign into my UConn account like I can online. \n",
+ "- I checked my grades on HuskyCt recently and I received a 0 / 100 for Homework 1.\n",
+ "- It is very hard to tell if what I'm doing on github is right or wrong.\n",
+ "- How often will be using our laptops during the lecture?\n",
+ "- How many frogs would it take to move a car that is stuck in the snow? And what would be the approximate cost to do so\n",
+ "\n",
+ "$m_{frog}$=22.7 g (https://en.wikipedia.org/wiki/Common_frog)\n",
+ "\n",
+ "$v_{frog}$=17 kph = 4.72 m/s (http://purelyfacts.com/question/14/is-a-toad-faster-than-a-frog?DDA=113&DDB=40)\n",
+ "\n",
+ "$m_{car}$=1000 kg (reasonable guess)\n",
+ "\n",
+ "conservation of momentum:\n",
+ "\n",
+ "$mv_{1} +mv_{2} = mv_{1}'+mv_{2}' = m_{total}v_{2}'$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "number_of_frogs =\n",
+ "\n",
+ " 5221\n"
+ ]
+ }
+ ],
+ "source": [
+ "number_of_frogs = 1;\n",
+ "v2=0;\n",
+ "while v2 < 0.5 % 0.5 m/s\n",
+ " m_frogs=number_of_frogs*22.7e-3;\n",
+ " number_of_frogs=number_of_frogs+1;\n",
+ " p1=(m_frogs)*4.72; % momentum 1\n",
+ " v2=p1/(m_frogs+1000); % p2=p1, so v2=p1/m_total\n",
+ "end\n",
+ "number_of_frogs\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "That seems better\n"
+ ]
+ }
+ ],
+ "source": [
+ "if 1==2\n",
+ " fprintf('I dont think so')\n",
+ "elseif 1==1\n",
+ " fprintf('That seems better')\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%myscript"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%plot --format svg"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "When using the GUI, your command history is saved, but it is better to save your work either as a script or a function or combination of both\n",
+ "\n",
+ "Creating a default graph script: `setdefaults.m`\n",
+ "\n",
+ "```matlab\n",
+ "set(0, 'defaultAxesFontSize', 16)\n",
+ "set(0,'defaultTextFontSize',14)\n",
+ "set(0,'defaultLineLineWidth',3)\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "set(0, 'defaultAxesFontSize', 16)\n",
+ "set(0,'defaultTextFontSize',14)\n",
+ "set(0,'defaultLineLineWidth',3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4QEaDxU0DlWpUAAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAyNi1KYW4tMjAxNyAxMDoyMTo1MlKFamEAACAA\nSURBVHic7d15XBTnwQfwx93lcpUgh8ry4eXwABUKEjHUxANMTEo0KsaPRpPq2horYjTWRCPGqFUT\nE5LUqBhrRDySagwV4xExiloNVU7jgScBSmFBOSzIuezy/vHY6XbZnd3Zc3b39/3rYWae2YeU7s95\n5jl6dHV1EQAAAGsTWLsBAAAAhCCQAACAJxBIAADACwgkAADgBQQSAADwAgIJAAB4AYEEAAC8gEAC\nAABeQCABAAAvIJAAAIAXEEgAAMALCCQAAOAFBBIAAPACAgkAAHgBgQQAALyAQAIAAF5AIAEAAC+I\njKksl8ubmprkcrlCoXBycnJycnJ3dxcIzBtyCoVCqVQSQgQCgVAo1L+iUqm8fPlyTU1NdXW1RCLx\n8fGJiYnRv7VGVgcAAHacA6miouKLL74oKCioq6tra2vrfoFYLO7bt+9vfvObmTNn9uvXz/gmyuXy\nnJyc+/fvX7t27erVq9XV1fT4lClTNm/erOdNDhw4kJqaWldXp3rQ29t70aJFs2bNMnd1AADQqUdX\nV5c+11VVVb377ruFhYUKhUL/u7u5ucXHxy9btszb29uw9p0+fXrx4sUaT+kfSEuWLDl16pS2s5Mm\nTUpJSTFfdQAA0IfuHqczZ86MGjUqNjY2Ly+PUxoRQlpbWzMyMp599tm4uLhffvnFgPZ1dnaqHeHU\nTUcI2bZtGxMnc+fOzczMvHr1amZm5htvvEEPHjt2LDU11UzVAQBAT2xPSGfOnFm5cmVTU5PacXd3\ndx8fnxEjRkyfPl0sFguFQoFAoFAoOjs7m5qatm3bVl5eXltb29raqlZRIpHs27fP399f//adPHly\n8+bNkZGRYWFhAwcOjImJ2bhx4+HDh4l+T0hlZWXx8fE0Rzdt2jRt2jTVs4cOHVqzZg0hRCgUZmVl\ndW+YkdUBAEB/mt8h1dTUvPrqqw8ePGCOCIXC4ODgzz//3M/Pr2fPnix33L17Ny3U19dfvXp106ZN\nFRUV9EhVVdXzzz//3HPPffnll05OTvq0Lz4+Pj4+Xq9fRZO0tDQaJzExMWpxQgiZMWPG8ePHc3Nz\nFQrFvn37kpOTTVsdAAD0p6HLrr29fcyYMUwa+fn5ffvtt8XFxcePHx80aBB7Gqny9PSMi4s7c+bM\njRs3PvroIy8vL3r80qVLo0ePNknr2SmVyuPHj9PyvHnzNF4jlUpp4ciRI3TwnqmqAwAAJ2zvkEaN\nGvXTTz9lZ2dHREQY8xlOTk5Tp07Nycn54Ycf/Pz8jLkVJ/n5+c3NzYQQkUikLQLHjh0rEokIIU1N\nTdevXzdhdQAA4ERzIEVGRl65cmXPnj0Gj47TKDg4ODs7+/jx46a9rTa3b9+mhbCwMG0ThoRCYXh4\nuNr1JqkOAACcaPiedXFxOXTokIeHh5k+ctCgQUxXmFndvHmTFtgfyyQSCS2oPeIYWR0AADix54UG\nmPGB7u7uLJcxZ9XGExpZHQAAOLHnQJLL5bQQEBDAcllQUBAtdHR0mLA6AAB/pOfJrN0E3ew5kJhJ\ntb1792a5TCwW04LaMDkjqwMA8ER6nkx68FZsamFZvYb13vjDqMVVwTAhISHWbgIAOAq5m1fp+A2E\nkPMlj4I25rhX/OPnL/8Y6Olq7XZpYM+BRAdkE11vd5izakPpjKzO7s6dO/pfDKAqJCQEfz+gv9jU\nwtKSR8yPjf6/lh4s3jNzKA8zycBAkslkdM3v5ubm9vb27ivOqREIBIWFhYZ9lsGYxSDKy8tZLmPO\nOjs7m7A6AIDVpefJzqukEXW+5FFZQ6s9BFJNTU1CQkJtbS2nWlxXRDUJ5t1PY2Mjy2XMWbV3RUZW\nBwCwrrL6NunBW92Pn0scPm5AH8u3RydugxqKiorGjBnDNY2sZdiwYbTALKanUWVlJS0wU1xNUh0A\nwLqkB4u7H3Sv+Ac/04hwfUKaPXv2f2uKRMHBwVOmTImKimJet/BKaGgoLRQXFysUCo1PaQqF4saN\nG2rXm6Q6gJngBRLoQ2NnHSHE/V+XLd8YPXEIkpycHGY/pMTExCVLlpinSSYzYsQIsVjc3Nzc2dl5\n9uzZCRMmdL/m7Nmz9AWYu7u72pJ9RlYHALAibZ11C47ftXxj9MShy+6TTz6hhZiYGP6nESFEIBC8\n8sortJyenq7xmrS0NFpISEgwbXUAAGuJTdUwiGzcAA/edtZRHAKJLn1NCNmwYYN5GmN6UqmUdrUV\nFBTs27dP7eyBAweKiooIISKRaM6cOSavDgBgedo66z54McjyjeGEQ5cd86LIzc3NPI3RbPny5W1t\n/51dXFz85DVdbm5uUlISc1woFG7ZskWtbkBAQFJSEj2+cePGu3fvJiQkhIaGFhcXZ2Zm0p1nCSFJ\nSUnMGqkmrA4AYHm2NbJOFYdAGjlyZElJCbH4om3Z2dnMw5mqqqqqqqoq5kdt04ASExPLy8szMzMJ\nIYcPH2ZShDFt2rSFCxdq+3QjqwMAWJKNdtZRHLrs3nzzTVq4ePGieRpjLps3b16/fn3//v3Vjksk\nkk2bNm3atMms1QEALMN2O+uoHl1dXfpfPXbs2OrqarFYbPllF+wJln4BAHPo8cfs7gfVOuv4/P3D\nbWLsiRMnCCHNzc2qL28AAMDqbLqzjuIWSL169aKZ9OOPP44aNernn3/GngsAAFZn6511FLcuO0qp\nVL766qvMDt99+vRxcXFhryIQCM6dO2dIA+0Rnx+ZAcAW6dNZR/H5+4fzkj/t7e0zZ85kxl4TQhoa\nGnTWssriqgAAjsAOOusoboH08OHD5557zkxNAQAAruyjs47iFkjx8fGqP0okEg8PD2dnZ50PQJw2\nrwMAAH3Y3AYT7DgE0q1bt5i9f6ZPn/7+++/rfHUEAADmo3GDCVvsrKM4BFJycjItDB482IaWswMA\nsEv21FlHcehJa2lpoYWtW7eapzEAAKAXO+usozgEEvMeqFevXuZpDAAA6EVjZ93caF/bTSPCKZD8\n/PxoQS6Xm6cxAACgm7bOujnR6ktu2hYOgbR69WpaoJsAAQCA5dllZx3FIZACAgLc3d0JIevXrzdb\newAAgI1ddtZR3KYH0d2AGhoaVq1aZZ72AACAVvbaWUdxC6TAwMBvv/2WEJKRkREfH6+6Px4AAJjV\n+ZIGe+2sozjMQ5LJZFKplBASEBBQXl5eUlISGxvr6urq5eWlbbdWhkAgOHnypFEtBQBwbOuySrsf\ntI/OOorb0kGlper/Odra2iorK3VWxOKqAADGiE0t1DwNdoKtToPtDkvMAQDwnbZXR+cShwd6ulq+\nPWbC7QkpNDTUsI/B4qoAAAbbmyfrftCeOusoDoHk6+t79OhR8zUFAAC609ZZt2fmEMs3xqzw4AIA\nwF8snXWWb4y5IZAAAPhL4zhv++usoxBIAAA8pXFv8kBPV/vrrKMQSAAAfKSts85e04hoC6RHjzT8\nVzChiooKs94fAMCmaVtB1V476ygNgdTe3v7MM88sWbKE2ZHPhGpqauLj46dPn27yOwMA2A1te5Pb\n8eMRYemyO3Xq1PDhw9966636+nqTfNIvv/wSFxc3ZsyYkpISk9wQAMAuSQ/esrO9yfWkIZBcXFyC\ngp782llZWb/+9a/j4uLOnDnT2tpqwAfU19dv2bJlxIgRv/nNb5hFhkaOHGlwiwEA7Fh6nixd0zRY\nu1lBlYXmibGnTp3Kzs5+++2329raCCGVlZWLFi0ihPTv3z8mJmbBggXe3t50bySNamtr6+rq1qxZ\nU1FRUVdXp3qqf//+Bw8e9PX1NelvAQBgJxxkUQaNenR1dbGc3rdv3+bNmzs7O7ufEgqFYrG4V69e\nQqFQJBJ1dHQoFIqmpqbm5maNt/Ly8tq+ffvw4XY4mYurkJCQO3fuWLsVAMA72hZlKE0eZao16/j8\n/aMjkKjTp0//6U9/evDggWGf4e/v/9VXXwUGBhpW3f7w+Q8CAKwlPU9mge2O+Pz9o9dadhMmTJgw\nYUJtbW16evqRI0dqa2v1qeXn5zd//vzJkyf37NnTuEYCANg5xxznrUavJyQ1ra2tDx48KCws3L9/\n/+PHjzs7OxUKhVAodHZ2fuqpp5YtW+bv79+vXz/sgaQNn/+FAgBWobGzLtDTtTR5lGk/iM/fP9y2\nn6Dc3NwCAgICAgKmTp1q8gYBADgaB1yUQSMsHQQAYE3aOuvWTghynM46CoEEAGBNGhdlmBvta/fT\nYLtDIAEAWI22cd5zovtbvjFWh0ACALAOls33HK2zjkIgAQBYAcZ5d4dAAgCwAo2vjux48z19IJAA\nACxtXVYpxnl3h0ACALCo9DzZ2tOl3Y/vmTnEYTvrKAQSAIBFaVvPe260o2+DgEACALAcjPNmgUAC\nALAQjPNmh0ACALAEjPPWCYEEAGAJGOetEwIJAMDstL06QhqpQiABAJgXXh3piUMgyWSyyZMnT548\n+ZdfftG/1oIFCyZPnoydkwDAMeHVkf64bdB3+/Ztrh9w+/bt6upq7B4LAI4Jr470hy47AABzwasj\nThBIAABmwbIxOTrrNDJ7ICmVSkJIjx49zP1BAAC8ou3VEZYI0sbsgdTY2EgIcXFxMfcHAQDwR2xq\nocbjH0xwuI3J9WfeQNq7d29bWxshxMPDw6wfBADAH9KDt7SN8w70dLV8e2wF2yi72NhY2uGmRiqV\n6rxvZ2dnQ0ODQqGgP7722muGtQ8AwLak58nStaznjVdH7NgCqaamhkkUVdXV1Vw/Zv78+VyrAADY\nIm2vjjCyTiezv0Py9vbOy8sz96cAAPCBtldH2F1CH2xPSFFRUWpddgUFBYSQp59+Wud9x44dO2bM\nGB8fH29vbyObCABgE1heHaGzTh9sgXTgwAHVH2Uy2bhx4wghGzZsCA4ONmuzAABsC14dGY/b0kFY\nAQgAQCO8OjIeh0Dy9fUtLtawKBMAgIPDqyOTwNJBAABG0bZgHV4dcYVAAgAwnLYF6/DqyADc3iGp\nefToUUtLS0dHh8b5s2owDgIA7ElZfRvBqyOTMiSQZDLZm2++WVJSonHarEZCoRDvnwDAnmjc6IjC\nqyPDcA6kNWvWHDp0yBxNAQCwFdreGxG8OjICt3dIKSkpSCMAcHDa3hsRQtZOCEIaGYzDE1JLS8uu\nXbuYH8ePH//ee+95e3s7OztjfhIAOIiy+jaN740IIXOjfT94EbtLGI5DIP3www9M+fvvvw8JCTFD\newAAeI3l1REGMhiJQ5ddeno6Lfz+979HGgGAA2J/dWThxtgfDoHU3t5OC7NnzzZPYwAA+GtdVikG\nMpgVh0ASiZ707zk7O5unMQAAPJWeJ1t7ulTjKcyBNRUOgRQaGkoLHR0d5mkMAABPaRvIEOjpildH\npsIhkJYvX04LZ86cMU9jAAD4SNvaqQQDGUyKQyBJJJK+ffsSQv785z+brT0AAPzCsnYqXh2ZFreJ\nsVlZWYSQ5uZm5mkJAMCOsa+dijQyLW6B1LNnT5pJx44di4uLq6qqMk+rAACsT9scWKydaiYcJsbK\nZDKpVEoICQoKKi0traysjI2NdXZ29vHx0TnuTiAQnDx50qiWAgBYlrY5sB9MwHIMZsFtcdXSUvVR\njx0dHZWVlTorYm0hALAtLK+OAj1dLd8eR4AN+gAA1EkP3sImsJbH7QmJmYrElUCA5AMA25CeJ0vP\nk3U/jgmw5sYhkHx9fY8ePWq+pgAAWJ22gQyYAGsBeHABAPgvbQMZkEYWgEACAHiCZSADOussAIEE\nAECI9oEMe2YOQRpZBgIJAIBtIMPcaF/Lt8cxcRtlp+b+/fvJyckNDQ1yuVypVA4cOHD37t2mahkA\ngGVgIANPGBhIa9eu/etf/6p2sHfv3mpHoqKimpubCSFXrlzx8PAw7LMAAMwKAxl4gnOXnVKpjIqK\n6p5GGi1btowWduzYwfWDAAAsAAMZ+INzIIWHh9OHHkKIUCgMCAiIjIzUdvG0adNo4fjx44a1DwDA\nfLSlEQYyWAW3LrvExMTOzk5aXrVq1Zw5c2g5MjKytbW1+/Vubm5+fn6VlZW1tbVyudzJycnI5gIA\nmArL1hIYyGAVHJ6QHj9+fPbsWVr+6quvmDRiFxT0ZFnchw8fcm0cAICZpOfJMJCBbzgEUm5uLi2M\nHz9+9OjRetZiXiM1NDRwahkAgJloG1ZHMJDBqjgE0tatW2nhvffe07+WWCymhfb2dv1rAQCYj7Zh\ndRjIYF0cAol5S9SnjyH/g6WnpxtQCwDAtDCsjrfMvlIDE2OzZ88292cBALDTtj4QtpbgAw6B5Obm\nRgtNTU3610pJSaEFTIwFAOtiWR8Ir474gEMgTZkyhRYyMzP1r1VUVEQLPj4++tcCADCt8yUNGFbH\ncxwC6aWXXqKFL7/8Us8qGRkZdBatm5ubp6cn18YBAJgEhtXZBA6B1K9fP29vb0JIW1vbggULdF6f\nn5+/atUqWp43b55h7QMAMJ70YHFZfVv34xjIwCvcBjWkpqbSwvnz55999tn79+9rvKy9vX3jxo3M\nKAaRSPTWW28Z00oAAINhfSBbwW3poIiIiHnz5qWlpRFCamtrX375ZTc3N29vbzqU7t69e1OnTq2v\nr6+urlatdfDgQRO2GABAfyzD6rA+EN9w3n5ixYoVQqFw165d9MfW1taKigrmbHGx+nSzPXv2hIeH\nG9NEAADDYFidbTFkHtLy5ct/+OEH+j6JxeDBgwsKCkaNGmVQwwAAjILV6myOgRv0BQcH//TTTzKZ\n7PDhw99///3jx49pr52zs3Pv3r0nT548e/ZsnYkFAGAmGFZni3p0dXVZuw0OJyQk5M6dO9ZuBYA9\nw/pA2vD5+8fsSwcBAFgY0shGIZAAwK5oSyOsVsd/CCQAsB8sg7zx6oj/EEgAYCe0DfLGsDpbYeAo\nO5lM9sUXXxQUFDQ3N7e3t3d2drJfLxAICgsLDfssAACdtA3yJoScWxhl4caAYTgHUk1NTUJCQm1t\nLadaQqGQ6wcBAOiJZZD3ucThgZ6uFm4PGIZbl11RUdGYMWO4phEAgFlhS3L7wO0JSXXXV5FIFBwc\nPGXKlKioKJHIwK4/AAAjYe1Uu8EhSHJychQKBS0nJiYuWbLEPE0CANCXtjRaOyEIa6faHA5ddp98\n8gktxMTEII0AwOpYphx98GKQ5dsDRuIQSHTvV0LIhg0bzNMYAAB9rcsq1ZhG4wZ4YJC3jeIQSMyL\nIjc3N/M0BgBAL+l5srWnS7sfD/R03TNzqOXbAybBIZBGjhxJCx0dHeZpDACAbixTjvbMHIJB3raL\nw6CGN998869//Ssh5OLFizNmzDBbk0xJqVQyAzFYCIVCgUBHNiuVysuXL9fU1FRXV0skEh8fn5iY\nGJ21AMC02KccYVidTeMQSBKJpH///tXV1Zs3b7aVQDp27Ni7776r87Lt27c///zzLBccOHAgNTW1\nrq5O9aC3t/eiRYtmzZplbCsBQD9l9W2xOzSv+YI0sgPc/oF/4sQJQkhzc3NSUpJ52sNHS5Ys+dOf\n/qSWRoSQ2tradevWLV++3CqtAnBA0oPFZfVt3Y9jypF94DahtVevXidOnHj55Zd//PHHUaNG7dix\nIzw83Ca6rQICAsLCwrSd7devn7ZT27ZtO3XqFC3PnTt3ypQpgYGBZWVlGRkZ+/fvJ4QcO3YsODg4\nMTHR5G0GAFWYcmT3DNkxVqlUvvrqqzdv3qQ/9unTx8XFhb2KQCA4d+6cIQ00ztGjR2mX3ezZs9es\nWcO1ellZWXx8PH0LtWnTpmnTpqmePXToEL2nUCjMysry9/fX87Z83rERgJ9YphxhkDcnfP7+4bzk\nT3t7+8yZM4uL/7tyVENDg85aNrq4alpaGk2jmJgYtTQihMyYMeP48eO5ubkKhWLfvn3JycnWaCOA\n/UMaOQhuvW0PHz781a9+pZpGdkypVB4/fpyW582bp/EaqVRKC0eOHFEqlRZqGYAj0bbnHnY5sj/c\nnpDi4+NVf5RIJB4eHs7OzjofgGziPZOa/Px8ujiFSCQaPXq0xmvGjh0rEok6OzubmpquX78eERFh\n2TYC2Ll1WaXa9tzDLkf2h0Mg3bp1q7GxkZanT5/+/vvv63x1ZNNu375NC2FhYdoCVSgUhoeHFxUV\n0esRSAAmpG05BoIJsHaKQyAx70gGDx5sc8vZFRcXL1u2rLi4uK6urnfv3kOHDh06dOikSZNYRiIw\nozb8/PxY7iyRSGggXb9+3VamZwHwH9sOsJhyZKc4BFJLSwstbN261TyNMaOioiIaG4SQxsbGysrK\nH3/8ccuWLdOmTVu5cqW7u3v3Kk1NTbSg8SyDOctcDwBGOl/SgDRyQBxe7TDdVr169TJPY8xLLBYP\nHTrUy8vL2dmZOZiRkTFz5sz6+vru18vlcloICAhguW1Q0JNV7rHEH4BJlNW3xaYWaTyFNLJvHJ6Q\n/Pz8SkpKiMo3Nf8JhcKEhITx48ePHTvWycmJHlQqlfn5+Vu3bs3NzSWElJSUvP3223v37lWr29nZ\nSQu9e/dm+QixWMzc1sStB3A8LIsDYTkGu8chkFavXj1hwgRCSFFRka+vbcyLnjhx4sSJE9UOCgSC\nkSNH7t+/f8OGDXS1hcuXL2dnZ8fFxVmsYSEhIUyZt5PUACxP2+JAWI7BGKpfOHzGocsuICCAvi9Z\nv3692dpjUatXrx469MnWKYcPH1Y7y+z/xP5yiDnLaWj7HRX61wKwb9gB1kxs5QuH2/Qg+q3d0NCw\natUq87TH0l5//XVayMnJUTvFdPGVl5ez3IE5q/pqCgC4wnIMwC2QAgMDv/32W0JIRkZGfHx8VVWV\neVplOcyKq21tbWo7JzGvjpjZVxoxZ9lfNQEAC21phP3IHQqHd0gymYyulBMQEFBeXl5SUhIbG+vq\n6qo2bk0jgUBw8uRJo1pqHj4+PkxZqVSqLjkxbNiwzMxMQkhFRQXLHSorK2khPDzcPG0EsHMsaXQu\nEcsxOBBuSweVlqrPmm5ra2O+kVnwdnHV69ev04JQKFRrZGhoKC0UFxcrFAqNv4JCobhx44ba9QCg\nP21pFOjpumfmUMu3B6zI9paYM63CwicDTCUSidqohBEjRtAh3Z2dnWfPntVY/ezZs3R0uLu7O9YN\nAuCKJY3OLYzC4kCOhtsTksEPAfxcXFUmk9Fh34SQ2NhYtbMCgeCVV17561//SghJT0+nQ97VpKWl\n0UJCQoI5Wwpgh7Qt402wVJ2j4hBIvr6+R48eNV9TTO7KlSvV1dWTJk3SGIf37t178803mfW8f/vb\n33a/RiqVfvvttwqFoqCgYN++fWrXHDhwgC5HJBKJ5syZY55fAsA+SQ/e0riMN8FyDA6M8wZ9NqSi\noiI5OXndunXjxo2LiIjw8/NzcnJSKpV1dXVnz57Nzs5mrlyxYoXGVVYDAgKSkpK2bNlCCNm4cePd\nu3cTEhJCQ0OLi4szMzOZqUtJSUkSicQyvxSAHdC2qQRBGjk2ew4kqrm5+cSJEydOnNB4VigUrly5\nUuPjEZWYmFheXk6H2x0+fLj7/Nlp06YtXLjQhA0GsG/rskq1bSqBNHJw9hxIw4YNe/HFFy9cuNDW\npmElEpFINHny5Hnz5g0cOJD9Pps3b46KikpNTa2urlY9LpFIkpKSum9tDgDaII2ARY+uri5rt8Hh\nhISE8HwBDwBzwBZHfMDn7x+jnpDu37+fnJzc0NAgl8uVSuXAgQN3795tqpYBgD1BGoFOBgbS2rVr\n6XhoVd3XzomKiqLD2K5cueLh4WHYZwGArUMagT44Tw9SKpVRUVHd00ijZcuW0cKOHTu4fhAA2AeW\nNMIWR6CKcyCFh4fThx5CiFAoDAgIiIyM1HYx88L/+PHjhrUPAGwaexphiyNQxa3LLjExkdlHddWq\nVcxs0MjIyNbW1u7Xu7m5+fn5VVZW1tbWyuVyZkMHAHAESCPghMMT0uPHj5kl3b766is91yYICnqy\nrdbDhw+5Ng4AbBdLGmH7V9CIQyDl5ubSwvjx40ePHq1nLeY1UkNDA6eWAYDtYk8jbP8KGnEIpK1b\nt9LCe++9p38tumA2IaS9vV3/WgBgu5BGYBgOgcS8JerTx5BRMenp6QbUAgDbgjQCg5l9VwgmxmbP\nnm3uzwIA60IagTE4BJKbmxstNDU16V8rJSWFFjAxFsC+IY3ASBwCacqUKbRAl77WE90xiBDi4+Oj\nfy0AsC1IIzAeh0B66aWXaOHLL7/Us0pGRgadRevm5ubp6cm1cQBgE5BGYBIcAqlfv37e3t6EkLa2\ntgULFui8Pj8/f9WqVbQ8b948w9oHADy3LqsUaQQmwW1QQ2pqKi2cP3/+2WefvX//vsbL2tvbN27c\nyIxiEIlEb731ljGtBAB+YtnfCGkEXHFbOigiImLevHlpaWmEkNra2pdfftnNzc3b25sOpbt3797U\nqVPr6+vVNrI7ePCgCVsMADyBNALT4rz9xIoVK4RC4a5du+iPra2tFRUVzNni4mK16/fs2RMeHm5M\nEwGAh5BGYHKGzENavnz5Dz/8QN8nsRg8eHBBQcGoUaMMahgA8Jf04C1tabRn5hCkERjGwA36goOD\nf/rpJ5lMdvjw4e+///7x48e0187Z2bl3796TJ0+ePXu2zsQCAFskPXgrPU+m8RTW8AZj9Ojq6rJ2\nGxwOn/e0B2CHNLJ1fP7+MfAJCQAcUGxq4fmSRxpPIY3AeAgkANALSxqdSxyOncjBeJwDSaFQ0IJQ\nKDTtxQDAW0gjsABuo+ymT58+dOjQoUOHXrhwQZ/rV61aRa/PyMgwqHkAYH1II7AMDoEkl8uvXbtG\nCBGLxXFxcfpUef/992nh008/NaBxAGB1SCOwGA6BVF5eTgvjx4/Xs0qvXr0kEgkhpK6urqWlhWvj\nAMCKyurbgjbmII3AYjgE0oEDB2hh4cKF+td69tlnaeHBgwf61wIA6zpf0hC7o7Csvk3jWaQRmAOH\nQGJ2NuK0kcScOXNooaGhQf9aAGBF50saYlOLNKZRoKcr0gjMhEMgtbe304KLEo0zNwAAIABJREFU\ni4v+tZydnWnh6tWr+tcCAGtJz5PFphZpPBXo6XpuYRTSCMyEQyAJBE8uZgZz64O5uLGxUf9aAGAV\nLJsbjRvgcW5hVKCnq4WbBI6DwzwksVhMCw0NDb169dKz1rFjx2hBz4F5AGAtLMsCjRvgcS4xysLt\nAUfD4QlJKpXSwieffKJ/re+++44WvLy89K8FABbGkkZzo32RRmABHJ6QYmJiaCErK6uxsdHd3V1n\nlQsXLjCD6+j4bwDgIZbJRtjcCCyGwxOSp6dn//79aTk6OlrnvKLCwsI333yTll944QXD2gcA5sa+\nZCrSCCyG29JBX375JVMePnz47t27NQ5waGxsXLNmzWuvvcYcwUoNADxUVt+GBbyBPzjvh7R+/fqv\nv/5a9Ujfvn09PT3d3Ny6urpaWloePnyoNuXo888/j4+PN0Fj7QWf9yMBx3G+pEF68BamvjoaPn//\ncF7te82aNUKhcN++fcyRBw8esKzC8PHHHyONAPgmPU+mbXg3QRqBlXDrsqOSk5P37dvXp4+Ov9dB\ngwZduXJl8uTJBjUMAMyFZbIRQRqB9Ri4Qd8zzzxz+fLlioqKnTt35uTkNDU1dXR09OjRo2fPnr16\n9ZoxY8bUqVM5rTAEAJbBPtloz8yhmPoK1mLUjrH+/v4bNmwwVVMAwNxYhjBg6itYnSFddgBgi9gn\nGyGNwOqMekICAJvAPqAOw7uBJxBIAHaO7iWh7SzSCPgDgQRgz9Zlla49XartLAbUAa8YFUgKhaK2\ntratrU2fDSmCg4ON+SwA4IplQF2gp+uemUOQRsArBgbSoUOHtm3bpv+u5EKhsLi42LDPAgADsA+o\nw/Bu4CHOgVRfXz9hwoSmpiZztAYAjMc+hAGrdwNvcQuk9vb2X//612ZqCgAYj31NIAxhAD7jNg9p\nzpw5TDkhIeHSpUs3btzw8/MjhHh7e9+5c+fatWuXLl366KOPmN2SZs+efefOHfTXAViA9OAt9jWB\nkEbAZxwCqbGxsajoyeDRTz/99MMPP/Tx8XFyclK9xsXFxcfHZ+rUqXl5eUuWLCGEfP311wsXLjRh\niwFAo9jUQm1DGAgG1IEt4BBIP//8My34+/tPnDhR5/WJiYnvvvsuISQ7O/ubb74xrH0AoBP7tkbj\nBniUJo9CGgH/cQikL774gha2bNmiZ5Xf/e533t7ehJCPP/6Ya8sAQB/nSxpid+hYEwgD6sAmcAgk\nZmSdr6+GbmhtU5Hmzp1LCGltba2pqeHcOgBgtS6rNDa1iGVNIAyoAxvCIZCUSiUtuLr+z7+2BAIB\nIaStTfP/JV544QVaqK2tNaSBAKBFbGoh+yoMGMIAtoVDILm4uNACk0yUs7MzIaS1tVXtOCUUCmnh\n1i2tg38AgBP2l0aBnq4YwgC2iEMgicViWlB7GBo0aBAtPHz4sHstZiiE2nMVABgmPU8WtDGHbVuj\nhVFII7BFHAIpOTmZFurq6lSPL168mBbS09O71/rkk09oISgIfdkAxmKfaYQhDGDTOAQSM5YhJSVF\n9bi/vz8tpKWlFRYWqp7auHFjdXW12mUAYBidM40whAFsGoelg7y9vV1dXdva2i5fvqx63MXFJS4u\nLjs7mxDy2muv+fn5+fj4yOXyioqKxsZGeo2/vz+zdgMAcMW+PB2W7gb7wG3poGeffZYQ0tHRcebM\nGdXj27dvZ8qVlZVXr169efMmk0aEkO+//964dgI4LunBWyxju+dG+2LeK9gHbourpqamlpeXdz8u\nEAgKCgpiY2NVQ4gSi8XHjx/v2bOn4W0EcGAso+kIFksF+8J5+4mAgACNx3v16pWXl3fv3r3ly5c3\nNTUJBAKxWPzxxx+HhIQY3UgAR8TeTUewPB3YHRNvYT5o0KCjR4+a9p4ADoh963HssAd2ycSBBADG\nY++mww57YK8QSAA8gm46cGQIJAC+kB68xTLNCN10YPcQSADWV1bfJj1YjG46cHAaAqmlpYVZottU\nBALBxYsXTXtPAPvAPn6BYGw3OAzNT0gm3yqCWfMbAFShmw6AgS47AOvQOX4B3XTgaDQH0siRI037\nMXQTPwCg2B+MCEbTgUPSEEg9e/bcv3+/5ZsC4Ah0Phihmw4cFrrsACxH54MRxi+AI0MgAViCzoHd\n2EICAIEEYHY6B3Zj/AIAMT6QGhsbGxoaGhsb5XJ5jx49XF1dn3rqKS8vLxcXF5O0D8DWsS9MRzB+\nAeA/DAwkhUKxffv2b775pqGhQeMFEonkj3/848SJE41oG4Bt0/lgNDfa94MJQRi/AED16Orq4lrn\n6NGj7777rj5Xurm5HT58eNCgQdwbZs9CQkLu3Llj7VaAGel8Y0QwfgGshM/fP5ynB6WkpOiZRoSQ\n1tbWiRMnnj59muunANiudVmlQRtzWNKIbjqONAJQw63L7siRI7t27WJ+9PPzW716dXh4uIeHh5OT\nk1KplMvldXV1WVlZu3btqquro5ctXrz40qVLPj4+pmw4AP+cL2lYl1WKByMAw3Drshs6dKhCoaDl\nzMzMIUOGsFx87Nix5cuX03Lfvn2xuCqDz4/MYDCdc4ww4xX4gM/fPxyekHJzc5k0unHjhpOTE/v1\nkyZN8vLykkqlhJAHDx7U19d7enoa3FAA3krPk607Xcqy+ALBgxGAHjgE0kcffUQLK1eu1JlG1KhR\nowYMGFBSUkIIkclkCCSwPzofjDCUDkBPHAY1tLS00MLUqVP1r7VhwwZa+P777/WvBcB/6XmyoI05\nOpcC2jNzCNIIQB8cnpCYFbvFYrH+tfr3708Lo0eP1r8WAJ/pM3gBD0YAXHEIJC8vL9r51t7ermeX\nHVF5rmKSCcCm6eyjI3hjBGAQDl12f/rTn2jh5s2b+tf69NNPacHPz0//WgA8pE8fHeYYARiMwxNS\nYGCgm5tba2trUlJSXl6ePlVaWlqys7MJIcOHD3dzczOwjQDWpk8f3bgBHh+8GIRV6QAMxm2lhr17\n9xJCGhsbZ82apfPixsbG4cOH0/LXX39tQOMA+EB68FZsapHO6a7nEqOQRgDG4BZIERERf/nLXwgh\nBQUFISEhO3bsYF4RqXr48OE777wTHR1NCHF1df3pp5+EQqFJmgtgSXQRIPTRAVgGh5UaZDIZneXa\n3t5eVVXFHBeLxR4eHiKRSKlUKhSK2trajo4O5mxQENsuL0FBQTt27DCo5TaMzzOlgdJnrivB4AWw\nQXz+/uG2ll1pqYa19Jubm5ubmzlVAeAtfV4XEUQRgBlgx1iA/9JnSDcmGAGYCbdACg0NNe3HBwYG\nmvaGAIbRJ4oIHowAzIlDIPn6+h49etR8TQGwCrwuAuAJdNmB49IzitBHB2AZCCRwRHpGEea6AlgS\nAgkcS3qebG+eTOcgOoI+OgCLQyCBo9BzPDdBFAFYiekDqba2tqampr29XSwW+/v79+zZ0+QfAcDJ\n+ZKGvXnV+gyiWzshaE60L14XAVgFt0C6desWLQwZMkTjBdOnT7927ZrqkTfeeGP16tWGNQ7ASPpH\nEUYuAFgdt0CaOXNmW1sbIaSoqKj7o09cXFxlZaXawf379z948OCLL74wppUAXOn/rghRBMATHAKp\npqaGppHGjrhvvvlGNY2cnZ2ZFe2ysrIKCwujoqKMbi2AbogiABvFIZCqq6tpYdmyZd3Pfv7557Tg\n5eV16tQpd3f39vb2d955JysrixDyxz/+8dy5c0a3FoCNnoO5CSFzo33nRPfHeG4AXuEQSB9++CEt\nREZGqp2qra1tbGyk5aNHj7q7uxNCXFxcvvjii8jIyNbW1qqqqsePH/fq1csUbQZQhygCsAMcAunx\n48e0QPNG1cWLF2nB29vbx8dH9dTEiRMPHz5MCKmtrUUggclJD946X9KgTxSNG+AxJ9oX47kBeItD\nIHV2dtKCi4uL2qndu3fTwowZM9ROzZkzhwbSv//9bwPbCKCJnsuhEkLmRvuOHeCBKALgOUPmIXV2\ndjo5OakeYfbrmzp1qtrFrq5P3hhfvXo1IiLCgI8DUJWeJ7tQ8kj/KEIHHYCt4BBITAg9fvzYzc2N\nOV5fX89s0Ne/f39t1cVisUEtBHhC/xdFBCPoAGwQh0B64YUX7t69Swi5cuXKxIkTmeOHDh2ihf79\n+6s9ORFCWlpaaGHAgAFGtRQcVVl927rTpXq+KCKIIgCbxSGQXn311e3btxNC1q5dqxpIqamptBAf\nH9+91s6dO2mhTx90mwA3nB6JCKIIwMZxCCSJRCIWi5ubm5uamqKjozdu3PjUU08tW7aMmQA7f/78\n7rUKCgpowdPT0/jmgiPg+khECNkzc8i4AX0QRQA2jdughs8///zNN98khDQ2Ni5evFj11Pjx47tH\nTktLC51O6+rq2n2wOIAaAx6JMHwOwG5wC6SxY8cmJiYyfXSMQYMGdT9ICNm7dy8t+Pn5GdY+cASc\nBs5R6J0DsD89urq6uNaRyWRr1qy5e/euUqkUi8XLli2bMGGCxisjIyNph95f/vKX5557ztjG2ouQ\nkJA7d+5YuxXWR5fi5tQ1R7BDBIBx+Pz9Y0gggZH4/AdhGeuyStPzZZxyCL1zACbB5+8f7BgLlsP1\nFRGF3jkAB4FAArMzOIfwSATgUBBIYBZl9W1782Rc++UovCUCcEwIJDAlOl6O6zgFCo9EAA5OQyC1\ntLS88MILzI/Z2dl0eW+ZTPbqq68a9jECgYDZogLsj/E5hGmtAKD5Cam2tpbTcZ2EQqFhFflDqVRe\nvny5pqamurpaIpH4+PjExMQIBAJrt8tq0vNk5fVthnXKkf/sToQcAgAGuuz0cuDAgdTU1Lq6OtWD\n3t7eixYtmjVrlrVaZXk0hM6XNJwveWTYHcYN8Bg3oA9eEQFAd5oDaeTIkZyO62TTTxJLliw5depU\n9+O1tbXr1q0rLCxMSUmxfKsshgmhsoY2wx6GCHIIAPSAibE6bNu2bevWrbQ8d+7cKVOmBAYGlpWV\nZWRk7N+/nx5fsmRJYmKi/vfk88Q0ysjuOAbeDwHwDZ+/fxBIbMrKyuLj4xUKBSFk06ZN06ZNUz17\n6NChNWvWEEKEQmFWVpa/v7+et+XhH4RJHoMYyCEA3uLh9w8D75DYpKWl0TSKiYlRSyNCyIwZM44f\nP56bm6tQKPbt25ecnGyNNhqirL7tfEmDCROI/KdTbuxAD+wXDgCGQSBppVQqjx8/Tsvz5s3TeI1U\nKs3NzSWEHDly5L333uPnqzI6Gtu08cPAwxAAmAoCSav8/Pzm5mZCiEgkGj16tMZrxo4dKxKJOjs7\nm5qarl+/HhERYdk2/o+y+rayhlaaPYTmkKnjh5ob7RvYxxUjFADAtBBIWt2+fZsWwsLCtD36CIXC\n8PDwoqIier25A4lGDi0wqUMIMVPwqEIIAYC5aQ6kxsZGk3+Sze0Ye/PmTVpg311QIpHQQLp+/fqM\nGTP0uXOL12C1zejK/zdOyhrayupbmTIhxNx5012gp+u4AX3QHcdDfH4pDWAMzUsHRUdHm/ZjhEJh\ncXGxae9pbk1NTbTAHqXMWeZ6neoGvyw9eMuYtpkJfQwaO9AjsI8bQggALAxddlrJ5XJaCAgIYLks\nKCiIFujeuDaEPgMhgQCAJxBIWnV2dtJC7969WS4Ti8W0oFQqzd4mIyB+AIDnNARSz549L126xFJn\nzZo12dnZhBCRSDR48OA1a9Z4e3uLRKKuri65XH7t2rXt27eXlpbSi+fPnz9nzhxzNB20cWqpc6u7\nSwhxaq1zq7vn1FLn1FpHCMkhJIeQb6zdPDBeSEiItZsAYHqan5B8fHy0VZg6dSp9G7R48eKkpKTu\nFwQEBEyaNEkul69YseLEiRO7du169OjRhg0bTNViixGJnvzHYX85xJzVfxLSMyNHGrw4KUWfbwL7\nuAZ6ugX2cSWE0Oce5hQAgM3h1mW3ZMkSmkb79+9nX2jVycnps88+Cw4O3rp16+HDhyMjIw3eS8la\nnJycaKG8vJzlMuass7Oz/jdXiw0aKv855aZ2MMDT9T8JhMgBALvFIZAePXpEF72eMmWKnst+JyUl\nHT58uLq6et26dTYXSMyrI/ZB8MxZ9ldNqs4lRhnTMAAAu8RhqZtDhw7RwvLly/WvtXTpUkJIR0dH\nVVUVp5ZZ3bBhw2ihoqKC5bLKykpaCA8PN3ubAADsF4dAYhZ24zTFdcSIEbTw8OFD/WvxQWhoKC0U\nFxfTJVa7UygUN27cULseAAAMwCGQ2tvbjfmk06dPG1Pd8kaMGEGHdHd2dp49e1bjNWfPnqWjw93d\n3a27kB0AgK3jEEjMS/sHDx7oX+ubb54MM2YelWyFQCB45ZVXaDk9PV3jNWlpabSQkJBgmVYBANgr\nDoHErHi9cOFC/WsdOHCAFoKDg/WvxRNSqVQoFBJCCgoK9u3bp3b2wIEDdBU7kUiEuVYAAEYSrl27\nVs9LQ0JC6ANBfX29UqmMiYnRWWXWrFn/+te/aHn16tWGNtJqPDw8evToceXKFULIxYsXa2pqPDw8\nnnrqqZ9//jk1NXXHjh30srfeeisuLs6qLQUAsHnctjCfM2fO5cuXadnf33///v2+vr4ar7xy5cqi\nRYuYSaNLly7l9FzFKytWrMjMzNR2dtq0aZs2bbJkewAA7BK3QCKEDBs2jFnkjRDSu3fvvn37enh4\nREREPHz48F//+ldtba1MJlO95umnn2beJNmoQ4cOpaamVldXqx6USCRJSUndtzYHAAADcA4kpVI5\nduxY/cc1PPfcc7t37+beMAAAcCwcBjU8qSAQXLx4cenSpfRtPwt3d/cdO3YgjQAAQB+cn5BU3b9/\nf/Pmzffv3//3v/8tl8sFAoGzs3Pv3r3HjRv3+9//XiKRmLChAABg34wKJAAAAFPh3GUHAABgDtgx\n1nKUSuXly5dramqqq6slEomPj09MTIz+uyiBA1IqldrWUVQlFArxhwSEEIVCQbeuFggEOl/zq+LJ\ntxMCyUIOHDiQmppaV1enetDb23vRokWzZs2yVquA544dO/buu+/qvGz79u3PP/+8BdoDfCOXy3Ny\ncu7fv3/t2rWrV68yU1OmTJmyefNmPW/Cn28nBJIlLFmyhG4lpaa2tnbdunWFhYUpKSmWbxUA2LTT\np08vXrzYyJvw6tsJgWR227ZtY/73njt37pQpUwIDA8vKyjIyMvbv308IOXbsWHBwcGJiolWbCbwW\nEBAQFham7Wy/fv0s2RjgCdX1ByihUKhPHy+Db99OCCTzKisrS01NpeVNmzYxyzoMGTJk9erVgwYN\nWrNmDSFk27ZtkyZN8vf3t1pDgd+ee+45+qcCoKp///6RkZFhYWEDBw6MiYnZuHHj4cOH9azLw28n\nvAg1r7S0NPoPlpiYmO6LDM2YMYNuBq9QKLqvJg4AwCI+Pv7ChQtbtmyZP39+bGysm5sbp+o8/HZC\nIJmRUqlkttmdN2+exmukUiktHDlyhA6PAQAwN35+OyGQzCg/P7+5uZkQIhKJmN2k1IwdO1YkEhFC\nmpqarl+/btH2AYCj4ue3EwLJjG7fvk0LYWFh2kb0C4XC8PBwtesBAMyKn99OCCQzunnzJi34+fmx\nXMYs+ocnJNCmuLh42bJlL730UnR0dFxcXFJSUmpqakVFhbXbBbaKn99OGGVnRsz+hO7u7iyXMWeZ\n6wHUFBUVFRUV0XJjY2NlZeWPP/64ZcuWadOmrVy5kv0PDKA7fn474QnJjORyOS0EBASwXBYUFEQL\nHR0dZm8T2CyxWDx06FAvLy9nZ2fmYEZGxsyZM+vr663YMLBF/Px2whOSGTHT1nr37s1ymVgspgWM\nsgM1QqEwISFh/PjxY8eOdXJyogeVSmV+fv7WrVtzc3MJISUlJW+//fbevXut2lKwMfz8dsITEgB/\nTZw48cMPP3z++eeZNCKECASCkSNH7t+//4033qBHLl++nJ2dbaU2ApgMAsmM6IhJoqv7lTmLBZuB\nk9WrVw8dOpSW9Z+fD0D4+u2Eb0AzYv5VW15eznIZc1b13QCAPl5//XVayMnJsW5LwLbw89sJgWRG\nTOdsY2Mjy2XMWfbOXIDumBVX29raOK2qCQ6On99OCCQzGjZsGC2wzxeprKykBWYOGoCefHx8mDIG\nxYD++PnthEAyo9DQUFooLi7W9q9XhUJx48YNtesB9MRMVxQKhZx2CAUHx89vJwSSGY0YMYIOmuzs\n7Dx79qzGa86ePUvHX7q7u0dERFi0fWD7CgsLaUEikWBQDOiPn99O+As2I4FA8Morr9Byenq6xmvS\n0tJoISEhwTKtArshk8noLmqEkNjYWOs2BmwLP7+dEEjmJZVKaUdKQUFB9z1FDhw4QNeDEYlEc+bM\nsUL7gMeuXLly9OhRbW+G7t27N2vWLGbB5t/+9reWbR3YPB5+O/Xo6uqyzCc5rNTU1C1bttDy9OnT\nExISQkNDi4uLMzMzmbkjS5cuXbhwofXaCHz03XffJScni8XicePGRURE+Pn5OTk5KZXKurq6s2fP\nqs6ETU5ORiA5puXLl7e1tTE/FhcX02EIEomEGbZACBEKhcy3kCq+fTshkCxhxYoVmZmZ2s5OmzZt\n06ZNlmwP2AQaSOzXCIXClStXIo0cVlRUFH1KZufs7KxtuW5efTshkCzk0KFDqamp1dXVqgclEklS\nUlL3zYMBCCG3bt3asWPHhQsXVP8JzBCJRJMnT543b97AgQMt3zbgCeMDifDp2wmBZFE///zzP//5\nz/b2dhcXl//7v//DsDrQR1VV1Z07dx4/ftze3i4UCl1cXPr27RsVFYVhdWBCfPh2QiABAAAv4F9Y\nAADACwgkAADgBQQSAADwAgIJAAB4AYEEAAC8gEACAABeQCABAAAvIJAAAIAXEEgAAMALCCQAAOAF\nBBIAAPACAgkAAHgBgQQAALyAQAIAAF4QWbsBAPzS3t6uUCgIIXTnIWs3x9KUSiXz65twvyW5XE4L\nTk5Opron2B88IQH8j82bNw8fPnz48OF/+MMfrN0WK3j99dfDwsIiIiIqKipMeNslS5aEhYWFhYXd\nunXLhLcFO4NAAoAnjh07VlBQQAiZNWtWQECACe+8fPlyWli1apUJbwt2BoEE9m/t2rXh4eHh4eGJ\niYnWbgt/yeXyjz/+mBAiEonmz59v2psHBwdPmjSJEFJcXHzs2DHT3hzsBgIJ7F9nZ2dHR0dHRwd9\nOwIa7du378GDB4SQ6dOn9+vXz+T3X7BgAS1s2bJFqVSa/P5gBxBIAP8jOTn5xo0bN27c+Oqrr6zd\nFstRKBS7d++m5blz55rjIwYNGhQdHU0IqaioOHr0qDk+AmwdAgngfwiFQicnJycnJ6FQaO22WM63\n335bV1dHCBk5cmRgYKCZPuX111+nhbS0NDN9BNg0BBIAkIMHD9LC5MmTzfcpL7zwglgsJoTcvXu3\nsLDQfB8ENgrzkMCe5eTkEEJqamroj48ePaJHVPXt23fgwIHMj2VlZVVVVYSQp556atiwYWoX379/\nn75o8fLyCgkJoQcvXbqUnZ1dV1fX1dUlFovHjx8fFxfXfRJPfn7++fPnq6qqOjs73dzcnnvuuQkT\nJug/1enmzZuXL1++e/dua2trjx49evbsOXLkyNGjR3t7e+t5B21u3bp1+/ZtQohQKJwwYYLO65VK\nZU5OTl5eXmVlZVtbGyHE1dXV1dX16aefDg4OjoiI0FZRKBSOGzfuxIkThJDvvvsuKirKyJaDnenR\n1dVl7TYAmAuTGSymTJmyefNm5sf169d//fXXhJBRo0bt2bNH7eIVK1ZkZmYSQl544YVt27bdvHnz\nnXfeKSkpUbssKCho27ZtTM6VlZUtW7bs5s2bapf17dv3008/HTlyJHsLc3JyNm/eTDNDjVAonDlz\n5tKlS93d3XX+ptqkpKTs2rWLEBIdHX3gwAH2i48dO5aSklJdXa3tAnd39507d2oLm5MnT7799tuE\nEDc3t8LCQhPOvQU7gL8GAAPl5+fPnj27exoRQkpLS1977TX6pFVUVPTqq692TyNCyIMHD+bPn88+\nV3TLli1SqVRjGhFCFArF119/nZCQ8PDhQ4N+CUIIuXDhAi3ojMbU1NTly5ezpBEhpLGxkeWCMWPG\n0EJra+vly5c5thTsHLrswJ5t376dEPL111/Tnrphw4Z1n4rk6+trwJ3r6+vfeuut1tbW0NDQWbNm\n+fv7i0SiR48eHTp06NKlS4SQxsbGDz744MMPP1y0aFFTU1NQUNBrr702YMAAZ2fn5ubmzMzMU6dO\nEULa2tqSk5P/9re/afyUL774IjU1lZb79u37+uuvDx8+PCwsTKlU5uXl/fjjjxkZGYSQioqKOXPm\nHDlyxIC1jh49enT37l1aDg8PZ7nyzp07W7ZsoeWAgACpVBoZGRkcHCwQCORy+fXr10tKSi5cuHDx\n4kWWm/Tq1cvf358uA5GTkzNq1CiuDQY7hkACe/b8888TQs6fP09/9PHxoUeMR1c0mD179po1a1SP\nT5gwgenW+/vf//7222/X1dW9/PLLmzdvVl3GLTY29pNPPqEjy2/evJmfnz9ixAi1j8jPz6eBSggZ\nP358SkpKz549Ve8QGxv74osvJiYmdnZ2lpSU7Ny586233uL6i+Tn5zPlp59+muXK/fv300JoaOjB\ngwfd3NyYU05OTs8888wzzzwza9as2tpaZuU6jX71q1/RQLpz5w7X1oJ9Q5cdgIFiYmLU0ohasWIF\nM2Q8Nzc3NDT0k08+6b6oqOqLnx9//LH7fTZu3EgLoaGhW7duVU0jxtixY5ctW0bLaWlp7Emg0b17\n92jB2dmZ/UWUTCajhVmzZqmmkRpvb2/2h07mLA11AAYCCcBAS5cu1Xjc09NT9VFj8eLFGqc0OTk5\nMR1W3VcyvX79enFxMS0nJyezTIqaO3cuHUvd2trKvA3SX1lZGS34+fmxX9nc3EwLrq6uXD9F1eDB\ng5kbGpCgYMcQSACGEIvFw4cP13ZWIpHQgkgkiouL03YZMwiw+5iFM2ddMZEhAAAFcklEQVTO0IK3\ntzf7WAOhUDh69Gha7j6oXaempiZaCAoKYr+SGV+elpbW0tLC9YMYqk9XTBwCEAQSgGGeeeYZlrNM\nB52vry/LyGZmyTgmFRjMQAP29zrUU089RQt0jhQnzPp+OlemYJ7nbt++/fLLL+/cufOXX37h+nGE\nENWRF8YMDgT7g0ENAIZg//p2dnamBfbHDpHoyf8Bu6/6+vPPP9PC2bNndU4gbW9vpwUDesA6Ojr0\nvHLmzJnfffcdHb9eVVX12WefffbZZ/3793/66adHjBgRHR09aNAgrp+O5W5BFQIJwIwMnvjJvLDp\n7Ozs7Ow0XYvUMdmpk0AgSE9PX79+ver+EdXV1SdOnKCLLwwYMOCNN9547bXX2O+jutS3Qy0YCDoh\nkAB4LSAgICwsTM+LhwwZwvX+TO+iPk9X7u7uKSkpiYmJGRkZ//jHP27fvq36iFNSUrJ27dq//e1v\nO3fu9PT01HYT1Q/SOZICHAoCCYCPxGIxXSZuxIgRmzZtMusH0QIzqE+n4ODgd955hxAil8svXbp0\n7dq18+fPM9WvXbv23nvv7dy5U1t15uGPEOLv729gu8EeYVADAB8xS5T+85//NOsHMQvI0u0nOHFy\ncoqNjV2yZMmRI0f+9re/Me+Qzp8/f//+fW21mNdjffr0wVp2oAp/DWD/bPFbj+l8KywsrK+vN98H\nBQQE0IJCoSgvLzf4PsOGDdu2bRvzo8a1+6ja2lpa0Ll0Hjga2/s/KgBXffr0oQUDRkVby4svvkgL\nCoWCWbPHHEaNGsWMLDByLZ/AwEBmiATLQIwrV67QAvvSeeCAEEhg/4KDg2nh/v37qkO8+CwkJISZ\n97Nz586ioiKdVQz71ZycnJhh5ezLb+u8f2NjIzPGgXk1paaqqqqxsZGW8YQEahBIYP9CQ0NpoaOj\ng1k8m/8++OADuqiBQqH43e9+d+TIEW1X1tfX79mzx+B1Y2NjY2khNzeX/bJdu3YxHW5qFArF2rVr\naSAJhcLua8VSzFrgffv2ZdnKDxwTRtmB/QsJCRk6dCgdBrZ169Zdu3b96le/YtYqjYmJkUqlVm2g\nZoGBgZ9//nlSUlJnZ2dzc/PKlSt37twZGxsbHh7u5ubW1dXV1NR0/fr127dvFxYWGjPDND4+/uOP\nPyaE3Lt3r6KiQtvIt+rq6pSUlM8//zwqKioiImLYsGH0MUgul9+8efPEiRPMKyipVKptH1tm5fWJ\nEyca3GCwVwgkcAgfffSRVCqlA8na2tpUHwU8PDys1y4dYmNj09LS6B4WhJDS0tLS0lKTf4qvr29M\nTAztrzt58uSCBQtYLlYoFHl5eXl5edoumDJlCh0U3t3jx4+Z5V+nTZtmRJPBPqHLDhxCSEjIyZMn\nly5dOm7cOLFYzKzZw3/PPPPM6dOnFy9erO2ZgxAyePDgP/zhDz/88IPBnzJv3jxaOHr0qLZr1q9f\n/+KLL7JsPDFs2LCtW7eq7gev5vvvv6dPciNHjmT2dwdg9Ojq6rJ2GwBALzdv3iwvL5fJZJWVlZ6e\nnv7+/h4eHtHR0Rq3SuIqPj6ebse+f/9+9uEG5eXl9+7da2pqKikpaWlpCQkJ8fLyCg8PZ9aK1WbS\npEl00dg9e/Zgr1joDoEEAIQQcvLkybfffpsQMmbMmF27dpn8/rm5uW+88QYhJDIy8tChQya/P9gB\ndNkBACGExMfHDx06lBDy97//ndlG1oT+/Oc/08KKFStMfnOwDwgkAHji/fffp4XPPvvMtHe+cuUK\n3bD8pZde0rmbBjgsBBIAPBEVFTV9+vQ+ffoUFRVdv37dhHf+8ssv+/Tp07dv31WrVpnwtmBn8A4J\nAAB4AU9IAADACwgkAADghf8H+zAk2m5DdrwAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "t_linear=linspace(0,10,100);\n",
+ "plot(t_linear,t_linear.^2)\n",
+ "xlabel('time (s)')\n",
+ "ylabel('displacement (m)')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#EOL"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Graphics can be produced with a number of functions"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "2-D plots, 3-D plots, contour plots, 3D contour plots ... "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Z =\n",
+ "\n",
+ " Columns 1 through 7\n",
+ "\n",
+ " 0 0.1710 0.2880 0.3570 0.3840 0.3750 0.3360\n",
+ " -0.1710 0 0.1224 0.2016 0.2430 0.2520 0.2340\n",
+ " -0.2880 -0.1224 0 0.0840 0.1344 0.1560 0.1536\n",
+ " -0.3570 -0.2016 -0.0840 0 0.0546 0.0840 0.0924\n",
+ " -0.3840 -0.2430 -0.1344 -0.0546 0 0.0330 0.0480\n",
+ " -0.3750 -0.2520 -0.1560 -0.0840 -0.0330 0 0.0180\n",
+ " -0.3360 -0.2340 -0.1536 -0.0924 -0.0480 -0.0180 0\n",
+ " -0.2730 -0.1944 -0.1320 -0.0840 -0.0486 -0.0240 -0.0084\n",
+ " -0.1920 -0.1386 -0.0960 -0.0630 -0.0384 -0.0210 -0.0096\n",
+ " -0.0990 -0.0720 -0.0504 -0.0336 -0.0210 -0.0120 -0.0060\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.0990 0.0720 0.0504 0.0336 0.0210 0.0120 0.0060\n",
+ " 0.1920 0.1386 0.0960 0.0630 0.0384 0.0210 0.0096\n",
+ " 0.2730 0.1944 0.1320 0.0840 0.0486 0.0240 0.0084\n",
+ " 0.3360 0.2340 0.1536 0.0924 0.0480 0.0180 0.0000\n",
+ " 0.3750 0.2520 0.1560 0.0840 0.0330 0 -0.0180\n",
+ " 0.3840 0.2430 0.1344 0.0546 -0.0000 -0.0330 -0.0480\n",
+ " 0.3570 0.2016 0.0840 0 -0.0546 -0.0840 -0.0924\n",
+ " 0.2880 0.1224 0 -0.0840 -0.1344 -0.1560 -0.1536\n",
+ " 0.1710 0.0000 -0.1224 -0.2016 -0.2430 -0.2520 -0.2340\n",
+ " 0 -0.1710 -0.2880 -0.3570 -0.3840 -0.3750 -0.3360\n",
+ "\n",
+ " Columns 8 through 14\n",
+ "\n",
+ " 0.2730 0.1920 0.0990 0 -0.0990 -0.1920 -0.2730\n",
+ " 0.1944 0.1386 0.0720 0 -0.0720 -0.1386 -0.1944\n",
+ " 0.1320 0.0960 0.0504 0 -0.0504 -0.0960 -0.1320\n",
+ " 0.0840 0.0630 0.0336 0 -0.0336 -0.0630 -0.0840\n",
+ " 0.0486 0.0384 0.0210 0 -0.0210 -0.0384 -0.0486\n",
+ " 0.0240 0.0210 0.0120 0 -0.0120 -0.0210 -0.0240\n",
+ " 0.0084 0.0096 0.0060 0 -0.0060 -0.0096 -0.0084\n",
+ " 0 0.0030 0.0024 0 -0.0024 -0.0030 0\n",
+ " -0.0030 0 0.0006 0 -0.0006 0 0.0030\n",
+ " -0.0024 -0.0006 0 0 0.0000 0.0006 0.0024\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.0024 0.0006 -0.0000 0 0 -0.0006 -0.0024\n",
+ " 0.0030 0 -0.0006 0 0.0006 0 -0.0030\n",
+ " 0 -0.0030 -0.0024 0 0.0024 0.0030 0\n",
+ " -0.0084 -0.0096 -0.0060 0 0.0060 0.0096 0.0084\n",
+ " -0.0240 -0.0210 -0.0120 0 0.0120 0.0210 0.0240\n",
+ " -0.0486 -0.0384 -0.0210 0 0.0210 0.0384 0.0486\n",
+ " -0.0840 -0.0630 -0.0336 0 0.0336 0.0630 0.0840\n",
+ " -0.1320 -0.0960 -0.0504 0 0.0504 0.0960 0.1320\n",
+ " -0.1944 -0.1386 -0.0720 0 0.0720 0.1386 0.1944\n",
+ " -0.2730 -0.1920 -0.0990 0 0.0990 0.1920 0.2730\n",
+ "\n",
+ " Columns 15 through 21\n",
+ "\n",
+ " -0.3360 -0.3750 -0.3840 -0.3570 -0.2880 -0.1710 0\n",
+ " -0.2340 -0.2520 -0.2430 -0.2016 -0.1224 -0.0000 0.1710\n",
+ " -0.1536 -0.1560 -0.1344 -0.0840 0 0.1224 0.2880\n",
+ " -0.0924 -0.0840 -0.0546 0 0.0840 0.2016 0.3570\n",
+ " -0.0480 -0.0330 0.0000 0.0546 0.1344 0.2430 0.3840\n",
+ " -0.0180 0 0.0330 0.0840 0.1560 0.2520 0.3750\n",
+ " -0.0000 0.0180 0.0480 0.0924 0.1536 0.2340 0.3360\n",
+ " 0.0084 0.0240 0.0486 0.0840 0.1320 0.1944 0.2730\n",
+ " 0.0096 0.0210 0.0384 0.0630 0.0960 0.1386 0.1920\n",
+ " 0.0060 0.0120 0.0210 0.0336 0.0504 0.0720 0.0990\n",
+ " 0 0 0 0 0 0 0\n",
+ " -0.0060 -0.0120 -0.0210 -0.0336 -0.0504 -0.0720 -0.0990\n",
+ " -0.0096 -0.0210 -0.0384 -0.0630 -0.0960 -0.1386 -0.1920\n",
+ " -0.0084 -0.0240 -0.0486 -0.0840 -0.1320 -0.1944 -0.2730\n",
+ " 0 -0.0180 -0.0480 -0.0924 -0.1536 -0.2340 -0.3360\n",
+ " 0.0180 0 -0.0330 -0.0840 -0.1560 -0.2520 -0.3750\n",
+ " 0.0480 0.0330 0 -0.0546 -0.1344 -0.2430 -0.3840\n",
+ " 0.0924 0.0840 0.0546 0 -0.0840 -0.2016 -0.3570\n",
+ " 0.1536 0.1560 0.1344 0.0840 0 -0.1224 -0.2880\n",
+ " 0.2340 0.2520 0.2430 0.2016 0.1224 0 -0.1710\n",
+ " 0.3360 0.3750 0.3840 0.3570 0.2880 0.1710 0\n"
+ ]
+ }
+ ],
+ "source": [
+ "x=linspace(-1,1,21); y=linspace(-1,1,21);\n",
+ "[X,Y]=meshgrid(x,y);\n",
+ "Z=(X.*Y.^3-X.^3.*Y)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "MESHGRID Cartesian grid in 2-D/3-D space\n",
+ " [X,Y] = MESHGRID(xgv,ygv) replicates the grid vectors xgv and ygv to \n",
+ " produce the coordinates of a rectangular grid (X, Y). The grid vector\n",
+ " xgv is replicated numel(ygv) times to form the columns of X. The grid \n",
+ " vector ygv is replicated numel(xgv) times to form the rows of Y.\n",
+ " \n",
+ " [X,Y,Z] = MESHGRID(xgv,ygv,zgv) replicates the grid vectors xgv, ygv, zgv \n",
+ " to produce the coordinates of a 3D rectangular grid (X, Y, Z). The grid \n",
+ " vectors xgv,ygv,zgv form the columns of X, rows of Y, and pages of Z \n",
+ " respectively. (X,Y,Z) are of size numel(ygv)-by-numel(xgv)-by(numel(zgv).\n",
+ " \n",
+ " [X,Y] = MESHGRID(gv) is equivalent to [X,Y] = MESHGRID(gv,gv).\n",
+ " [X,Y,Z] = MESHGRID(gv) is equivalent to [X,Y,Z] = MESHGRID(gv,gv,gv).\n",
+ " \n",
+ " The coordinate arrays are typically used for the evaluation of functions \n",
+ " of two or three variables and for surface and volumetric plots.\n",
+ " \n",
+ " MESHGRID and NDGRID are similar, though MESHGRID is restricted to 2-D \n",
+ " and 3-D while NDGRID supports 1-D to N-D. In 2-D and 3-D the coordinates \n",
+ " output by each function are the same, the difference is the shape of the \n",
+ " output arrays. For grid vectors xgv, ygv and zgv of length M, N and P \n",
+ " respectively, NDGRID(xgv, ygv) will output arrays of size M-by-N while \n",
+ " MESHGRID(xgv, ygv) outputs arrays of size N-by-M. Similarly, \n",
+ " NDGRID(xgv, ygv, zgv) will output arrays of size M-by-N-by-P while \n",
+ " MESHGRID(xgv, ygv, zgv) outputs arrays of size N-by-M-by-P. \n",
+ " \n",
+ " Example: Evaluate the function x*exp(-x^2-y^2) \n",
+ " over the range -2 < x < 2, -4 < y < 4,\n",
+ " \n",
+ " [X,Y] = meshgrid(-2:.2:2, -4:.4:4);\n",
+ " Z = X .* exp(-X.^2 - Y.^2);\n",
+ " surf(X,Y,Z)\n",
+ " \n",
+ " \n",
+ " Class support for inputs xgv,ygv,zgv:\n",
+ " float: double, single\n",
+ " integer: uint8, int8, uint16, int16, uint32, int32, uint64, int64\n",
+ " \n",
+ " See also SURF, SLICE, NDGRID.\n",
+ "\n",
+ " Reference page in Doc Center\n",
+ " doc meshgrid\n",
+ "\n",
+ " Other functions named meshgrid\n",
+ "\n",
+ " codistributed/meshgrid gpuArray/meshgrid\n"
+ ]
+ }
+ ],
+ "source": [
+ "help meshgrid"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Y =\n",
+ "\n",
+ " Columns 1 through 7\n",
+ "\n",
+ " -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000\n",
+ " -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000\n",
+ " -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000\n",
+ " -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000\n",
+ " -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000\n",
+ " -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000\n",
+ " -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000\n",
+ " -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000\n",
+ " -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000\n",
+ " -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000\n",
+ " 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000\n",
+ " 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000\n",
+ " 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000\n",
+ " 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000\n",
+ " 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000\n",
+ " 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000\n",
+ " 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000\n",
+ " 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000\n",
+ " 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000\n",
+ "\n",
+ " Columns 8 through 14\n",
+ "\n",
+ " -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000\n",
+ " -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000\n",
+ " -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000\n",
+ " -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000\n",
+ " -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000\n",
+ " -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000\n",
+ " -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000\n",
+ " -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000\n",
+ " -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000\n",
+ " -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000\n",
+ " 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000\n",
+ " 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000\n",
+ " 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000\n",
+ " 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000\n",
+ " 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000\n",
+ " 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000\n",
+ " 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000\n",
+ " 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000\n",
+ " 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000\n",
+ "\n",
+ " Columns 15 through 21\n",
+ "\n",
+ " -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000 -1.0000\n",
+ " -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000 -0.9000\n",
+ " -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000 -0.8000\n",
+ " -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000 -0.7000\n",
+ " -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000 -0.6000\n",
+ " -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000 -0.5000\n",
+ " -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000 -0.4000\n",
+ " -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000 -0.3000\n",
+ " -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000 -0.2000\n",
+ " -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000 -0.1000\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000\n",
+ " 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000 0.2000\n",
+ " 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000 0.3000\n",
+ " 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000\n",
+ " 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000\n",
+ " 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000\n",
+ " 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000 0.7000\n",
+ " 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000\n",
+ " 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000 0.9000\n",
+ " 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000\n"
+ ]
+ }
+ ],
+ "source": [
+ "Y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "contour(X,Y,Z)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {
+ "collapsed": false,
+ "scrolled": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n1gAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "mesh(X,Y,Z)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[0;31mOperands to the || and && operators must be convertible to logical scalar values.\n",
+ "\u001b[0m"
+ ]
+ }
+ ],
+ "source": [
+ "pcolor(X,Y,Z)\n",
+ "colorbar([0 0 0],[1,1,1])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "COLORMAP Color look-up table.\n",
+ " COLORMAP(MAP) sets the current figure's colormap to MAP.\n",
+ " COLORMAP('default') sets the current figure's colormap to\n",
+ " the root's default, whose setting is PARULA.\n",
+ " MAP = COLORMAP returns the three-column matrix of RGB triplets defining \n",
+ " the colormap for the current figure.\n",
+ " COLORMAP(FIG,...) sets the colormap for the figure specified by FIG.\n",
+ " COLORMAP(AX,...) sets the colormap for the axes specified by AX. \n",
+ " Each axes within a figure can have a unique colormap. After you set\n",
+ " an axes colormap, changing the figure colormap does not affect the axes.\n",
+ " MAP = COLORMAP(FIG) returns the colormap for the figure specified by FIG.\n",
+ " MAP = COLORMAP(AX) returns the colormap for the axes specified by AX.\n",
+ " \n",
+ " A color map matrix may have any number of rows, but it must have\n",
+ " exactly 3 columns. Each row is interpreted as a color, with the\n",
+ " first element specifying the intensity of red light, the second\n",
+ " green, and the third blue. Color intensity can be specified on the\n",
+ " interval 0.0 to 1.0.\n",
+ " For example, [0 0 0] is black, [1 1 1] is white,\n",
+ " [1 0 0] is pure red, [.5 .5 .5] is gray, and\n",
+ " [127/255 1 212/255] is aquamarine.\n",
+ " \n",
+ " Graphics objects that use pseudocolor -- SURFACE and PATCH objects,\n",
+ " which are created by the functions MESH, SURF, and PCOLOR -- map\n",
+ " a color matrix, C, whose values are in the range [Cmin, Cmax],\n",
+ " to an array of indices, k, in the range [1, m].\n",
+ " The values of Cmin and Cmax are either min(min(C)) and max(max(C)),\n",
+ " or are specified by CAXIS. The mapping is linear, with Cmin\n",
+ " mapping to index 1 and Cmax mapping to index m. The indices are\n",
+ " then used with the colormap to determine the color associated\n",
+ " with each matrix element. See CAXIS for details.\n",
+ " \n",
+ " Type HELP GRAPH3D to see a number of useful colormaps.\n",
+ " \n",
+ " COLORMAP is a function that sets the Colormap property of a figure.\n",
+ " \n",
+ " See also HSV, CAXIS, SPINMAP, BRIGHTEN, RGBPLOT, FIGURE, COLORMAPEDITOR.\n",
+ "\n",
+ " Reference page in Doc Center\n",
+ " doc colormap\n"
+ ]
+ }
+ ],
+ "source": [
+ "help colormap"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "## Functions"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "So far, everything has been executed as a script, or calling a built-in function. Now we begin building our own functions.\n",
+ "\n",
+ "Functions are saved in memory (or better yet) in a folder in your path or current directory\n",
+ "\n",
+ "Example of storing function in memory\n",
+ "\n",
+ "$f(x,y) = (xy^{3}-x^{3}y)$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "f = \n",
+ "\n",
+ " @(x,y)(x.*y.^3-x.^3.*y)\n"
+ ]
+ }
+ ],
+ "source": [
+ "f= @(x,y) (x.*y.^3-x.^3.*y)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ans =\n",
+ "\n",
+ " Columns 1 through 7\n",
+ "\n",
+ " 0 0.1710 0.2880 0.3570 0.3840 0.3750 0.3360\n",
+ " -0.1710 0 0.1224 0.2016 0.2430 0.2520 0.2340\n",
+ " -0.2880 -0.1224 0 0.0840 0.1344 0.1560 0.1536\n",
+ " -0.3570 -0.2016 -0.0840 0 0.0546 0.0840 0.0924\n",
+ " -0.3840 -0.2430 -0.1344 -0.0546 0 0.0330 0.0480\n",
+ " -0.3750 -0.2520 -0.1560 -0.0840 -0.0330 0 0.0180\n",
+ " -0.3360 -0.2340 -0.1536 -0.0924 -0.0480 -0.0180 0\n",
+ " -0.2730 -0.1944 -0.1320 -0.0840 -0.0486 -0.0240 -0.0084\n",
+ " -0.1920 -0.1386 -0.0960 -0.0630 -0.0384 -0.0210 -0.0096\n",
+ " -0.0990 -0.0720 -0.0504 -0.0336 -0.0210 -0.0120 -0.0060\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.0990 0.0720 0.0504 0.0336 0.0210 0.0120 0.0060\n",
+ " 0.1920 0.1386 0.0960 0.0630 0.0384 0.0210 0.0096\n",
+ " 0.2730 0.1944 0.1320 0.0840 0.0486 0.0240 0.0084\n",
+ " 0.3360 0.2340 0.1536 0.0924 0.0480 0.0180 0.0000\n",
+ " 0.3750 0.2520 0.1560 0.0840 0.0330 0 -0.0180\n",
+ " 0.3840 0.2430 0.1344 0.0546 -0.0000 -0.0330 -0.0480\n",
+ " 0.3570 0.2016 0.0840 0 -0.0546 -0.0840 -0.0924\n",
+ " 0.2880 0.1224 0 -0.0840 -0.1344 -0.1560 -0.1536\n",
+ " 0.1710 0.0000 -0.1224 -0.2016 -0.2430 -0.2520 -0.2340\n",
+ " 0 -0.1710 -0.2880 -0.3570 -0.3840 -0.3750 -0.3360\n",
+ "\n",
+ " Columns 8 through 14\n",
+ "\n",
+ " 0.2730 0.1920 0.0990 0 -0.0990 -0.1920 -0.2730\n",
+ " 0.1944 0.1386 0.0720 0 -0.0720 -0.1386 -0.1944\n",
+ " 0.1320 0.0960 0.0504 0 -0.0504 -0.0960 -0.1320\n",
+ " 0.0840 0.0630 0.0336 0 -0.0336 -0.0630 -0.0840\n",
+ " 0.0486 0.0384 0.0210 0 -0.0210 -0.0384 -0.0486\n",
+ " 0.0240 0.0210 0.0120 0 -0.0120 -0.0210 -0.0240\n",
+ " 0.0084 0.0096 0.0060 0 -0.0060 -0.0096 -0.0084\n",
+ " 0 0.0030 0.0024 0 -0.0024 -0.0030 0\n",
+ " -0.0030 0 0.0006 0 -0.0006 0 0.0030\n",
+ " -0.0024 -0.0006 0 0 0.0000 0.0006 0.0024\n",
+ " 0 0 0 0 0 0 0\n",
+ " 0.0024 0.0006 -0.0000 0 0 -0.0006 -0.0024\n",
+ " 0.0030 0 -0.0006 0 0.0006 0 -0.0030\n",
+ " 0 -0.0030 -0.0024 0 0.0024 0.0030 0\n",
+ " -0.0084 -0.0096 -0.0060 0 0.0060 0.0096 0.0084\n",
+ " -0.0240 -0.0210 -0.0120 0 0.0120 0.0210 0.0240\n",
+ " -0.0486 -0.0384 -0.0210 0 0.0210 0.0384 0.0486\n",
+ " -0.0840 -0.0630 -0.0336 0 0.0336 0.0630 0.0840\n",
+ " -0.1320 -0.0960 -0.0504 0 0.0504 0.0960 0.1320\n",
+ " -0.1944 -0.1386 -0.0720 0 0.0720 0.1386 0.1944\n",
+ " -0.2730 -0.1920 -0.0990 0 0.0990 0.1920 0.2730\n",
+ "\n",
+ " Columns 15 through 21\n",
+ "\n",
+ " -0.3360 -0.3750 -0.3840 -0.3570 -0.2880 -0.1710 0\n",
+ " -0.2340 -0.2520 -0.2430 -0.2016 -0.1224 -0.0000 0.1710\n",
+ " -0.1536 -0.1560 -0.1344 -0.0840 0 0.1224 0.2880\n",
+ " -0.0924 -0.0840 -0.0546 0 0.0840 0.2016 0.3570\n",
+ " -0.0480 -0.0330 0.0000 0.0546 0.1344 0.2430 0.3840\n",
+ " -0.0180 0 0.0330 0.0840 0.1560 0.2520 0.3750\n",
+ " -0.0000 0.0180 0.0480 0.0924 0.1536 0.2340 0.3360\n",
+ " 0.0084 0.0240 0.0486 0.0840 0.1320 0.1944 0.2730\n",
+ " 0.0096 0.0210 0.0384 0.0630 0.0960 0.1386 0.1920\n",
+ " 0.0060 0.0120 0.0210 0.0336 0.0504 0.0720 0.0990\n",
+ " 0 0 0 0 0 0 0\n",
+ " -0.0060 -0.0120 -0.0210 -0.0336 -0.0504 -0.0720 -0.0990\n",
+ " -0.0096 -0.0210 -0.0384 -0.0630 -0.0960 -0.1386 -0.1920\n",
+ " -0.0084 -0.0240 -0.0486 -0.0840 -0.1320 -0.1944 -0.2730\n",
+ " 0 -0.0180 -0.0480 -0.0924 -0.1536 -0.2340 -0.3360\n",
+ " 0.0180 0 -0.0330 -0.0840 -0.1560 -0.2520 -0.3750\n",
+ " 0.0480 0.0330 0 -0.0546 -0.1344 -0.2430 -0.3840\n",
+ " 0.0924 0.0840 0.0546 0 -0.0840 -0.2016 -0.3570\n",
+ " 0.1536 0.1560 0.1344 0.0840 0 -0.1224 -0.2880\n",
+ " 0.2340 0.2520 0.2430 0.2016 0.1224 0 -0.1710\n",
+ " 0.3360 0.3750 0.3840 0.3570 0.2880 0.1710 0\n"
+ ]
+ }
+ ],
+ "source": [
+ "f(X,Y)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here we will save a function called `my_function` as `my_function.m`\n",
+ "\n",
+ "```matlab \n",
+ "function [vx,vy] = my_function(x,y,t)\n",
+ " % Help documentation of \"my_function\"\n",
+ " % This function computes the velocity in the x- and y-directions given\n",
+ " % three vectors of position in x- and y-directions as a function of time\n",
+ " % x = x-position\n",
+ " % y = y-position\n",
+ " % t = time\n",
+ " % output\n",
+ " % vx = velocity in x-direction\n",
+ " % vy = velocity in y-direction\n",
+ " \n",
+ " vx=zeros(length(t),1);\n",
+ " vy=zeros(length(t),1);\n",
+ " \n",
+ " vx(1:end-1) = diff(x)./diff(t); % calculate vx as delta x/delta t\n",
+ " vy(1:end-1) = diff(y)./diff(t); % calculate vy as delta y/delta t\n",
+ " \n",
+ " vx(end) = vx(end-1);\n",
+ " vy(end) = vy(end-1);\n",
+ "\n",
+ "end\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Help documentation of \"my_function\"\n",
+ " This function computes the velocity in the x- and y-directions given\n",
+ " three vectors of position in x- and y-directions as a function of time\n",
+ " x = x-position\n",
+ " y = y-position\n",
+ " t = time\n",
+ " output\n",
+ " vx = velocity in x-direction\n",
+ " vy = velocity in y-direction\n"
+ ]
+ }
+ ],
+ "source": [
+ "help my_function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 92,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "t=linspace(0,10,100)'; \n",
+ "x=t.^3; % vx = 3*t^2\n",
+ "y=t.^2/2; % vy = t\n",
+ "[vx,vy]=my_function(x,y,t);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 93,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\niYi9ehErWj58ibeK5YO/soL74RRhCIHkA49kj5VGSIhoT22r+4lHG/bUs13s5FLJw1enCXwO6yex\nMTRDuopthMpG1UoLZgiEGQCIk+qm+yhCSkRd3+93P/Go9d+b2baqEqk8/kc/D0D7RAYnxvrG73aa\nnvr4KCv/fFZKnl4zPWVE5YmOVyqaXt7Xd7jk//2/8auu1QasiQAQCC3bn23Z+gwrx11zR2zObVHa\nKd2137Ub32r79HV2fdTtj6kXPRy4NooFAslnlr5x8JWKJk9375mp+fttQ9mxFACCXdP6h9t3v+Xp\nbtz8JaML/uLP9ogWAsmXXvqi4Xc7auvbup0vjlUpVi/QuR9tDgDho23nP1q2P2truWjXLtmoMaNu\n+xXeHnEQSAAAIAqY1AAAAKKAQAIAAFFAIAEAgCggkAAAQBSwdZDo2O32L7744uTJk01NTSkpKYmJ\nibNnz46IwK8OQcNut/f29vZbTSqV4h+r2PT29trtdiKKiIiQSqWDehbfXO8hkMTlH//4R3FxcUvL\nRWe2jho1atmyZXfccUegWgWD8uGHHz766KP9VnvhhReuvfZaP7QHBPT09JSVlR05cuSbb7756quv\nmpr6lhLefPPNTz/99MA/B99cn0AgicjDDz/88cc8232fPn26qKjowIEDf/7zn/3fKoBQtWPHjgcf\nfND7z8E311cQSGKxYcMG7t/pvLy8m2++WavVmkymt99++9VXXyWiDz/8cPz48QUFBQFtJgzCuHHj\npk7lPaGeiGj06NH+bAy4s9lcD9WUSqUDGW51hm+uDyGQRMFkMhUXF7Py73//+0WL+nYInjx58hNP\nPHHJJZc89dRTRLRhw4abbropLU1oh1YQj6uuuor9gwPRSk5Ovuyyy6ZOnZqRkTF79uw1a9a89ZbH\nPX5cmEwmIsI314fwwk0UNm3axH4vmz17NvfvNOe2226bOXMmEfX29r7yyisBaB9AKLrhhht27979\n3HPP/eIXv8jJyVEqlYN6fNOmTfjm+hYCKfDsdvs///lPVr7nnnt46+Tn57PCu+++y2YBAUAAsa8t\nvrm+hUAKvIqKirNnzxKRTCabN28eb53s7GyZTEZEHR0d3377rV/bBwBu2NcW31zfQiAF3vfff88K\nU6dO9bRqQSqVTps2zaU+AASK89cQ31xfQSAFXlVVFSuMGTNGoFpKSgor4PesYHHw4MFHHnnk+uuv\n1+v18+fPf+CBB4qLi+vq+M+5h+DCfW0J31zfwSy7wOvo6GCF2NhYgWrcXa4+iFxlZWVlZSUrt7e3\nnzhxYufOnc8999yiRYsef/xx4X/cIHLOX0N8c30FPaTA6+npYYVx48YJVNPpdKxw7ty5YW8T+EhM\nTMyUKVMSEhIiIyO5i2+//faSJUvMZnMAGwZe4r62hG+u76CHFHjc6ryRI0cKVIuJiWEFzNUROalU\nesstt1xzzTXZ2dlyuZxdtNvtFRUV69ev379/PxHV1NSsWLFiy5YtAW0pDJ3zolp8c30FPSQAH7vx\nxhv/8Ic/XHvttVwaEVFERMTMmTNfffXVn/70p+zKF198sWvXrgC1EUCMEEiBx2aFUn9DzNxd7B8c\n1J544okpU6aw8sA3BQCx4b62hG+u7+BvUOBxv0cfO3ZMoBp31/ltBASju+66ixXKysoC2xIYMufu\nL765voJACjxuALq9vV2gGndXeMAaxI/bcdVqtQ52K08QCeevIb65voJACrzMzExWEF6hcuLECVbg\n1tlBkEpMTOTKeNEdpLivLeGb6zsIpMCbNGkSKxw8eNDT78u9vb3fffedS30IUtwCSalUOthjSUEk\nnL+G+Ob6CgIp8K644go2MdRms3366ae8dT799FM2zTQ2Nnb69Ol+bR/42oEDB1ghJSUFL7qDFPva\n4pvrW/gyBF5ERMSPf/xjVi4pKeGts2nTJla45ZZb/NMqGCaNjY3s3DYiysnJCWxjYMjY1xbfXN9C\nIIlCfn4+G7r58ssv3c9N+cc//sF2oJHJZEuXLg1A+2DA9u3b9/7773t6M/TDDz/ccccd3BbRd999\nt39bB76Un5+Pb65vSRwOR6DbAERExcXFzz33HCvfeuutt9xyy6RJkw4ePPjee+9xq1WWL19+//33\nB66N0L/t27evWrUqJibGYDBMnz59zJgxcrncbre3tLR8+umnzithV61ahUAKuF/96ldWq5X748GD\nB9kchJSUFOdpC1KplPt6usA314cQSCLy2GOPvffee57uLlq06Pe//70/2wNDwAJJuI5UKn388ceR\nRmIwY8YM1mEVFhkZKbBXN765voJAEpc333yzuLi4qanJ+WJKSsoDDzzgfkAyiFB1dfWLL764e/du\n59+7OTKZ7Cc/+ck999yTkZHh/7aBO58EEuGb6yMIJDH6+uuvjx8/3t3dHRUVNXbsWEzOCUYNDQ2H\nDh06c+ZMd3e3VCqNiopKSkqaMWMGptWFMHxzvYRAAgAAUcAvawAAIAoIJAAAEAUEEgAAiAICCQAA\nRAGBBAAAooBAAgAAUUAgAQCAKCCQAABAFBBIAAAgCggkAAAQBQQSAACIAgIJAABEAYEEAACigEAC\nAABRkAW6AQCi1t3d3dvbS0TsTKNANwcglKGHBCDk6aefzsrKysrK+uUvfxnotgCEOAQSAACIAgIJ\nws7q1aunTZs2bdq0goKCQLcFAC7AOyQIOzab7dy5c0TEXg4BgEggkACErFq16je/+Q0RRURgOAFg\neCGQAIRIpVKpVBroVgCEBfzSBwAAooAeEoSRsrIyIjp58iT7Y2trK7viLCkpKSMjg/ujyWRqaGgg\nori4uMzMTJfKR44caW5uJqKEhISJEyeyi3v27Nm1a1dLS4vD4YiJibnmmmvmz5/vPuJXUVFhNBob\nGhpsNptSqbzqqqsWLFgw8KVOVVVVX3zxxeHDh7u6uiQSSXR09MyZM+fNmzdq1KgBfgKA2EgcDkeg\n2wDgJ1xmCLj55puffvpp7o+//e1vX3vtNSKaO3fu5s2bXSo/9thj7733HhFdd911GzZsqKqq+vWv\nf11TU+NSTafTbdiwgcs5k8n0yCOPVFVVuVRLSkpau3btzJkzhVtYVlb29NNPf//99+63pFLpkiVL\nli9fHhsb2+9fKYDYYMgOwDcqKiruvPNO9zQiotra2ttvv531tCorKxcvXuyeRkTU3Nz8i1/8orq6\nWuCnPPfcc/n5+bxpRES9vb2vvfbaLbfccurUqSH9RQAEEobsIIy88MILRPTaa6+xkbrMzEz3pUga\njWYIn2w2mx966KGurq5JkybdcccdaWlpMpmstbX1zTff3LNnDxG1t7cXFhb+4Q9/WLZsWUdHh06n\nu/3229PT0yMjI8+ePfvee+99/PHHRGS1WletWvXOO+/w/pTnn3++uLiYlZOSku66666srKypU6fa\n7fby8vKdO3e+/fbbRFRXV7d06dJ3330Xex1BcEEgQRi59tprichoNLI/JiYmsive+/LLL4nozjvv\nfOqpp5yvL1iwgBvW++9//7tixYqWlpYf/ehHTz/9tFwu56rl5OQ888wzL7/8MhFVVVVVVFRcccUV\nLj+ioqKCBSoRXXPNNX/+85+jo6OdPyEnJ2fhwoUFBQU2m62mpmbjxo0PPfSQT/7qAPwDQ3YAvjF7\n9myXNGIee+wxbuL4/v37J02a9MwzzzinEeP84mfnzp3un7NmzRpWmDRp0vr1653TiJOdnf3II4+w\n8qZNm3p6eob0lwIQGAgkAN9Yvnw573W1Wn355Zdzf3zwwQd5FzbJ5fK5c+eycl1dncvdb7/99uDB\ng6y8atUqgaVReXl5MTExRNTV1bV79+7B/BUABBgCCcAHYmJisrKyPN1NSUlhBZlMNn/+fE/VuEmA\n7nMW/vOf/7DCqFGjhKfhSaXSefPmsbL7pHYAMUMgAfjArFmzBO5yA3QajUZgC6LRo0ezQkdHh8ut\nw4cPs4JzZ8uTuLg4VmBrpACCBSY1APiA8PZCkZGRrKDT6QSqyWR930f3XV+//vprVvj0009nzJgh\n3Jju7m5WwDskCC4IJAD/GfIOrWfPnmUFm81ms9l81yIAEUEgAQSTcePGTZ06dYCVJ0+ePKyNAfAt\nBBJAEIiJibFarUR0xRVX/P73vw90cwCGBSY1AASB6dOns8Lx48cD2xKA4YNAgrATjEftcYNvBw4c\nMJvNgW0MwDAJvm8mgJdUKhUrBNGs6IULF7JCb2/vq6++GtjGAAwTBBKEnfHjx7PCkSNH7HZ7YBsz\nQBMnTuT2cdi4cWNlZWW/jwTLXxoAB4EEYWfSpEmscO7cOW7zbPErLCxUKpVE1Nvb+7Of/ezdd9/1\nVNNsNm/evNlX+8YC+A1m2UHYmThx4pQpU9jWcOvXr//b3/526aWXcnuVzp49Oz8/P6AN5KfVap99\n9tkHHnjAZrOdPXv28ccf37hxY05OzrRp05RKpcPh6Ojo+Pbbb7///vsDBw64L60FED8EEoSjP/7x\nj/n5+S0tLURktVr379/P3YqPjw9cu/qRk5OzadMmdoYFEdXW1tbW1ga6UQA+gyE7CEcTJ0786KOP\nli9fbjAYYmJiuD17xG/WrFk7dux48MEHR40a5anOhAkTfvnLX/773//2Z8MAvCdxOByBbgMADEVV\nVdWxY8caGxtPnDihVqvT0tLi4+P1ej3vUUkA4odAAgAAUcCQHQAAiAICCQAARAGBBAAAooBAAgAA\nUUAgAQCAKCCQAABAFP4/JHGsrwmk9SMAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "yyaxis left\n",
+ "plot(t(1:10:end),vx(1:10:end),'o',t,3*t.^2)\n",
+ "ylabel('v_{x}')\n",
+ "yyaxis right\n",
+ "plot(t(1:10:end),vy(1:10:end),'s',t, t)\n",
+ "ylabel('v_{y}')\n",
+ "xlabel('time')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now, create a new function that calls 'my_function' called, `my_caller.m`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 94,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Help documentation of \"my_caller\"\n",
+ " This function computes the acceleration in the x- and y-directions given\n",
+ " three vectors of position in x- and y-directions as a function of time\n",
+ " x = x-position\n",
+ " y = y-position\n",
+ " t = time\n",
+ " output\n",
+ " ax = velocity in x-direction\n",
+ " ay = velocity in y-direction\n"
+ ]
+ }
+ ],
+ "source": [
+ "help my_caller"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 95,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "[ax,ay]=my_caller(x,y,t);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 97,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "yyaxis left\n",
+ "plot(t(1:10:end),ax(1:10:end),'o',t,6*t)\n",
+ "ylabel('a_{x}')\n",
+ "yyaxis right\n",
+ "plot(t(1:10:end),ay(1:10:end),'s',t, 1*t./t)\n",
+ "ylabel('a_{y}')\n",
+ "xlabel('time')\n",
+ "axis([0,10,0,3])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 98,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[0;31mUndefined function 'diff_match_dims' for input arguments of type 'double'.\n",
+ "\u001b[0m"
+ ]
+ }
+ ],
+ "source": [
+ "diff_match_dims(x,t)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Matlab",
+ "language": "matlab",
+ "name": "matlab"
+ },
+ "language_info": {
+ "codemirror_mode": "octave",
+ "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": "matlab",
+ "version": "0.11.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/lecture_10/octave-workspace b/lecture_10/octave-workspace
index 8a9aba2..8c437bb 100644
Binary files a/lecture_10/octave-workspace and b/lecture_10/octave-workspace differ
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_12/octave-workspace b/lecture_12/octave-workspace
index 41ef164..8c437bb 100644
Binary files a/lecture_12/octave-workspace and b/lecture_12/octave-workspace differ
diff --git a/lecture_13/.GS_rel.m.swp b/lecture_13/.GS_rel.m.swp
new file mode 100644
index 0000000..58db6b3
Binary files /dev/null and b/lecture_13/.GS_rel.m.swp differ
diff --git a/lecture_13/.GaussSeidel.m.swp b/lecture_13/.GaussSeidel.m.swp
new file mode 100644
index 0000000..43abe04
Binary files /dev/null and b/lecture_13/.GaussSeidel.m.swp differ
diff --git a/lecture_13/.Jacobi_rel.m.swp b/lecture_13/.Jacobi_rel.m.swp
new file mode 100644
index 0000000..8f17e8f
Binary files /dev/null and b/lecture_13/.Jacobi_rel.m.swp differ
diff --git a/lecture_13/.ipynb_checkpoints/lecture_12-checkpoint.ipynb b/lecture_13/.ipynb_checkpoints/lecture_13-checkpoint.ipynb
similarity index 100%
rename from lecture_13/.ipynb_checkpoints/lecture_12-checkpoint.ipynb
rename to lecture_13/.ipynb_checkpoints/lecture_13-checkpoint.ipynb
diff --git a/lecture_13/.lambda_fcn.m.swp b/lecture_13/.lambda_fcn.m.swp
new file mode 100644
index 0000000..5031365
Binary files /dev/null and b/lecture_13/.lambda_fcn.m.swp differ
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/LU_naive.m b/lecture_13/LU_naive.m
new file mode 100644
index 0000000..92efde6
--- /dev/null
+++ b/lecture_13/LU_naive.m
@@ -0,0 +1,27 @@
+function [L, U] = LU_naive(A)
+% GaussNaive: naive Gauss elimination
+% x = GaussNaive(A,b): Gauss elimination without pivoting.
+% input:
+% A = coefficient matrix
+% y = right hand side vector
+% output:
+% x = solution vector
+[m,n] = size(A);
+if m~=n, error('Matrix A must be square'); end
+nb = n;
+L=diag(ones(n,1));
+U=A;
+% forward elimination
+for k = 1:n-1
+ for i = k+1:n
+ fik = U(i,k)/U(k,k);
+ L(i,k)=fik;
+ U(i,k:nb) = U(i,k:nb)-fik*U(k,k:nb);
+ end
+end
+%% back substitution
+%x = zeros(n,1);
+%x(n) = Aug(n,nb)/Aug(n,n);
+%for i = n-1:-1:1
+% x(i) = (Aug(i,nb)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i);
+%end
diff --git a/lecture_13/efficient_soln.png b/lecture_13/efficient_soln.png
new file mode 100644
index 0000000..ef24ece
Binary files /dev/null and b/lecture_13/efficient_soln.png differ
diff --git a/lecture_13/gp_image_01.png b/lecture_13/gp_image_01.png
new file mode 100644
index 0000000..ef291b5
Binary files /dev/null and b/lecture_13/gp_image_01.png differ
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..30cf1b4
--- /dev/null
+++ b/lecture_13/lecture_13.aux
@@ -0,0 +1,63 @@
+\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 {section}{\numberline {1}Markdown examples}{2}{section.1}}
+\newlabel{markdown-examples}{{1}{2}{Markdown examples}{section.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Condition of a matrix}{3}{subsection.1.1}}
+\newlabel{condition-of-a-matrix}{{1.1}{3}{Condition of a matrix}{subsection.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}\emph {just checked in to see what condition my condition was in}}{3}{subsubsection.1.1.1}}
+\newlabel{just-checked-in-to-see-what-condition-my-condition-was-in}{{1.1.1}{3}{\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.1.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}Matrix norms}{3}{subsubsection.1.1.2}}
+\newlabel{matrix-norms}{{1.1.2}{3}{Matrix norms}{subsubsection.1.1.2}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}Condition of Matrix}{3}{subsubsection.1.1.3}}
+\newlabel{condition-of-matrix}{{1.1.3}{3}{Condition of Matrix}{subsubsection.1.1.3}{}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Springs-masses\relax }}{5}{figure.caption.3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}P=2 norm is ratio of biggest eigenvalue to smallest eigenvalue!}{7}{subsection.1.2}}
+\newlabel{p2-norm-is-ratio-of-biggest-eigenvalue-to-smallest-eigenvalue}{{1.2}{7}{P=2 norm is ratio of biggest eigenvalue to smallest eigenvalue!}{subsection.1.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Iterative Methods}{7}{section.2}}
+\newlabel{iterative-methods}{{2}{7}{Iterative Methods}{section.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Gauss-Seidel method}{7}{subsection.2.1}}
+\newlabel{gauss-seidel-method}{{2.1}{7}{Gauss-Seidel method}{subsection.2.1}{}}
+\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 {subsubsection}{\numberline {2.1.1}Gauss-Seidel Iterative approach}{8}{subsubsection.2.1.1}}
+\newlabel{gauss-seidel-iterative-approach}{{2.1.1}{8}{Gauss-Seidel Iterative approach}{subsubsection.2.1.1}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.2}Jacobi method}{8}{subsubsection.2.1.2}}
+\newlabel{jacobi-method}{{2.1.2}{8}{Jacobi method}{subsubsection.2.1.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Gauss-Seidel with Relaxation}{11}{subsection.2.2}}
+\newlabel{gauss-seidel-with-relaxation}{{2.2}{11}{Gauss-Seidel with Relaxation}{subsection.2.2}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Nonlinear Systems}{13}{subsection.2.3}}
+\newlabel{nonlinear-systems}{{2.3}{13}{Nonlinear Systems}{subsection.2.3}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Newton-Raphson part II}{14}{subsection.2.4}}
+\newlabel{newton-raphson-part-ii}{{2.4}{14}{Newton-Raphson part II}{subsection.2.4}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}Solution is again in the form Ax=b}{15}{subsubsection.2.4.1}}
+\newlabel{solution-is-again-in-the-form-axb}{{2.4.1}{15}{Solution is again in the form Ax=b}{subsubsection.2.4.1}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Example of Jacobian calculation}{15}{subsection.2.5}}
+\newlabel{example-of-jacobian-calculation}{{2.5}{15}{Example of Jacobian calculation}{subsection.2.5}{}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.1}Nonlinear springs supporting two masses in series}{15}{subsubsection.2.5.1}}
+\newlabel{nonlinear-springs-supporting-two-masses-in-series}{{2.5.1}{15}{Nonlinear springs supporting two masses in series}{subsubsection.2.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..913f44f
--- /dev/null
+++ b/lecture_13/lecture_13.ipynb
@@ -0,0 +1,5325 @@
+{
+ "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": [
+ "# Markdown examples\n",
+ "\n",
+ "` \" ' ` `\n",
+ "\n",
+ "```matlab\n",
+ "x=linspace(0,1);\n",
+ "y=x.^2;\n",
+ "plot(x,y)\n",
+ "for i = 1:10\n",
+ " fprintf('markdown is pretty')\n",
+ "end\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_{j=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": 7,
+ "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": 8,
+ "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; % shortcut invA(:,1)=A\\[1;0;0]\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": 9,
+ "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": 10,
+ "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": 11,
+ "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": [
+ "## P=2 norm is ratio of biggest eigenvalue to smallest eigenvalue!\n",
+ "\n",
+ "no need to calculate the inv(K)"
+ ]
+ },
+ {
+ "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.2x_{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": 12,
+ "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/3 & 0.2/3 \\\\\n",
+ "0.1/7 & 0 & -0.3/7 \\\\\n",
+ "0.3/10 & -0.2/10 & 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": 14,
+ "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": 15,
+ "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": 16,
+ "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": 17,
+ "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": 19,
+ "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",
+ "\t\n",
+ "\t\tx 2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx 1 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_3a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ " \n",
+ "\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')\n",
+ "xlabel('x_1')\n",
+ "ylabel('x_2')"
+ ]
+ },
+ {
+ "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",
+ "x_{1,i} \\\\\n",
+ "x_{2,i} \\\\\n",
+ "\\vdots \\\\\n",
+ "x_{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$=100 N/m and $k_2$=-10 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"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "m1=1; % kg \n",
+ "m2=2; % kg\n",
+ "k1=100; % N/m\n",
+ "k2=-10; % N/m^2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "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": 21,
+ "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": 22,
+ "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": 23,
+ "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": 26,
+ "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",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ " \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \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\t2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx 1 \n",
+ "\t \n",
+ " \n",
+ "\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 \n",
+ "\n",
+ "\t\t\n",
+ "\t\t2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx 2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t2000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t2500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \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\t0 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t2000 \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",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ " \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx 1 \n",
+ "\t \n",
+ " \n",
+ "\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\t2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx 2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-2000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-1500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-1000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \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-1500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-1000 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-500 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0 \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,10,20),linspace(0,10,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",
+ " F1(i,j)=f(1);\n",
+ " F2(i,j)=f(2);\n",
+ " end\n",
+ "end\n",
+ "mesh(X,Y,F1)\n",
+ "xlabel('x_1')\n",
+ "ylabel('x_2')\n",
+ "colorbar()\n",
+ "figure()\n",
+ "mesh(X,Y,F2)\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..a86b4c3
--- /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 11:41
+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 297.
+LaTeX Font Info: Font shape `U/msa/m/n' will be
+(Font) scaled to size 8.33606pt on input line 297.
+LaTeX Font Info: Font shape `U/msa/m/n' will be
+(Font) scaled to size 6.25204pt on input line 297.
+LaTeX Font Info: Font shape `U/msb/m/n' will be
+(Font) scaled to size 11.40997pt on input line 297.
+LaTeX Font Info: Font shape `U/msb/m/n' will be
+(Font) scaled to size 8.33606pt on input line 297.
+LaTeX Font Info: Font shape `U/msb/m/n' will be
+(Font) scaled to size 6.25204pt on input line 297.
+
+
+File: norm_A.png Graphic file (type png)
+
+Package pdftex.def Info: norm_A.png used on input line 305.
+(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 343--345
+[]\T1/ppl/m/n/10.95 -[][]Installing Python and Jupyter Note-book (via Ana-conda
+) -
+ []
+
+
+Underfull \hbox (badness 1681) in paragraph at lines 346--349
+[]\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 <14.4> not available
+(Font) Font shape `T1/ppl/b/n' tried instead on input line 354.
+LaTeX Font Info: Try loading font information for TS1+cmtt on input line 356
+.
+(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmtt.fd
+File: ts1cmtt.fd 2014/09/29 v2.5h Standard LaTeX font definitions
+)
+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 373.
+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 373.
+ [2 <./norm_A.png>]
+[3] [4] <../lecture_09/mass_springs.png, id=122, 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 523.
+
+(pdftex.def) Requested size: 89.93611pt x 152.576pt.
+ [5 <../lecture_09/mass_springs.png>]
+[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 933.
+ [11]
+
+File: lecture_13_files/lecture_13_24_1.pdf Graphic file (type pdf)
+
+
+Package pdftex.def Info: lecture_13_files/lecture_13_24_1.pdf used on input lin
+e 957.
+(pdftex.def) Requested size: 449.6789pt x 337.25917pt.
+
+Underfull \hbox (badness 10000) in paragraph at lines 959--960
+
+ []
+
+[12 <./lecture_13_files/lecture_13_24_1.pdf>] [13]
+
+File: lecture_13_files/lecture_13_29_0.pdf Graphic file (type pdf)
+
+
+Package pdftex.def Info: lecture_13_files/lecture_13_29_0.pdf used on input lin
+e 1045.
+(pdftex.def) Requested size: 449.6789pt x 337.25917pt.
+
+Underfull \hbox (badness 10000) in paragraph at lines 1047--1048
+
+ []
+
+[14 <./lecture_13_files/lecture_13_29_0.pdf>] [15] [16] [17]
+
+File: lecture_13_files/lecture_13_36_0.pdf Graphic file (type pdf)
+
+
+Package pdftex.def Info: lecture_13_files/lecture_13_36_0.pdf used on input lin
+e 1260.
+(pdftex.def) Requested size: 449.6789pt x 337.25917pt.
+ [18]
+Underfull \hbox (badness 10000) in paragraph at lines 1262--1263
+
+ []
+
+
+File: lecture_13_files/lecture_13_36_1.pdf Graphic file (type pdf)
+
+
+Package pdftex.def Info: lecture_13_files/lecture_13_36_1.pdf used on input lin
+e 1265.
+(pdftex.def) Requested size: 449.6789pt x 337.25917pt.
+ [19 <./lecture_13_files/lecture_13_36_0.pdf>]
+Underfull \hbox (badness 10000) in paragraph at lines 1267--1268
+
+ []
+
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1278.
+[20 <./lecture_13_files/lecture_13_36_1.pdf>]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 1278.
+ (./lecture_13.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1278.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1278.
+
+Package rerunfilecheck Info: File `lecture_13.out' has not changed.
+(rerunfilecheck) Checksum: 5887D69934ACBC48543EBFE830C6564B;1422.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1278.
+ )
+Here is how much of TeX's memory you used:
+ 11009 strings out of 493029
+ 165053 string characters out of 6136234
+ 275769 words of memory out of 5000000
+ 14263 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,878b,465s stack positions out of 5000i,500n,10000p,200000b,80000s
+{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}{/usr/share/texmf/
+fonts/enc/dvips/cm-super/cm-super-ts1.enc}{/usr/share/texmf/fonts/enc/dvips/cm-
+super/cm-super-t1.enc}
+Output written on lecture_13.pdf (20 pages, 274185 bytes).
+PDF statistics:
+ 294 PDF objects out of 1000 (max. 8388607)
+ 237 compressed objects within 3 object streams
+ 49 named destinations out of 1000 (max. 500000)
+ 180 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..88716ad
--- /dev/null
+++ b/lecture_13/lecture_13.md
@@ -0,0 +1,962 @@
+
+
+```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)
+
+
+
+# Markdown examples
+
+` " ' ` `
+
+```matlab
+x=linspace(0,1);
+y=x.^2;
+plot(x,y)
+for i = 1:10
+ fprintf('markdown is pretty')
+end
+```
+
+## 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_{j=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; % shortcut invA(:,1)=A\[1;0;0]
+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
+
+
+## P=2 norm is ratio of biggest eigenvalue to smallest eigenvalue!
+
+no need to calculate the inv(K)
+
+# 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.2x_{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/3 & 0.2/3 \\
+0.1/7 & 0 & -0.3/7 \\
+0.3/10 & -0.2/10 & 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_24_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')
+xlabel('x_1')
+ylabel('x_2')
+```
+
+
+![svg](lecture_13_files/lecture_13_29_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}
+x_{1,i} \\
+x_{2,i} \\
+\vdots \\
+x_{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$=100 N/m and $k_2$=-10 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})$
+
+
+
+
+```octave
+m1=1; % kg
+m2=2; % kg
+k1=100; % N/m
+k2=-10; % 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,10,20),linspace(0,10,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)]);
+ F1(i,j)=f(1);
+ F2(i,j)=f(2);
+ end
+end
+mesh(X,Y,F1)
+xlabel('x_1')
+ylabel('x_2')
+colorbar()
+figure()
+mesh(X,Y,F2)
+xlabel('x_1')
+ylabel('x_2')
+colorbar()
+```
+
+
+![svg](lecture_13_files/lecture_13_36_0.svg)
+
+
+
+![svg](lecture_13_files/lecture_13_36_1.svg)
+
+
+
+```octave
+
+```
diff --git a/lecture_13/lecture_13.out b/lecture_13/lecture_13.out
new file mode 100644
index 0000000..f10cd22
--- /dev/null
+++ b/lecture_13/lecture_13.out
@@ -0,0 +1,18 @@
+\BOOKMARK [2][-]{subsection.0.1}{My question from last class}{}% 1
+\BOOKMARK [2][-]{subsection.0.2}{Your questions from last class}{}% 2
+\BOOKMARK [1][-]{section.1}{Markdown examples}{}% 3
+\BOOKMARK [2][-]{subsection.1.1}{Condition of a matrix}{section.1}% 4
+\BOOKMARK [3][-]{subsubsection.1.1.1}{just checked in to see what condition my condition was in}{subsection.1.1}% 5
+\BOOKMARK [3][-]{subsubsection.1.1.2}{Matrix norms}{subsection.1.1}% 6
+\BOOKMARK [3][-]{subsubsection.1.1.3}{Condition of Matrix}{subsection.1.1}% 7
+\BOOKMARK [2][-]{subsection.1.2}{P=2 norm is ratio of biggest eigenvalue to smallest eigenvalue!}{section.1}% 8
+\BOOKMARK [1][-]{section.2}{Iterative Methods}{}% 9
+\BOOKMARK [2][-]{subsection.2.1}{Gauss-Seidel method}{section.2}% 10
+\BOOKMARK [3][-]{subsubsection.2.1.1}{Gauss-Seidel Iterative approach}{subsection.2.1}% 11
+\BOOKMARK [3][-]{subsubsection.2.1.2}{Jacobi method}{subsection.2.1}% 12
+\BOOKMARK [2][-]{subsection.2.2}{Gauss-Seidel with Relaxation}{section.2}% 13
+\BOOKMARK [2][-]{subsection.2.3}{Nonlinear Systems}{section.2}% 14
+\BOOKMARK [2][-]{subsection.2.4}{Newton-Raphson part II}{section.2}% 15
+\BOOKMARK [3][-]{subsubsection.2.4.1}{Solution is again in the form Ax=b}{subsection.2.4}% 16
+\BOOKMARK [2][-]{subsection.2.5}{Example of Jacobian calculation}{section.2}% 17
+\BOOKMARK [3][-]{subsubsection.2.5.1}{Nonlinear springs supporting two masses in series}{subsection.2.5}% 18
diff --git a/lecture_13/lecture_13.pdf b/lecture_13/lecture_13.pdf
new file mode 100644
index 0000000..5a45770
Binary files /dev/null and b/lecture_13/lecture_13.pdf differ
diff --git a/lecture_13/lecture_13.tex b/lecture_13/lecture_13.tex
new file mode 100644
index 0000000..72647e9
--- /dev/null
+++ b/lecture_13/lecture_13.tex
@@ -0,0 +1,1278 @@
+
+% Default to the notebook output style
+
+
+
+
+% Inherit from the specified cell style.
+
+
+
+
+
+\documentclass[11pt]{article}
+
+
+
+ \usepackage[T1]{fontenc}
+ % Nicer default font (+ math font) than Computer Modern for most use cases
+ \usepackage{mathpazo}
+
+ % Basic figure setup, for now with no caption control since it's done
+ % automatically by Pandoc (which extracts ![](path) syntax from Markdown).
+ \usepackage{graphicx}
+ % We will generate all images so they have a width \maxwidth. This means
+ % that they will get their normal width if they fit onto the page, but
+ % are scaled down if they would overflow the margins.
+ \makeatletter
+ \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth
+ \else\Gin@nat@width\fi}
+ \makeatother
+ \let\Oldincludegraphics\includegraphics
+ % Set max figure width to be 80% of text width, for now hardcoded.
+ \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}}
+ % Ensure that by default, figures have no caption (until we provide a
+ % proper Figure object with a Caption API and a way to capture that
+ % in the conversion process - todo).
+ \usepackage{caption}
+ \DeclareCaptionLabelFormat{nolabel}{}
+ \captionsetup{labelformat=nolabel}
+
+ \usepackage{adjustbox} % Used to constrain images to a maximum size
+ \usepackage{xcolor} % Allow colors to be defined
+ \usepackage{enumerate} % Needed for markdown enumerations to work
+ \usepackage{geometry} % Used to adjust the document margins
+ \usepackage{amsmath} % Equations
+ \usepackage{amssymb} % Equations
+ \usepackage{textcomp} % defines textquotesingle
+ % Hack from http://tex.stackexchange.com/a/47451/13684:
+ \AtBeginDocument{%
+ \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code
+ }
+ \usepackage{upquote} % Upright quotes for verbatim code
+ \usepackage{eurosym} % defines \euro
+ \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support
+ \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document
+ \usepackage{fancyvrb} % verbatim replacement that allows latex
+ \usepackage{grffile} % extends the file name processing of package graphics
+ % to support a larger range
+ % The hyperref package gives us a pdf with properly built
+ % internal navigation ('pdf bookmarks' for the table of contents,
+ % internal cross-reference links, web links for URLs, etc.)
+ \usepackage{hyperref}
+ \usepackage{longtable} % longtable support required by pandoc >1.10
+ \usepackage{booktabs} % table support for pandoc > 1.12.2
+ \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment)
+ \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout)
+ % normalem makes italics be italics, not underlines
+
+
+
+
+ % Colors for the hyperref package
+ \definecolor{urlcolor}{rgb}{0,.145,.698}
+ \definecolor{linkcolor}{rgb}{.71,0.21,0.01}
+ \definecolor{citecolor}{rgb}{.12,.54,.11}
+
+ % ANSI colors
+ \definecolor{ansi-black}{HTML}{3E424D}
+ \definecolor{ansi-black-intense}{HTML}{282C36}
+ \definecolor{ansi-red}{HTML}{E75C58}
+ \definecolor{ansi-red-intense}{HTML}{B22B31}
+ \definecolor{ansi-green}{HTML}{00A250}
+ \definecolor{ansi-green-intense}{HTML}{007427}
+ \definecolor{ansi-yellow}{HTML}{DDB62B}
+ \definecolor{ansi-yellow-intense}{HTML}{B27D12}
+ \definecolor{ansi-blue}{HTML}{208FFB}
+ \definecolor{ansi-blue-intense}{HTML}{0065CA}
+ \definecolor{ansi-magenta}{HTML}{D160C4}
+ \definecolor{ansi-magenta-intense}{HTML}{A03196}
+ \definecolor{ansi-cyan}{HTML}{60C6C8}
+ \definecolor{ansi-cyan-intense}{HTML}{258F8F}
+ \definecolor{ansi-white}{HTML}{C5C1B4}
+ \definecolor{ansi-white-intense}{HTML}{A1A6B2}
+
+ % commands and environments needed by pandoc snippets
+ % extracted from the output of `pandoc -s`
+ \providecommand{\tightlist}{%
+ \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
+ \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
+ % Add ',fontsize=\small' for more characters per line
+ \newenvironment{Shaded}{}{}
+ \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
+ \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}}
+ \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+ \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+ \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}}
+ \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+ \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+ \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}}
+ \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}}
+ \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
+ \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}}
+ \newcommand{\RegionMarkerTok}[1]{{#1}}
+ \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}}
+ \newcommand{\NormalTok}[1]{{#1}}
+
+ % Additional commands for more recent versions of Pandoc
+ \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}}
+ \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+ \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}}
+ \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}}
+ \newcommand{\ImportTok}[1]{{#1}}
+ \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}}
+ \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+ \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+ \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}}
+ \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}}
+ \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}}
+ \newcommand{\BuiltInTok}[1]{{#1}}
+ \newcommand{\ExtensionTok}[1]{{#1}}
+ \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}}
+ \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}}
+ \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+ \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}}
+
+
+ % Define a nice break command that doesn't care if a line doesn't already
+ % exist.
+ \def\br{\hspace*{\fill} \\* }
+ % Math Jax compatability definitions
+ \def\gt{>}
+ \def\lt{<}
+ % Document parameters
+ \title{lecture\_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}
+
+ \section{Markdown examples}\label{markdown-examples}
+
+\texttt{"\ \textquotesingle{}} `
+
+\begin{Shaded}
+\begin{Highlighting}[]
+\NormalTok{x=linspace(}\FloatTok{0}\NormalTok{,}\FloatTok{1}\NormalTok{);}
+\NormalTok{y=x.^}\FloatTok{2}\NormalTok{;}
+\NormalTok{plot(x,y)}
+\NormalTok{for i = }\FloatTok{1}\NormalTok{:}\FloatTok{10}
+ \NormalTok{fprintf(}\StringTok{'markdown is pretty'}\NormalTok{)}
+\NormalTok{end}
+\end{Highlighting}
+\end{Shaded}
+
+ \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_{j=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}7}]:} \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}8}]:} \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{c}{\PYZpc{} shortcut invA(:,1)=A\PYZbs{}[1;0;0]}
+ \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}9}]:} \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}10}]:} \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}11}]:} \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}
+
+ \subsection{P=2 norm is ratio of biggest eigenvalue to smallest
+eigenvalue!}\label{p2-norm-is-ratio-of-biggest-eigenvalue-to-smallest-eigenvalue}
+
+no need to calculate the inv(K)
+
+ \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.2x_{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}12}]:} \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/3 & 0.2/3 \\ 0.1/7 & 0 & -0.3/7 \\ 0.3/10 & -0.2/10 & 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}14}]:} \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}15}]:} \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}16}]:} \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}17}]:} \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_24_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}19}]:} \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}{)}
+ \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}{)}
+\end{Verbatim}
+
+ \begin{center}
+ \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_29_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} x_{1,i} \\ x_{2,i} \\ \vdots \\ x_{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$=100 N/m and $k_2$=-10 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})$
+
+ \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}{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}
+\end{Verbatim}
+
+ \begin{Verbatim}[commandchars=\\\{\}]
+{\color{incolor}In [{\color{incolor}20}]:} \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}21}]:} \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}22}]:} \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}23}]:} \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}26}]:} \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}{10}\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}{10}\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}{F1}\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{n}{F2}\PY{p}{(}\PY{n}{i}\PY{p}{,}\PY{n}{j}\PY{p}{)}\PY{p}{=}\PY{n}{f}\PY{p}{(}\PY{l+m+mi}{2}\PY{p}{)}\PY{p}{;}
+ \PY{k}{end}
+ \PY{k}{end}
+ \PY{n+nb}{mesh}\PY{p}{(}\PY{n}{X}\PY{p}{,}\PY{n}{Y}\PY{p}{,}\PY{n}{F1}\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}{mesh}\PY{p}{(}\PY{n}{X}\PY{p}{,}\PY{n}{Y}\PY{p}{,}\PY{n}{F2}\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_36_0.pdf}
+ \end{center}
+ { \hspace*{\fill} \\}
+
+ \begin{center}
+ \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{lecture_13_files/lecture_13_36_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 0000000..292be46
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_22_1.pdf differ
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_24_1.pdf b/lecture_13/lecture_13_files/lecture_13_24_1.pdf
new file mode 100644
index 0000000..292be46
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_24_1.pdf differ
diff --git a/lecture_13/lecture_13_files/lecture_13_24_1.svg b/lecture_13/lecture_13_files/lecture_13_24_1.svg
new file mode 100644
index 0000000..c8482cc
--- /dev/null
+++ b/lecture_13/lecture_13_files/lecture_13_24_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 0000000..45aaf4e
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_27_0.pdf differ
diff --git a/lecture_13/lecture_13_files/lecture_13_27_0.svg b/lecture_13/lecture_13_files/lecture_13_27_0.svg
new file mode 100644
index 0000000..acc1eeb
--- /dev/null
+++ b/lecture_13/lecture_13_files/lecture_13_27_0.svg
@@ -0,0 +1,131 @@
+
+
+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_29_0.pdf b/lecture_13/lecture_13_files/lecture_13_29_0.pdf
new file mode 100644
index 0000000..5394e08
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_29_0.pdf differ
diff --git a/lecture_13/lecture_13_files/lecture_13_29_0.svg b/lecture_13/lecture_13_files/lecture_13_29_0.svg
new file mode 100644
index 0000000..31dbf03
--- /dev/null
+++ b/lecture_13/lecture_13_files/lecture_13_29_0.svg
@@ -0,0 +1,141 @@
+
+
+Gnuplot
+Produced by GNUPLOT 5.0 patchlevel 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 5
+
+
+
+
+ 10
+
+
+
+
+ 15
+
+
+
+
+ 20
+
+
+
+
+ 0
+
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+ 4
+
+
+
+
+ 5
+
+
+
+
+
+
+
+
+ x 2
+
+
+
+
+ x 1
+
+
+
+
+ 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 0000000..d9bb774
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_34_0.pdf differ
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
+
+
+
+
+ x 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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 0000000..d9bb774
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_34_1.pdf differ
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
+
+
+
+
+ x 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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_36_0.pdf b/lecture_13/lecture_13_files/lecture_13_36_0.pdf
new file mode 100644
index 0000000..eca271a
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_36_0.pdf differ
diff --git a/lecture_13/lecture_13_files/lecture_13_36_0.svg b/lecture_13/lecture_13_files/lecture_13_36_0.svg
new file mode 100644
index 0000000..3d836e3
--- /dev/null
+++ b/lecture_13/lecture_13_files/lecture_13_36_0.svg
@@ -0,0 +1,1887 @@
+
+
+Gnuplot
+Produced by GNUPLOT 5.0 patchlevel 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_1a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_2a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+ x 1
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+ x 2
+
+
+
+
+
+
+
+
+
+
+ -500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2000
+
+
+
+
+
+
+
+
+
+
+
+
+ 2500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_1b
+
+
+
+ ;
+
+
+
+
+
+
+ 0
+
+
+
+
+ 500
+
+
+
+
+ 1000
+
+
+
+
+ 1500
+
+
+
+
+ 2000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lecture_13/lecture_13_files/lecture_13_36_1.pdf b/lecture_13/lecture_13_files/lecture_13_36_1.pdf
new file mode 100644
index 0000000..da00267
Binary files /dev/null and b/lecture_13/lecture_13_files/lecture_13_36_1.pdf differ
diff --git a/lecture_13/lecture_13_files/lecture_13_36_1.svg b/lecture_13/lecture_13_files/lecture_13_36_1.svg
new file mode 100644
index 0000000..92ee787
--- /dev/null
+++ b/lecture_13/lecture_13_files/lecture_13_36_1.svg
@@ -0,0 +1,1857 @@
+
+
+Gnuplot
+Produced by GNUPLOT 5.0 patchlevel 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_1a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_2a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+ x 1
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+ 2
+
+
+
+
+
+
+
+
+ 4
+
+
+
+
+
+
+
+
+ 6
+
+
+
+
+
+
+
+
+ 8
+
+
+
+
+
+
+
+
+ 10
+
+
+
+
+ x 2
+
+
+
+
+
+
+
+
+
+
+ -2000
+
+
+
+
+
+
+
+
+
+
+
+
+ -1500
+
+
+
+
+
+
+
+
+
+
+
+
+ -1000
+
+
+
+
+
+
+
+
+
+
+
+
+ -500
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gnuplot_plot_1b
+
+
+
+ ;
+
+
+
+
+
+
+ -1500
+
+
+
+
+ -1000
+
+
+
+
+ -500
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ 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 0000000..5f2d273
Binary files /dev/null and b/lecture_13/norm_A.png differ
diff --git a/lecture_13/octave-workspace b/lecture_13/octave-workspace
new file mode 100644
index 0000000..8c437bb
Binary files /dev/null and b/lecture_13/octave-workspace differ
diff --git a/lecture_14/fx.png b/lecture_14/fx.png
new file mode 100644
index 0000000..618e565
Binary files /dev/null and b/lecture_14/fx.png differ
diff --git a/lecture_14/lecture_14.pdf b/lecture_14/lecture_14.pdf
new file mode 100755
index 0000000..8c74cc6
Binary files /dev/null and b/lecture_14/lecture_14.pdf differ
diff --git a/lecture_15/.ipynb_checkpoints/lecture_15-checkpoint.ipynb b/lecture_15/.ipynb_checkpoints/lecture_15-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/lecture_15/.ipynb_checkpoints/lecture_15-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/lecture_15/animate_eig.m b/lecture_15/animate_eig.m
new file mode 100644
index 0000000..a4721a5
--- /dev/null
+++ b/lecture_15/animate_eig.m
@@ -0,0 +1,56 @@
+function [v,e]=animate_eig(k,m)
+ % create a series of png's for use in an animation based on
+ % spring constants [k1,k2,k3]=k
+ % and
+ % masses
+ % [m1,m2]=m
+
+ % check inputs for m and k
+ if length(m)==1
+ m1=m;
+ m2=m;
+ else
+ m1=m(1);
+ m2=m(2);
+ end
+ if length(k)==1
+ k1=k; k2=k; k3=k;
+ else
+ k1=k(1);
+ k2=k(2);
+ k3=k(3);
+ end
+ setdefaults
+ K=[k1/m1+k2/m1,-k2/m1;-k3/m2,k2/m2+k3/m2];
+ [v,e]=eig(K);
+ w1=e(1,1); w2=e(2,2);
+ scale = 0.5; % the magnitude of oscillations is not important for vibrational modes
+ % just set scale to 1/2 for nice plots
+ % the eigenvector magnitude is independent of the solution
+ X11=v(1,1)*scale; X12=v(2,1)*scale;
+ X21=v(1,2)*scale; X22=v(2,2)*scale;
+ f11=@(t) X11*sin(w1*t); f12=@(t) X12*sin(w1*t);
+ f21=@(t) X21*sin(w2*t); f22=@(t) X22*sin(w2*t);
+ f=figure();
+ time=linspace(-1,4);
+ % create a loop to plot the position over time where mass 1 and 2 start at x=1 and x=2 m
+ % then for the next vibrational mode, mass 1 and 2 start at x=3 and x=4 m
+
+ for i=1:length(time)
+ t=time(i);
+ plot(f11(t)+1,0,'rs',f11(time+t)+1,-time,...
+ f12(t)+2,0,'rs',f12(time+t)+2,-time,...
+ f21(t)+3,0,'bo',f21(time+t)+3,-time,...
+ f22(t)+4,0,'bo',f22(time+t)+4,-time)
+ axis([0 6 -4 1])
+ title('Vibration Modes')
+ xlabel('position (m)')
+ ylabel('time (s)')
+ filename=sprintf('output/%05d.png',i);
+ % another option for saving a plot to a png is the 'print' command
+ print(filename)
+ end
+ % this is a system command to use ImageMagick's cli 'convert' to create an animated gif
+ % if you don't have ImageMagick installed, comment this next line
+ system ("convert -delay 10 -loop 0 output/*png eigenvalues.gif")
+end
diff --git a/lecture_15/eig_200_100_40_20.gif b/lecture_15/eig_200_100_40_20.gif
new file mode 100644
index 0000000..1b583a7
Binary files /dev/null and b/lecture_15/eig_200_100_40_20.gif differ
diff --git a/lecture_15/eig_200_100_40_50.gif b/lecture_15/eig_200_100_40_50.gif
new file mode 100644
index 0000000..ba05f59
Binary files /dev/null and b/lecture_15/eig_200_100_40_50.gif differ
diff --git a/lecture_15/eig_200_40.gif b/lecture_15/eig_200_40.gif
new file mode 100644
index 0000000..f29f27e
Binary files /dev/null and b/lecture_15/eig_200_40.gif differ
diff --git a/lecture_15/eigenvalues.gif b/lecture_15/eigenvalues.gif
new file mode 100644
index 0000000..1286762
Binary files /dev/null and b/lecture_15/eigenvalues.gif differ
diff --git a/lecture_15/lecture_15.ipynb b/lecture_15/lecture_15.ipynb
new file mode 100644
index 0000000..49e4b52
--- /dev/null
+++ b/lecture_15/lecture_15.ipynb
@@ -0,0 +1,618 @@
+{
+ "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": [
+ "## UConn Hackathon Mar 24-25\n",
+ "\n",
+ "[https://www.hackuconn.org/](https://www.hackuconn.org/)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Final Project\n",
+ "\n",
+ "1. Will be a team project (select team of 2-3 students)\n",
+ "\n",
+ "2. You will create a repository and each of you will contribute code and documentation\n",
+ "\n",
+ "3. If you have an idea feel free to suggest it, otherwise I will come up with a project, possible topics include:\n",
+ "\n",
+ " a. Conduction of heat through simple geometry\n",
+ " \n",
+ " b. Plate or beam mechanics (1-D and 2-D geometries)\n",
+ " \n",
+ " c. \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Eigenvalues\n",
+ "\n",
+ "Eigenvalues and eigen vectors are the solution to the set of equations where\n",
+ "\n",
+ "$Ax=\\lambda x$\n",
+ "\n",
+ "or \n",
+ "\n",
+ "$A-I \\lambda=0$\n",
+ "\n",
+ "Where A is the description of the system and I is the identity matrix with the same dimensions as A and $\\lambda$ is an eigenvalue of A. \n",
+ "\n",
+ "These problems are seen in a number of engineering practices:\n",
+ "\n",
+ "1. Determining vibrational modes in structural devices\n",
+ "\n",
+ "2. Material science - vibrational modes of crystal lattices (phonons)\n",
+ "\n",
+ "3. [Google searches - http://www.rose-hulman.edu/~bryan/googleFinalVersionFixed.pdf](http://www.rose-hulman.edu/~bryan/googleFinalVersionFixed.pdf)\n",
+ "\n",
+ "4. Quantum mechanics - many solutions are eigenvalue problems\n",
+ "\n",
+ "5. Solid mechanics, principle stresses and principle stress directions are eigenvalues and eigenvectors\n",
+ "\n",
+ "One way of determining the eigenvalues is taking the determinant:\n",
+ "\n",
+ "$|A-\\lambda I|=0$\n",
+ "\n",
+ "This will result in an $n^{th}$-order polynomial where A is $n \\times n$."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Take, A\n",
+ "\n",
+ "$A=\\left[\\begin{array}{ccc}\n",
+ "2 & 1 & 0 \\\\\n",
+ "1 & 3 & 1 \\\\\n",
+ "0 & 1 & 4 \\end{array}\\right]$\n",
+ "\n",
+ "$|A-\\lambda I| = \\left|\\begin{array}{ccc}\n",
+ "2-\\lambda & 1 & 0 \\\\\n",
+ "1 & 3-\\lambda & 1 \\\\\n",
+ "0 & 1 & 4-\\lambda \\end{array}\\right|=0$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "$(2-\\lambda)(3-\\lambda)(4-\\lambda)-(4-\\lambda)-(2-\\lambda)=0$\n",
+ "\n",
+ "$-\\lambda^{3}+9\\lambda^{2}-24\\lambda+18 =0$\n",
+ "\n",
+ "$\\lambda = 3,~\\sqrt{3}+3,-\\sqrt{3}+3$\n",
+ "\n",
+ "in Matlab/Octave:\n",
+ "\n",
+ "```matlab\n",
+ "A=[2,1,0;1,3,1;0,1,4];\n",
+ "pA=poly(A);\n",
+ "lambda = roots(pA)\n",
+ "```\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "lambda =\n",
+ "\n",
+ " 4.7321\n",
+ " 3.0000\n",
+ " 1.2679\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "A=[2,1,0;1,3,1;0,1,4];\n",
+ "pA=poly(A); % characteristic polynomial of A, e.g. l^3-9*l^2+24*l-18=0\n",
+ "lambda = roots(pA)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Applications of Eigenvalue analysis\n",
+ "\n",
+ "Consider the 2-mass, 3-spring system shown below\n",
+ "\n",
+ "![masses and springs in series](springs_masses.png)\n",
+ "\n",
+ "It might not be immediately obvious, but there are two resonant frequencies for these masses connected in series. \n",
+ "\n",
+ "Take the two FBD solutions:\n",
+ "\n",
+ "$m_{1}\\frac{d^{2}x_{1}}{dt^{2}}=-kx_{1}+k(x_{2}-x_{1})$\n",
+ "\n",
+ "$m_{2}\\frac{d^{2}x_{2}}{dt^{2}}=-k(x_{2}-x_{1})-kx_{2}$\n",
+ "\n",
+ "we know that $x_{i}(t)\\propto sin(\\omega t)$ so we can substitute\n",
+ "\n",
+ "$x_{i}=X_{i}sin(\\omega t)$\n",
+ "\n",
+ "$-m_{1}X_{1}\\omega^{2}sin(\\omega t) = -kX_{1}sin(\\omega t) +k(X_{2}-X_{1})sin(\\omega t)$\n",
+ "\n",
+ "$-m_{2}X_{2}\\omega^{2}sin(\\omega t) = -kX_{2}sin(\\omega t) - k(X_{2}-X_{1})sin(\\omega t)$\n",
+ "\n",
+ "where $X_{1}$ and $X_{2}$ are the amplitude of oscillations and $\\omega$ is the frequency of oscillations. "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "now, \n",
+ "\n",
+ "$\\left(\\frac{2k}{m_{1}}-\\omega^{2}\\right)X_{1}-\\frac{k}{m_{1}}X_{2} = 0$\n",
+ "\n",
+ "\n",
+ "$-\\frac{k}{m_{2}}X_{1}+\\left(\\frac{2k}{m_{2}}-\\omega^{2}\\right)X_{2} = 0$\n",
+ "\n",
+ "or\n",
+ "\n",
+ "$|K-\\lambda I| = \\left|\\begin{array}{cc}\n",
+ "\\left(\\frac{2k}{m_{1}}-\\omega^{2}\\right) & -\\frac{k}{m_{1}} \\\\\n",
+ "-\\frac{k}{m_{2}} & \\left(\\frac{2k}{m_{2}}-\\omega^{2}\\right)\n",
+ "\\end{array}\\right|=0$\n",
+ "\n",
+ "where $\\lambda = \\omega^{2}$\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "'eig' is a built-in function from the file libinterp/corefcn/eig.cc\n",
+ "\n",
+ " -- Built-in Function: LAMBDA = eig (A)\n",
+ " -- Built-in Function: LAMBDA = eig (A, B)\n",
+ " -- Built-in Function: [V, LAMBDA] = eig (A)\n",
+ " -- Built-in Function: [V, LAMBDA] = eig (A, B)\n",
+ " Compute the eigenvalues (and optionally the eigenvectors) of a\n",
+ " matrix or a pair of matrices\n",
+ "\n",
+ " The algorithm used depends on whether there are one or two input\n",
+ " matrices, if they are real or complex, and if they are symmetric\n",
+ " (Hermitian if complex) or non-symmetric.\n",
+ "\n",
+ " The eigenvalues returned by 'eig' are not ordered.\n",
+ "\n",
+ " See also: eigs, svd.\n",
+ "\n",
+ "Additional help for built-in functions and operators is\n",
+ "available in the online version of the manual. Use the command\n",
+ "'doc ' to search the manual index.\n",
+ "\n",
+ "Help and information about Octave is also available on the WWW\n",
+ "at http://www.octave.org and via the help@octave.org\n",
+ "mailing list.\n"
+ ]
+ }
+ ],
+ "source": [
+ "help eig"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "K =\n",
+ "\n",
+ " 10 -5\n",
+ " -5 10\n",
+ "\n",
+ "v =\n",
+ "\n",
+ " -0.70711 -0.70711\n",
+ " -0.70711 0.70711\n",
+ "\n",
+ "e =\n",
+ "\n",
+ "Diagonal Matrix\n",
+ "\n",
+ " 5 0\n",
+ " 0 15\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "m=40; % mass in kg\n",
+ "k=200; % spring constant in N/m\n",
+ "\n",
+ "K=[2*k/m,-k/m;-k/m,2*k/m]\n",
+ "\n",
+ "[v,e]=eig(K)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "ans =\n",
+ "\n",
+ " -10.607\n",
+ " 10.607\n",
+ "\n",
+ "ans =\n",
+ "\n",
+ " -10.607\n",
+ " 10.607\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "K*v(:,2)\n",
+ "e(2,2)*v(:,2)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### $m_{1}=m_{2}=$40 kg and $k_{1}=k_{2}=k_{3}=$200 N/m\n",
+ "![animation](./eig_200_40.gif)\n",
+ "\n",
+ "### $m_{1}=$40 kg, $m_{2}=$50 kg, $k_{1}=$200 N/m, and $k_{2}=k_{3}=$100 N/m\n",
+ "![animation](./eig_200_100_40_50.gif)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Solid Mechanics\n",
+ "\n",
+ "Many times you want to know the \"principle\" components of stress or strain. \n",
+ "\n",
+ "stress and strain are second order tensors:\n",
+ "\n",
+ "$\\sigma_{ij} =\\frac{F_{i}}{A_{j}}$ (engineering stress)\n",
+ "\n",
+ "$\\epsilon_{ij}=\\frac{\\Delta l_{i}}{l_{j}}$ (engineering strain)\n",
+ "\n",
+ "Imagine you can apply a force in two directions normal to each other, could you create a shear stress? \n",
+ "\n",
+ "![Desired stress state and with unknown applied stresses](stress.svg)\n",
+ "\n",
+ "Let's try to create the stress state of 10 MPa shear stress with two normal stresses. \n",
+ "\n",
+ "that means, $\\sigma_{12}=\\sigma_{21}=$10 MPa, and $\\sigma_{11}=\\sigma_{22}=\\sigma_{33}=\\sigma_{23}=\\sigma_{13}=0$ MPa\n",
+ "\n",
+ "in matrix form:\n",
+ "\n",
+ "$[\\sigma]=\\left[\\begin{array}{ccc}\n",
+ "0 & 10 & 0 \\\\\n",
+ "10 & 0 & 0 \\\\\n",
+ "0 & 0 & 0 \\end{array} \\right]$ MPa"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "v =\n",
+ "\n",
+ " -0.70711 0.00000 0.70711\n",
+ " 0.70711 0.00000 0.70711\n",
+ " 0.00000 1.00000 0.00000\n",
+ "\n",
+ "e =\n",
+ "\n",
+ "Diagonal Matrix\n",
+ "\n",
+ " -10 0 0\n",
+ " 0 0 0\n",
+ " 0 0 10\n",
+ "\n",
+ "v1 =\n",
+ "\n",
+ " 7.07107\n",
+ " -7.07107\n",
+ " 0.00000\n",
+ "\n",
+ "v2 =\n",
+ "\n",
+ " 7.07107\n",
+ " 7.07107\n",
+ " 0.00000\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "s=[0,10,0;10,0,0;0,0,0];\n",
+ "[v,e]=eig(s)\n",
+ "v1=s*v(:,1)\n",
+ "v2=s*v(:,3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "Gnuplot \n",
+ "Produced by GNUPLOT 5.0 patchlevel 3 \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "v1=s*v(:,1);\n",
+ "v2=s*v(:,3);\n",
+ "%quiver([0,0],[0,0],v(1,[1,3]),v(2,[1,3]))\n",
+ "quiver([0,0],[0,0],[v1(1),v2(1)],[v1(2),v2(2)])\n",
+ "axis([-10,10,-10,10])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![solution to principle stresses](stress_soln.svg)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "e =\n",
+ "\n",
+ " -10\n",
+ " 0\n",
+ " 10\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "e=eig(s)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "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_15/lecture_15.pdf b/lecture_15/lecture_15.pdf
new file mode 100644
index 0000000..94d5f8c
Binary files /dev/null and b/lecture_15/lecture_15.pdf differ
diff --git a/lecture_15/octave-workspace b/lecture_15/octave-workspace
new file mode 100644
index 0000000..8c437bb
Binary files /dev/null and b/lecture_15/octave-workspace differ
diff --git a/lecture_15/output/00001.png b/lecture_15/output/00001.png
new file mode 100644
index 0000000..44210b6
Binary files /dev/null and b/lecture_15/output/00001.png differ
diff --git a/lecture_15/output/00002.png b/lecture_15/output/00002.png
new file mode 100644
index 0000000..31a03bb
Binary files /dev/null and b/lecture_15/output/00002.png differ
diff --git a/lecture_15/output/00003.png b/lecture_15/output/00003.png
new file mode 100644
index 0000000..08cd507
Binary files /dev/null and b/lecture_15/output/00003.png differ
diff --git a/lecture_15/output/00004.png b/lecture_15/output/00004.png
new file mode 100644
index 0000000..590a413
Binary files /dev/null and b/lecture_15/output/00004.png differ
diff --git a/lecture_15/output/00005.png b/lecture_15/output/00005.png
new file mode 100644
index 0000000..240744a
Binary files /dev/null and b/lecture_15/output/00005.png differ
diff --git a/lecture_15/output/00006.png b/lecture_15/output/00006.png
new file mode 100644
index 0000000..e31a3c7
Binary files /dev/null and b/lecture_15/output/00006.png differ
diff --git a/lecture_15/output/00007.png b/lecture_15/output/00007.png
new file mode 100644
index 0000000..7ad26e6
Binary files /dev/null and b/lecture_15/output/00007.png differ
diff --git a/lecture_15/output/00008.png b/lecture_15/output/00008.png
new file mode 100644
index 0000000..10bcf68
Binary files /dev/null and b/lecture_15/output/00008.png differ
diff --git a/lecture_15/output/00009.png b/lecture_15/output/00009.png
new file mode 100644
index 0000000..53e6f1c
Binary files /dev/null and b/lecture_15/output/00009.png differ
diff --git a/lecture_15/output/00010.png b/lecture_15/output/00010.png
new file mode 100644
index 0000000..c78c8ca
Binary files /dev/null and b/lecture_15/output/00010.png differ
diff --git a/lecture_15/output/00011.png b/lecture_15/output/00011.png
new file mode 100644
index 0000000..430a933
Binary files /dev/null and b/lecture_15/output/00011.png differ
diff --git a/lecture_15/output/00012.png b/lecture_15/output/00012.png
new file mode 100644
index 0000000..c708dd3
Binary files /dev/null and b/lecture_15/output/00012.png differ
diff --git a/lecture_15/output/00013.png b/lecture_15/output/00013.png
new file mode 100644
index 0000000..4a25731
Binary files /dev/null and b/lecture_15/output/00013.png differ
diff --git a/lecture_15/output/00014.png b/lecture_15/output/00014.png
new file mode 100644
index 0000000..ea02a38
Binary files /dev/null and b/lecture_15/output/00014.png differ
diff --git a/lecture_15/output/00015.png b/lecture_15/output/00015.png
new file mode 100644
index 0000000..f0f640e
Binary files /dev/null and b/lecture_15/output/00015.png differ
diff --git a/lecture_15/output/00016.png b/lecture_15/output/00016.png
new file mode 100644
index 0000000..44f338f
Binary files /dev/null and b/lecture_15/output/00016.png differ
diff --git a/lecture_15/output/00017.png b/lecture_15/output/00017.png
new file mode 100644
index 0000000..056a85b
Binary files /dev/null and b/lecture_15/output/00017.png differ
diff --git a/lecture_15/output/00018.png b/lecture_15/output/00018.png
new file mode 100644
index 0000000..2bab623
Binary files /dev/null and b/lecture_15/output/00018.png differ
diff --git a/lecture_15/output/00019.png b/lecture_15/output/00019.png
new file mode 100644
index 0000000..9dac5a7
Binary files /dev/null and b/lecture_15/output/00019.png differ
diff --git a/lecture_15/output/00020.png b/lecture_15/output/00020.png
new file mode 100644
index 0000000..1d4ab40
Binary files /dev/null and b/lecture_15/output/00020.png differ
diff --git a/lecture_15/output/00021.png b/lecture_15/output/00021.png
new file mode 100644
index 0000000..66eb44d
Binary files /dev/null and b/lecture_15/output/00021.png differ
diff --git a/lecture_15/output/00022.png b/lecture_15/output/00022.png
new file mode 100644
index 0000000..fa6fdc8
Binary files /dev/null and b/lecture_15/output/00022.png differ
diff --git a/lecture_15/output/00023.png b/lecture_15/output/00023.png
new file mode 100644
index 0000000..aa755e1
Binary files /dev/null and b/lecture_15/output/00023.png differ
diff --git a/lecture_15/output/00024.png b/lecture_15/output/00024.png
new file mode 100644
index 0000000..4e64252
Binary files /dev/null and b/lecture_15/output/00024.png differ
diff --git a/lecture_15/output/00025.png b/lecture_15/output/00025.png
new file mode 100644
index 0000000..a2fc1b3
Binary files /dev/null and b/lecture_15/output/00025.png differ
diff --git a/lecture_15/output/00026.png b/lecture_15/output/00026.png
new file mode 100644
index 0000000..041a839
Binary files /dev/null and b/lecture_15/output/00026.png differ
diff --git a/lecture_15/output/00027.png b/lecture_15/output/00027.png
new file mode 100644
index 0000000..41a54ff
Binary files /dev/null and b/lecture_15/output/00027.png differ
diff --git a/lecture_15/output/00028.png b/lecture_15/output/00028.png
new file mode 100644
index 0000000..b6cc8c8
Binary files /dev/null and b/lecture_15/output/00028.png differ
diff --git a/lecture_15/output/00029.png b/lecture_15/output/00029.png
new file mode 100644
index 0000000..4c665b8
Binary files /dev/null and b/lecture_15/output/00029.png differ
diff --git a/lecture_15/output/00030.png b/lecture_15/output/00030.png
new file mode 100644
index 0000000..71801e9
Binary files /dev/null and b/lecture_15/output/00030.png differ
diff --git a/lecture_15/output/00031.png b/lecture_15/output/00031.png
new file mode 100644
index 0000000..a30c5b9
Binary files /dev/null and b/lecture_15/output/00031.png differ
diff --git a/lecture_15/output/00032.png b/lecture_15/output/00032.png
new file mode 100644
index 0000000..8ef9b30
Binary files /dev/null and b/lecture_15/output/00032.png differ
diff --git a/lecture_15/output/00033.png b/lecture_15/output/00033.png
new file mode 100644
index 0000000..79f8e85
Binary files /dev/null and b/lecture_15/output/00033.png differ
diff --git a/lecture_15/output/00034.png b/lecture_15/output/00034.png
new file mode 100644
index 0000000..075d85e
Binary files /dev/null and b/lecture_15/output/00034.png differ
diff --git a/lecture_15/output/00035.png b/lecture_15/output/00035.png
new file mode 100644
index 0000000..bc73c87
Binary files /dev/null and b/lecture_15/output/00035.png differ
diff --git a/lecture_15/output/00036.png b/lecture_15/output/00036.png
new file mode 100644
index 0000000..48b5fae
Binary files /dev/null and b/lecture_15/output/00036.png differ
diff --git a/lecture_15/output/00037.png b/lecture_15/output/00037.png
new file mode 100644
index 0000000..7107cfc
Binary files /dev/null and b/lecture_15/output/00037.png differ
diff --git a/lecture_15/output/00038.png b/lecture_15/output/00038.png
new file mode 100644
index 0000000..c9c09b2
Binary files /dev/null and b/lecture_15/output/00038.png differ
diff --git a/lecture_15/output/00039.png b/lecture_15/output/00039.png
new file mode 100644
index 0000000..8755cf3
Binary files /dev/null and b/lecture_15/output/00039.png differ
diff --git a/lecture_15/output/00040.png b/lecture_15/output/00040.png
new file mode 100644
index 0000000..9503926
Binary files /dev/null and b/lecture_15/output/00040.png differ
diff --git a/lecture_15/output/00041.png b/lecture_15/output/00041.png
new file mode 100644
index 0000000..4311d25
Binary files /dev/null and b/lecture_15/output/00041.png differ
diff --git a/lecture_15/output/00042.png b/lecture_15/output/00042.png
new file mode 100644
index 0000000..3ce55af
Binary files /dev/null and b/lecture_15/output/00042.png differ
diff --git a/lecture_15/output/00043.png b/lecture_15/output/00043.png
new file mode 100644
index 0000000..8c619cf
Binary files /dev/null and b/lecture_15/output/00043.png differ
diff --git a/lecture_15/output/00044.png b/lecture_15/output/00044.png
new file mode 100644
index 0000000..2d91fd9
Binary files /dev/null and b/lecture_15/output/00044.png differ
diff --git a/lecture_15/output/00045.png b/lecture_15/output/00045.png
new file mode 100644
index 0000000..92e9720
Binary files /dev/null and b/lecture_15/output/00045.png differ
diff --git a/lecture_15/output/00046.png b/lecture_15/output/00046.png
new file mode 100644
index 0000000..62dfa75
Binary files /dev/null and b/lecture_15/output/00046.png differ
diff --git a/lecture_15/output/00047.png b/lecture_15/output/00047.png
new file mode 100644
index 0000000..b62ac38
Binary files /dev/null and b/lecture_15/output/00047.png differ
diff --git a/lecture_15/output/00048.png b/lecture_15/output/00048.png
new file mode 100644
index 0000000..0b90065
Binary files /dev/null and b/lecture_15/output/00048.png differ
diff --git a/lecture_15/output/00049.png b/lecture_15/output/00049.png
new file mode 100644
index 0000000..f7510c0
Binary files /dev/null and b/lecture_15/output/00049.png differ
diff --git a/lecture_15/output/00050.png b/lecture_15/output/00050.png
new file mode 100644
index 0000000..2c74c37
Binary files /dev/null and b/lecture_15/output/00050.png differ
diff --git a/lecture_15/output/00051.png b/lecture_15/output/00051.png
new file mode 100644
index 0000000..daabdee
Binary files /dev/null and b/lecture_15/output/00051.png differ
diff --git a/lecture_15/output/00052.png b/lecture_15/output/00052.png
new file mode 100644
index 0000000..15fb10c
Binary files /dev/null and b/lecture_15/output/00052.png differ
diff --git a/lecture_15/output/00053.png b/lecture_15/output/00053.png
new file mode 100644
index 0000000..07fb58c
Binary files /dev/null and b/lecture_15/output/00053.png differ
diff --git a/lecture_15/output/00054.png b/lecture_15/output/00054.png
new file mode 100644
index 0000000..7bc6b82
Binary files /dev/null and b/lecture_15/output/00054.png differ
diff --git a/lecture_15/output/00055.png b/lecture_15/output/00055.png
new file mode 100644
index 0000000..52df944
Binary files /dev/null and b/lecture_15/output/00055.png differ
diff --git a/lecture_15/output/00056.png b/lecture_15/output/00056.png
new file mode 100644
index 0000000..1677817
Binary files /dev/null and b/lecture_15/output/00056.png differ
diff --git a/lecture_15/output/00057.png b/lecture_15/output/00057.png
new file mode 100644
index 0000000..c4032a1
Binary files /dev/null and b/lecture_15/output/00057.png differ
diff --git a/lecture_15/output/00058.png b/lecture_15/output/00058.png
new file mode 100644
index 0000000..3afae58
Binary files /dev/null and b/lecture_15/output/00058.png differ
diff --git a/lecture_15/output/00059.png b/lecture_15/output/00059.png
new file mode 100644
index 0000000..9e18362
Binary files /dev/null and b/lecture_15/output/00059.png differ
diff --git a/lecture_15/output/00060.png b/lecture_15/output/00060.png
new file mode 100644
index 0000000..47af589
Binary files /dev/null and b/lecture_15/output/00060.png differ
diff --git a/lecture_15/output/00061.png b/lecture_15/output/00061.png
new file mode 100644
index 0000000..b12af4a
Binary files /dev/null and b/lecture_15/output/00061.png differ
diff --git a/lecture_15/output/00062.png b/lecture_15/output/00062.png
new file mode 100644
index 0000000..0999e97
Binary files /dev/null and b/lecture_15/output/00062.png differ
diff --git a/lecture_15/output/00063.png b/lecture_15/output/00063.png
new file mode 100644
index 0000000..5287e29
Binary files /dev/null and b/lecture_15/output/00063.png differ
diff --git a/lecture_15/output/00064.png b/lecture_15/output/00064.png
new file mode 100644
index 0000000..bbad872
Binary files /dev/null and b/lecture_15/output/00064.png differ
diff --git a/lecture_15/output/00065.png b/lecture_15/output/00065.png
new file mode 100644
index 0000000..61d2fe1
Binary files /dev/null and b/lecture_15/output/00065.png differ
diff --git a/lecture_15/output/00066.png b/lecture_15/output/00066.png
new file mode 100644
index 0000000..a1b9eeb
Binary files /dev/null and b/lecture_15/output/00066.png differ
diff --git a/lecture_15/output/00067.png b/lecture_15/output/00067.png
new file mode 100644
index 0000000..67ccce3
Binary files /dev/null and b/lecture_15/output/00067.png differ
diff --git a/lecture_15/output/00068.png b/lecture_15/output/00068.png
new file mode 100644
index 0000000..50c4da5
Binary files /dev/null and b/lecture_15/output/00068.png differ
diff --git a/lecture_15/output/00069.png b/lecture_15/output/00069.png
new file mode 100644
index 0000000..790f009
Binary files /dev/null and b/lecture_15/output/00069.png differ
diff --git a/lecture_15/output/00070.png b/lecture_15/output/00070.png
new file mode 100644
index 0000000..350e64a
Binary files /dev/null and b/lecture_15/output/00070.png differ
diff --git a/lecture_15/output/00071.png b/lecture_15/output/00071.png
new file mode 100644
index 0000000..d4d54b0
Binary files /dev/null and b/lecture_15/output/00071.png differ
diff --git a/lecture_15/output/00072.png b/lecture_15/output/00072.png
new file mode 100644
index 0000000..146d82f
Binary files /dev/null and b/lecture_15/output/00072.png differ
diff --git a/lecture_15/output/00073.png b/lecture_15/output/00073.png
new file mode 100644
index 0000000..cee2012
Binary files /dev/null and b/lecture_15/output/00073.png differ
diff --git a/lecture_15/output/00074.png b/lecture_15/output/00074.png
new file mode 100644
index 0000000..b762ee1
Binary files /dev/null and b/lecture_15/output/00074.png differ
diff --git a/lecture_15/output/00075.png b/lecture_15/output/00075.png
new file mode 100644
index 0000000..59f5ee9
Binary files /dev/null and b/lecture_15/output/00075.png differ
diff --git a/lecture_15/output/00076.png b/lecture_15/output/00076.png
new file mode 100644
index 0000000..59c0066
Binary files /dev/null and b/lecture_15/output/00076.png differ
diff --git a/lecture_15/output/00077.png b/lecture_15/output/00077.png
new file mode 100644
index 0000000..6048a1c
Binary files /dev/null and b/lecture_15/output/00077.png differ
diff --git a/lecture_15/output/00078.png b/lecture_15/output/00078.png
new file mode 100644
index 0000000..4473c93
Binary files /dev/null and b/lecture_15/output/00078.png differ
diff --git a/lecture_15/output/00079.png b/lecture_15/output/00079.png
new file mode 100644
index 0000000..7a6335a
Binary files /dev/null and b/lecture_15/output/00079.png differ
diff --git a/lecture_15/output/00080.png b/lecture_15/output/00080.png
new file mode 100644
index 0000000..821076d
Binary files /dev/null and b/lecture_15/output/00080.png differ
diff --git a/lecture_15/output/00081.png b/lecture_15/output/00081.png
new file mode 100644
index 0000000..d36a35c
Binary files /dev/null and b/lecture_15/output/00081.png differ
diff --git a/lecture_15/output/00082.png b/lecture_15/output/00082.png
new file mode 100644
index 0000000..bde9280
Binary files /dev/null and b/lecture_15/output/00082.png differ
diff --git a/lecture_15/output/00083.png b/lecture_15/output/00083.png
new file mode 100644
index 0000000..1691529
Binary files /dev/null and b/lecture_15/output/00083.png differ
diff --git a/lecture_15/output/00084.png b/lecture_15/output/00084.png
new file mode 100644
index 0000000..5adfef2
Binary files /dev/null and b/lecture_15/output/00084.png differ
diff --git a/lecture_15/output/00085.png b/lecture_15/output/00085.png
new file mode 100644
index 0000000..02067f8
Binary files /dev/null and b/lecture_15/output/00085.png differ
diff --git a/lecture_15/output/00086.png b/lecture_15/output/00086.png
new file mode 100644
index 0000000..2dfc5ac
Binary files /dev/null and b/lecture_15/output/00086.png differ
diff --git a/lecture_15/output/00087.png b/lecture_15/output/00087.png
new file mode 100644
index 0000000..a955fd7
Binary files /dev/null and b/lecture_15/output/00087.png differ
diff --git a/lecture_15/output/00088.png b/lecture_15/output/00088.png
new file mode 100644
index 0000000..7b38164
Binary files /dev/null and b/lecture_15/output/00088.png differ
diff --git a/lecture_15/output/00089.png b/lecture_15/output/00089.png
new file mode 100644
index 0000000..2c75b0f
Binary files /dev/null and b/lecture_15/output/00089.png differ
diff --git a/lecture_15/output/00090.png b/lecture_15/output/00090.png
new file mode 100644
index 0000000..e4489e6
Binary files /dev/null and b/lecture_15/output/00090.png differ
diff --git a/lecture_15/output/00091.png b/lecture_15/output/00091.png
new file mode 100644
index 0000000..af5d877
Binary files /dev/null and b/lecture_15/output/00091.png differ
diff --git a/lecture_15/output/00092.png b/lecture_15/output/00092.png
new file mode 100644
index 0000000..ab960d1
Binary files /dev/null and b/lecture_15/output/00092.png differ
diff --git a/lecture_15/output/00093.png b/lecture_15/output/00093.png
new file mode 100644
index 0000000..81c02c0
Binary files /dev/null and b/lecture_15/output/00093.png differ
diff --git a/lecture_15/output/00094.png b/lecture_15/output/00094.png
new file mode 100644
index 0000000..850739f
Binary files /dev/null and b/lecture_15/output/00094.png differ
diff --git a/lecture_15/output/00095.png b/lecture_15/output/00095.png
new file mode 100644
index 0000000..41d354d
Binary files /dev/null and b/lecture_15/output/00095.png differ
diff --git a/lecture_15/output/00096.png b/lecture_15/output/00096.png
new file mode 100644
index 0000000..7149da5
Binary files /dev/null and b/lecture_15/output/00096.png differ
diff --git a/lecture_15/output/00097.png b/lecture_15/output/00097.png
new file mode 100644
index 0000000..a7bc3f4
Binary files /dev/null and b/lecture_15/output/00097.png differ
diff --git a/lecture_15/output/00098.png b/lecture_15/output/00098.png
new file mode 100644
index 0000000..119aaef
Binary files /dev/null and b/lecture_15/output/00098.png differ
diff --git a/lecture_15/output/00099.png b/lecture_15/output/00099.png
new file mode 100644
index 0000000..f6f7b8a
Binary files /dev/null and b/lecture_15/output/00099.png differ
diff --git a/lecture_15/output/00100.png b/lecture_15/output/00100.png
new file mode 100644
index 0000000..8d37137
Binary files /dev/null and b/lecture_15/output/00100.png differ
diff --git a/lecture_15/springs_masses.png b/lecture_15/springs_masses.png
new file mode 100644
index 0000000..9a01154
Binary files /dev/null and b/lecture_15/springs_masses.png differ
diff --git a/lecture_15/stress.svg b/lecture_15/stress.svg
new file mode 100644
index 0000000..dbbd0b7
--- /dev/null
+++ b/lecture_15/stress.svg
@@ -0,0 +1,297 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+ 𝞃=10 MPa
+
+
+
+
+ 𝞼1
+ 𝞼2
+
+
diff --git a/lecture_15/stress_soln.svg b/lecture_15/stress_soln.svg
new file mode 100644
index 0000000..5366d11
--- /dev/null
+++ b/lecture_15/stress_soln.svg
@@ -0,0 +1,297 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+ 𝞃=10 MPa
+
+
+
+
+ 𝞼1 =-10 MPa
+ 𝞼2 =10 MPa
+
+
diff --git "a/lecture_15/\340\244\267\001" "b/lecture_15/\340\244\267\001"
new file mode 100644
index 0000000..e69de29
diff --git "a/lecture_15/\360&\341\001" "b/lecture_15/\360&\341\001"
new file mode 100644
index 0000000..e69de29
diff --git a/lecture_16/.ipynb_checkpoints/lecture_16-checkpoint.ipynb b/lecture_16/.ipynb_checkpoints/lecture_16-checkpoint.ipynb
new file mode 100644
index 0000000..2fd6442
--- /dev/null
+++ b/lecture_16/.ipynb_checkpoints/lecture_16-checkpoint.ipynb
@@ -0,0 +1,6 @@
+{
+ "cells": [],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/lecture_16/MonteCarloPi.gif b/lecture_16/MonteCarloPi.gif
new file mode 100644
index 0000000..8ffb745
Binary files /dev/null and b/lecture_16/MonteCarloPi.gif differ
diff --git a/lecture_16/MonteCarloPi_rand.gif b/lecture_16/MonteCarloPi_rand.gif
new file mode 100644
index 0000000..aaa31d7
Binary files /dev/null and b/lecture_16/MonteCarloPi_rand.gif differ
diff --git a/lecture_16/compiled_data.csv b/lecture_16/compiled_data.csv
new file mode 100644
index 0000000..ea6a99a
--- /dev/null
+++ b/lecture_16/compiled_data.csv
@@ -0,0 +1,233 @@
+7.8,62,1
+12.3,61,1
+5.2,35,1
+12.4,44,1
+5.2,294,1
+3.3,73,2
+1.4,30,2
+11,10,2
+6.3,39,3
+6.9,60,3
+6.3,100,3
+7.8,249,3
+3.3,282,3
+7,96,4
+3.9,186,4
+2.95,166,4
+8.6,262,4
+2.5,355,4
+20,155,5
+18.5,225,5
+14,45,5
+8.5,340,5
+5.25,95,5
+10,20,5
+6.5,62,5
+8.75,36,5
+3,190,5
+4.5,280,5
+2.25,62,6
+3.9,312,6
+9.3,36,6
+1.9,154,6
+7.3,115,6
+4.75,298,6
+4.6,306,7
+2.3,282,7
+10.1,138,7
+3.3,180,7
+8.5,242,7
+5,10,8
+2.5,350,8
+11,30,8
+4,272,8
+17,38,8
+3.75,85,9
+4.5,102,9
+1.36,118,9
+0.78,157,9
+3.41,198,9
+3,27,10
+1,88,10
+2,20,10
+2.5,155,10
+4.5,281,10
+1.5,75,10
+6.32,70,10
+2.85,135,10
+3.71,250,10
+5.45,60,10
+6.1,95,10
+5.5,92,11
+15,266,11
+12.5,14,11
+7,120,11
+4,132,11
+9,30,12
+5,90,12
+6,350,12
+8,330,12
+5,60,12
+3.81,140,12
+6.35,116,12
+0.635,88,12
+7.62,12,12
+1.27,180,12
+4.2,292,13
+0.8,165,13
+2.5,0,13
+6,43,13
+6.65,317,13
+1,0,13
+2.9,50,13
+7.4,302,13
+16.6,246,13
+2.4,234,13
+0.8,100,14
+3.6,62,14
+3.5,260,14
+4.4,168,14
+5.7,178,14
+3.6,143,14
+1.75,37,14
+1.95,62,14
+2.27,48,14
+4.26,69,14
+4,182,15
+5.8,100,15
+8.3,45,15
+10.2,30,15
+4,278,15
+3.81,120,16
+7.62,77,16
+1.59,212,16
+3.73,265,16
+4.84,259,16
+3.45,243,16
+2.1,186,16
+4.6,24,16
+0.7,343,16
+1.7,211,16
+12.4,33,17
+13.9,103,17
+4.5,307,17
+6.7,313,17
+11.4,328,17
+3,240,18
+4,330,18
+2,90,18
+3.5,315,18
+1,15,18
+4.6,98,19
+3.8,326,19
+3.4,184,19
+4,48,19
+2.6,83,19
+2.75,88,20
+1.33,93,20
+1.5,12,20
+3,280,20
+0.5,24,20
+1.2,130,21
+2.6,122,21
+0.8,296,21
+1.4,100,21
+1.2,290,21
+3,90,22
+2,30,22
+10,90,22
+3,15,22
+7,90,22
+3.3,170,23
+8.8,95,23
+8.1,71,23
+7.7,48,23
+9.6,301,23
+3,70,24
+1.2,10,24
+2.1,15,24
+6,260,24
+0.7,30,24
+12.5,10,25
+11,35,25
+7,320,25
+7.5,292,25
+3.5,134,25
+1,4,26
+2,3.9,26
+3,5.25,26
+4,3.2,26
+5,3,26
+4.5,27,27
+1.1,80,27
+2.6,155,27
+1.9,200,27
+2.8,325,27
+4.3,15,28
+7,145,28
+3.5,80,28
+9,210,28
+5.2,175,28
+1,54,29
+3.5,128,29
+4.5,140,29
+2,54,29
+11,274,29
+3.175,98,30
+1.5875,30,30
+3.175,282,30
+5.08,318,30
+10.795,316,30
+11.2,19,31
+14.5,232,31
+12.3,271,31
+16.9,120,31
+9,177,31
+7.4,276,32
+11.5,321,32
+1.5,36,32
+7.5,22,32
+10.1,66,32
+1.75,10,33
+2.5,123,33
+2,64,33
+1.8,271,33
+4,308,33
+4.5,39,34
+3.25,68,34
+2.5,282,34
+1.25,108,34
+2,122,34
+3.97,18,35
+8.29,196,35
+15.52,232,35
+4.79,93,35
+6.43,153,35
+7.5,74,36
+10.75,86,36
+3.5,96,36
+6.25,172,36
+5.5,38,36
+3.25,192,37
+4.5,88,37
+5,336,37
+4,176,37
+2.5,194,37
+1.5,73,38
+1.33,265,38
+2.15,92,38
+3.5,130,38
+0.9,65,38
+3.75,-2,39
+1.66,89,39
+5.43,76,39
+4.12,54,39
+6.87,63,39
+10,85,40
+9,30,40
+7,180,40
+4.3,22,40
+5.8,281,40
+2.9,1,40
+3.31,29,40
+1.5,10,40
diff --git a/lecture_16/gen_examples.m b/lecture_16/gen_examples.m
new file mode 100644
index 0000000..c5d6890
--- /dev/null
+++ b/lecture_16/gen_examples.m
@@ -0,0 +1,5 @@
+x1=linspace(0,1,1000)';
+y1=0*x1+0.1*rand(length(x1),1);
+
+x2=linspace(0,1,10)';
+y2=1*x2;
diff --git a/lecture_16/lecture_16.ipynb b/lecture_16/lecture_16.ipynb
new file mode 100644
index 0000000..206e84c
--- /dev/null
+++ b/lecture_16/lecture_16.ipynb
@@ -0,0 +1,21234 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 171,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "setdefaults"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 172,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%plot --format svg"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "![question 1](q1.png)\n",
+ "\n",
+ "![question 2](q2.png)\n",
+ "\n",
+ "### Project Ideas so far\n",
+ "\n",
+ "- Nothing yet...probably something heat transfer related\n",
+ "\n",
+ "- Modeling Propulsion or Propagation of Sound Waves\n",
+ "\n",
+ "- Low Thrust Orbital Transfer\n",
+ "\n",
+ "- Tracking motion of a satellite entering orbit until impact\n",
+ "\n",
+ "- What ever you think is best.\n",
+ "\n",
+ "- You had heat transfer project as an option; that sounded cool\n",
+ "\n",
+ "- Heat transfer through a pipe\n",
+ "\n",
+ "- I would prefer to do something with beam/plate mechanics or vibrations than a heat transfer or thermo problem\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Questions from you:\n",
+ "\n",
+ "- Is attempting to divide by zero an acceptable project idea?\n",
+ "\n",
+ "- Would it be alright if we worked in a group of 4?\n",
+ "\n",
+ "- What are acceptable project topics?\n",
+ "\n",
+ "- How do the exams look? \n",
+ "\n",
+ "- Is there no pdf for the lecture today?\n",
+ "\n",
+ "- Thank you for making the formatted lectures available!\n",
+ "\n",
+ "- did you do anything cool over spring break?\n",
+ "\n",
+ "- Could we have a group of 4? We don't want to have to choose which one of us is on their own.\n",
+ "\n",
+ "- In HW 5 should there be 4 vectors as an input?\n",
+ "\n",
+ "- Would it be possible for me to join a group of 3? I seem to be the odd man out in two 3 member groups that my friends are in."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Statistics and Curve-Fitting\n",
+ "## Linear Regression\n",
+ "\n",
+ "Often, we have a model with empirical parameters. (e.g. Young's modulus, Poisson's ratio, drag coefficient, coefficient of restitution, spring constant)\n",
+ "\n",
+ "Experimental measurements are prone to a number of stochastic (random) factors:\n",
+ "\n",
+ "- Environmental noise\n",
+ " \n",
+ "- Measurement Uncertainty\n",
+ " \n",
+ "- Factors not accounted in model (e.g. 2D effects of 1D approximation)\n",
+ "\n",
+ "These can lead to **noise** (lack of precision) and **bias** (lack of accuracy)\n",
+ "\n",
+ "Consider a piece of glass being stretched. \n",
+ "\n",
+ "![movie of stretching glass in microtensile machine](sgs_strain.gif)\n",
+ "\n",
+ "It is clear that a straight line is a \"good\" fit, but how good and what line?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Statistics\n",
+ "\n",
+ "How do we describe *precision* and *accuracy*?\n",
+ "\n",
+ "- mean\n",
+ "\n",
+ "- standard deviation\n",
+ "\n",
+ "Take our class dart problem\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 173,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "Gnuplot \n",
+ "Produced by GNUPLOT 5.0 patchlevel 3 \n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\n",
+ "\t\ty position (cm) \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx position (cm) \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_3a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_4a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_5a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_6a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_7a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_8a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_9a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_10a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_11a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_12a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_13a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_14a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_15a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_16a \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",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_17a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_18a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_19a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_20a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_21a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_22a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_23a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_24a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_25a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_26a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_27a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_28a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_29a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_30a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_31a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_32a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_33a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_34a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_35a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_36a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_37a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_38a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_39a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ " \n",
+ "\t \n",
+ "\tgnuplot_plot_40a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\n",
+ "\t\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": [
+ "darts=dlmread('compiled_data.csv',',');\n",
+ "x_darts=darts(:,1).*cosd(darts(:,2));\n",
+ "y_darts=darts(:,1).*sind(darts(:,2));\n",
+ "\n",
+ "colormap(colorcube(length(darts(:,3))))\n",
+ "\n",
+ "scatter(x_darts, y_darts, [], darts(:,3))\n",
+ "xlabel('x position (cm)')\n",
+ "ylabel('y position (cm)')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 174,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mu_x = 0.90447\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "mu_x=mean(x_darts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "s_x = 4.2747\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "s_x=std(x_darts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 175,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mu_y = 0.88450\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "mu_y=mean(y_darts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 177,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "s_y = 4.6834\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "s_y=std(y_darts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 180,
+ "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\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_3a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_4a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_5a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_6a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_7a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_8a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_9a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_10a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_11a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_12a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_13a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_14a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_15a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_16a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_17a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_18a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_19a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_20a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_21a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_22a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_23a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_24a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_25a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_26a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_27a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_28a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_29a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_30a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_31a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_32a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_33a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_34a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_35a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_36a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_37a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_38a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_39a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_40a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_41a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_42a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_43a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_44a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_45a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_46a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_47a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_48a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_49a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_50a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_51a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_52a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_53a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_54a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_55a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_56a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_57a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_58a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_59a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_60a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_61a \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": [
+ "hist(x_darts,30,100)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 182,
+ "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\t0.05 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.1 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\n",
+ "\t\trelative counts \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx position (cm) \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_3a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_4a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_5a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_6a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_7a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_8a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_9a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_10a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_11a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_12a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_13a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_14a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_15a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_16a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_17a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_18a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_19a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_20a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_21a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_22a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_23a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_24a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_25a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_26a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_27a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_28a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_29a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_30a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_31a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_32a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_33a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_34a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_35a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_36a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_37a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_38a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_39a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_40a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_41a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_42a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_43a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_44a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_45a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_46a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_47a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_48a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_49a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_50a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_51a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_52a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_53a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_54a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_55a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_56a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_57a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_58a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_59a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_60a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_61a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_62a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_63a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_64a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x_vals=linspace(-15,20,30);\n",
+ "hist(x_darts,x_vals,1);\n",
+ "[histFreq, histXout] = hist(x_darts, 30);\n",
+ "binWidth = histXout(2)-histXout(1);\n",
+ "bar(histXout, histFreq/binWidth/sum(histFreq));\n",
+ "pdfnorm = @(x) 1/sqrt(2*s_x^2*pi).*exp(-(x-mu_x).^2/2/s_x^2);\n",
+ "%cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n",
+ "%hist(x_darts,x_vals,trapz(x,f))%,cdfnorm(max(x_darts))/2)\n",
+ "hold on;\n",
+ "plot(x_vals,pdfnorm(x_vals))\n",
+ "n=2; % n=1, 68% confidence, n=2, 95% confidence, n=3, 99% conf\n",
+ " plot([mu_x+n*s_x,mu_x+n*s_x],[0,0.1],'r-')\n",
+ " plot([mu_x-n*s_x,mu_x-n*s_x],[0,0.1],'r-')\n",
+ "\n",
+ "xlabel('x position (cm)')\n",
+ "ylabel('relative counts')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 183,
+ "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\t0.05 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.1 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\n",
+ "\t\trelative counts \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\tx position (cm) \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\tgnuplot_plot_1a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_2a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_3a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_4a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_5a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_6a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_7a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_8a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_9a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_10a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_11a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_12a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_13a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_14a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_15a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_16a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_17a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_18a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_19a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_20a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_21a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_22a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_23a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_24a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_25a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_26a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_27a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_28a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_29a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_30a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_31a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_32a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_33a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_34a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_35a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_36a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_37a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_38a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_39a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_40a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_41a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_42a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_43a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_44a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_45a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_46a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_47a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_48a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_49a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_50a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_51a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_52a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_53a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_54a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_55a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_56a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_57a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_58a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_59a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\t \n",
+ "\t \n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_60a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_61a \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_62a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_63a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tgnuplot_plot_64a \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "y_vals=linspace(-15,20,30);\n",
+ "hist(y_darts,y_vals,1);\n",
+ "[histFreq, histXout] = hist(y_darts, 30);\n",
+ "binWidth = histXout(2)-histXout(1);\n",
+ "bar(histXout, histFreq/binWidth/sum(histFreq));\n",
+ "pdfnorm = @(x) 1/sqrt(2*s_y^2*pi).*exp(-(x-mu_y).^2/2/s_y^2);\n",
+ "%cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n",
+ "%hist(x_darts,x_vals,trapz(x,f))%,cdfnorm(max(x_darts))/2)\n",
+ "hold on;\n",
+ "plot(y_vals,pdfnorm(y_vals))\n",
+ "n=2; % n=1, 68% confidence, n=2, 95% confidence, n=3, 99% conf\n",
+ " plot([mu_y+n*s_y,mu_y+n*s_y],[0,0.1],'r-')\n",
+ " plot([mu_y-n*s_y,mu_y-n*s_y],[0,0.1],'r-')\n",
+ "\n",
+ "xlabel('x position (cm)')\n",
+ "ylabel('relative counts')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "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\t0.2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \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",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\texperimental CDF \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t\n",
+ "\t\texperimental CDF \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\tNormal CDF \n",
+ "\n",
+ "\t\n",
+ "\t\tNormal CDF \n",
+ "\t \n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\t \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " "
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x_exp=empirical_cdf(x_vals,x_darts);\n",
+ "plot(x_vals,x_exp)\n",
+ "hold on;\n",
+ "plot(x_vals,normcdf(x_vals,mu_x,s_x),'k-')\n",
+ "legend('experimental CDF','Normal CDF','Location','SouthEast')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 185,
+ "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",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \n",
+ " \n",
+ "\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 \n",
+ "\n",
+ "\t\t\n",
+ "\t\t5 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-20 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t-5 \n",
+ "\t \n",
+ " \n",
+ "\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 \n",
+ "\n",
+ "\t\t\n",
+ "\t\t5 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t10 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t15 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t20 \n",
+ "\t \n",
+ " \n",
+ "\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 \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.2 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.4 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.6 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t0.8 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t \n",
+ "\n",
+ "\t\t\n",
+ "\t\t1 \n",
+ "\t \n",
+ " \n",
+ "\n",
+ " \n",
+ "\n",
+ "\t \n",
+ "\tgnuplot_plot_1a \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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\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",
+ "\t