typo corrections
This commit is contained in:
@@ -1028,15 +1028,15 @@ $$
|
|||||||
<span style="color: #8B008B; font-weight: bold">from</span> <span style="color: #008b45; text-decoration: underline">mpl_toolkits.mplot3d</span> <span style="color: #8B008B; font-weight: bold">import</span> axes3d
|
<span style="color: #8B008B; font-weight: bold">from</span> <span style="color: #008b45; text-decoration: underline">mpl_toolkits.mplot3d</span> <span style="color: #8B008B; font-weight: bold">import</span> axes3d
|
||||||
|
|
||||||
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">f</span>(x):
|
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">f</span>(x):
|
||||||
<span style="color: #8B008B; font-weight: bold">return</span> <span style="color: #B452CD">0.5</span>*x[<span style="color: #B452CD">0</span>]**<span style="color: #B452CD">2</span> + <span style="color: #B452CD">2.5</span>*x[<span style="color: #B452CD">1</span>]**<span style="color: #B452CD">2</span>
|
<span style="color: #8B008B; font-weight: bold">return</span> x[<span style="color: #B452CD">0</span>]**<span style="color: #B452CD">2</span> + <span style="color: #B452CD">3.0</span>*x[<span style="color: #B452CD">1</span>]**<span style="color: #B452CD">2</span>
|
||||||
|
|
||||||
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">df</span>(x):
|
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">df</span>(x):
|
||||||
<span style="color: #8B008B; font-weight: bold">return</span> np.array([x[<span style="color: #B452CD">0</span>], <span style="color: #B452CD">5</span>*x[<span style="color: #B452CD">1</span>]])
|
<span style="color: #8B008B; font-weight: bold">return</span> np.array([<span style="color: #B452CD">2</span>*x[<span style="color: #B452CD">0</span>], <span style="color: #B452CD">6</span>*x[<span style="color: #B452CD">1</span>]])
|
||||||
|
|
||||||
fig = pt.figure()
|
fig = pt.figure()
|
||||||
ax = fig.gca(projection=<span style="color: #CD5555">"3d"</span>)
|
ax = fig.gca(projection=<span style="color: #CD5555">"3d"</span>)
|
||||||
|
|
||||||
xmesh, ymesh = np.mgrid[-<span style="color: #B452CD">2</span>:<span style="color: #B452CD">2</span>:<span style="color: #B452CD">50</span>j,-<span style="color: #B452CD">2</span>:<span style="color: #B452CD">2</span>:<span style="color: #B452CD">50</span>j]
|
xmesh, ymesh = np.mgrid[-<span style="color: #B452CD">3</span>:<span style="color: #B452CD">3</span>:<span style="color: #B452CD">50</span>j,-<span style="color: #B452CD">3</span>:<span style="color: #B452CD">3</span>:<span style="color: #B452CD">50</span>j]
|
||||||
fmesh = f(np.array([xmesh, ymesh]))
|
fmesh = f(np.array([xmesh, ymesh]))
|
||||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@@ -1080,6 +1080,8 @@ pt.contour(xmesh, ymesh, fmesh, <span style="color: #B452CD">50</span>)
|
|||||||
it_array = np.array(guesses)
|
it_array = np.array(guesses)
|
||||||
pt.plot(it_array.T[<span style="color: #B452CD">0</span>], it_array.T[<span style="color: #B452CD">1</span>], <span style="color: #CD5555">"x-"</span>)
|
pt.plot(it_array.T[<span style="color: #B452CD">0</span>], it_array.T[<span style="color: #B452CD">1</span>], <span style="color: #CD5555">"x-"</span>)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
<p>
|
||||||
|
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
@@ -1502,7 +1504,7 @@ X = np.c_[np.ones((n,<span style="color: #B452CD">1</span>)), x]
|
|||||||
H = (<span style="color: #B452CD">2.0</span>/n)* X.T @ X
|
H = (<span style="color: #B452CD">2.0</span>/n)* X.T @ X
|
||||||
<span style="color: #228B22"># Get the eigenvalues</span>
|
<span style="color: #228B22"># Get the eigenvalues</span>
|
||||||
EigValues, EigVectors = np.linalg.eig(H)
|
EigValues, EigVectors = np.linalg.eig(H)
|
||||||
<span style="color: #658b00">print</span>(EigValues)
|
<span style="color: #658b00">print</span>(<span style="color: #CD5555">f"Eigenvalues of Hessian Matrix:{</span>EigValues<span style="color: #CD5555">}"</span>)
|
||||||
|
|
||||||
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
||||||
<span style="color: #658b00">print</span>(beta_linreg)
|
<span style="color: #658b00">print</span>(beta_linreg)
|
||||||
|
|||||||
@@ -1057,15 +1057,15 @@ $$
|
|||||||
<span style="color: #8B008B; font-weight: bold">from</span> <span style="color: #008b45; text-decoration: underline">mpl_toolkits.mplot3d</span> <span style="color: #8B008B; font-weight: bold">import</span> axes3d
|
<span style="color: #8B008B; font-weight: bold">from</span> <span style="color: #008b45; text-decoration: underline">mpl_toolkits.mplot3d</span> <span style="color: #8B008B; font-weight: bold">import</span> axes3d
|
||||||
|
|
||||||
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">f</span>(x):
|
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">f</span>(x):
|
||||||
<span style="color: #8B008B; font-weight: bold">return</span> <span style="color: #B452CD">0.5</span>*x[<span style="color: #B452CD">0</span>]**<span style="color: #B452CD">2</span> + <span style="color: #B452CD">2.5</span>*x[<span style="color: #B452CD">1</span>]**<span style="color: #B452CD">2</span>
|
<span style="color: #8B008B; font-weight: bold">return</span> x[<span style="color: #B452CD">0</span>]**<span style="color: #B452CD">2</span> + <span style="color: #B452CD">3.0</span>*x[<span style="color: #B452CD">1</span>]**<span style="color: #B452CD">2</span>
|
||||||
|
|
||||||
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">df</span>(x):
|
<span style="color: #8B008B; font-weight: bold">def</span> <span style="color: #008b45">df</span>(x):
|
||||||
<span style="color: #8B008B; font-weight: bold">return</span> np.array([x[<span style="color: #B452CD">0</span>], <span style="color: #B452CD">5</span>*x[<span style="color: #B452CD">1</span>]])
|
<span style="color: #8B008B; font-weight: bold">return</span> np.array([<span style="color: #B452CD">2</span>*x[<span style="color: #B452CD">0</span>], <span style="color: #B452CD">6</span>*x[<span style="color: #B452CD">1</span>]])
|
||||||
|
|
||||||
fig = pt.figure()
|
fig = pt.figure()
|
||||||
ax = fig.gca(projection=<span style="color: #CD5555">"3d"</span>)
|
ax = fig.gca(projection=<span style="color: #CD5555">"3d"</span>)
|
||||||
|
|
||||||
xmesh, ymesh = np.mgrid[-<span style="color: #B452CD">2</span>:<span style="color: #B452CD">2</span>:<span style="color: #B452CD">50</span>j,-<span style="color: #B452CD">2</span>:<span style="color: #B452CD">2</span>:<span style="color: #B452CD">50</span>j]
|
xmesh, ymesh = np.mgrid[-<span style="color: #B452CD">3</span>:<span style="color: #B452CD">3</span>:<span style="color: #B452CD">50</span>j,-<span style="color: #B452CD">3</span>:<span style="color: #B452CD">3</span>:<span style="color: #B452CD">50</span>j]
|
||||||
fmesh = f(np.array([xmesh, ymesh]))
|
fmesh = f(np.array([xmesh, ymesh]))
|
||||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@@ -1109,6 +1109,9 @@ pt.contour(xmesh, ymesh, fmesh, <span style="color: #B452CD">50</span>)
|
|||||||
it_array = np.array(guesses)
|
it_array = np.array(guesses)
|
||||||
pt.plot(it_array.T[<span style="color: #B452CD">0</span>], it_array.T[<span style="color: #B452CD">1</span>], <span style="color: #CD5555">"x-"</span>)
|
pt.plot(it_array.T[<span style="color: #B452CD">0</span>], it_array.T[<span style="color: #B452CD">1</span>], <span style="color: #CD5555">"x-"</span>)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
<p>
|
||||||
|
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<!-- !split --><br><br><br><br><br><br><br><br><br><br>
|
<!-- !split --><br><br><br><br><br><br><br><br><br><br>
|
||||||
|
|
||||||
@@ -1489,7 +1492,7 @@ X = np.c_[np.ones((n,<span style="color: #B452CD">1</span>)), x]
|
|||||||
H = (<span style="color: #B452CD">2.0</span>/n)* X.T @ X
|
H = (<span style="color: #B452CD">2.0</span>/n)* X.T @ X
|
||||||
<span style="color: #228B22"># Get the eigenvalues</span>
|
<span style="color: #228B22"># Get the eigenvalues</span>
|
||||||
EigValues, EigVectors = np.linalg.eig(H)
|
EigValues, EigVectors = np.linalg.eig(H)
|
||||||
<span style="color: #658b00">print</span>(EigValues)
|
<span style="color: #658b00">print</span>(<span style="color: #CD5555">f"Eigenvalues of Hessian Matrix:{</span>EigValues<span style="color: #CD5555">}"</span>)
|
||||||
|
|
||||||
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
||||||
<span style="color: #658b00">print</span>(beta_linreg)
|
<span style="color: #658b00">print</span>(beta_linreg)
|
||||||
|
|||||||
@@ -1062,15 +1062,15 @@ $$
|
|||||||
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">mpl_toolkits.mplot3d</span> <span style="color: #008000; font-weight: bold">import</span> axes3d
|
<span style="color: #008000; font-weight: bold">from</span> <span style="color: #0000FF; font-weight: bold">mpl_toolkits.mplot3d</span> <span style="color: #008000; font-weight: bold">import</span> axes3d
|
||||||
|
|
||||||
<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">f</span>(x):
|
<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">f</span>(x):
|
||||||
<span style="color: #008000; font-weight: bold">return</span> <span style="color: #666666">0.5*</span>x[<span style="color: #666666">0</span>]<span style="color: #666666">**2</span> <span style="color: #666666">+</span> <span style="color: #666666">2.5*</span>x[<span style="color: #666666">1</span>]<span style="color: #666666">**2</span>
|
<span style="color: #008000; font-weight: bold">return</span> x[<span style="color: #666666">0</span>]<span style="color: #666666">**2</span> <span style="color: #666666">+</span> <span style="color: #666666">3.0*</span>x[<span style="color: #666666">1</span>]<span style="color: #666666">**2</span>
|
||||||
|
|
||||||
<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">df</span>(x):
|
<span style="color: #008000; font-weight: bold">def</span> <span style="color: #0000FF">df</span>(x):
|
||||||
<span style="color: #008000; font-weight: bold">return</span> np<span style="color: #666666">.</span>array([x[<span style="color: #666666">0</span>], <span style="color: #666666">5*</span>x[<span style="color: #666666">1</span>]])
|
<span style="color: #008000; font-weight: bold">return</span> np<span style="color: #666666">.</span>array([<span style="color: #666666">2*</span>x[<span style="color: #666666">0</span>], <span style="color: #666666">6*</span>x[<span style="color: #666666">1</span>]])
|
||||||
|
|
||||||
fig <span style="color: #666666">=</span> pt<span style="color: #666666">.</span>figure()
|
fig <span style="color: #666666">=</span> pt<span style="color: #666666">.</span>figure()
|
||||||
ax <span style="color: #666666">=</span> fig<span style="color: #666666">.</span>gca(projection<span style="color: #666666">=</span><span style="color: #BA2121">"3d"</span>)
|
ax <span style="color: #666666">=</span> fig<span style="color: #666666">.</span>gca(projection<span style="color: #666666">=</span><span style="color: #BA2121">"3d"</span>)
|
||||||
|
|
||||||
xmesh, ymesh <span style="color: #666666">=</span> np<span style="color: #666666">.</span>mgrid[<span style="color: #666666">-2</span>:<span style="color: #666666">2</span>:<span style="color: #666666">50</span>j,<span style="color: #666666">-2</span>:<span style="color: #666666">2</span>:<span style="color: #666666">50</span>j]
|
xmesh, ymesh <span style="color: #666666">=</span> np<span style="color: #666666">.</span>mgrid[<span style="color: #666666">-3</span>:<span style="color: #666666">3</span>:<span style="color: #666666">50</span>j,<span style="color: #666666">-3</span>:<span style="color: #666666">3</span>:<span style="color: #666666">50</span>j]
|
||||||
fmesh <span style="color: #666666">=</span> f(np<span style="color: #666666">.</span>array([xmesh, ymesh]))
|
fmesh <span style="color: #666666">=</span> f(np<span style="color: #666666">.</span>array([xmesh, ymesh]))
|
||||||
ax<span style="color: #666666">.</span>plot_surface(xmesh, ymesh, fmesh)
|
ax<span style="color: #666666">.</span>plot_surface(xmesh, ymesh, fmesh)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@@ -1114,6 +1114,9 @@ pt<span style="color: #666666">.</span>contour(xmesh, ymesh, fmesh, <span style=
|
|||||||
it_array <span style="color: #666666">=</span> np<span style="color: #666666">.</span>array(guesses)
|
it_array <span style="color: #666666">=</span> np<span style="color: #666666">.</span>array(guesses)
|
||||||
pt<span style="color: #666666">.</span>plot(it_array<span style="color: #666666">.</span>T[<span style="color: #666666">0</span>], it_array<span style="color: #666666">.</span>T[<span style="color: #666666">1</span>], <span style="color: #BA2121">"x-"</span>)
|
pt<span style="color: #666666">.</span>plot(it_array<span style="color: #666666">.</span>T[<span style="color: #666666">0</span>], it_array<span style="color: #666666">.</span>T[<span style="color: #666666">1</span>], <span style="color: #BA2121">"x-"</span>)
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
<p>
|
||||||
|
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<!-- !split --><br><br><br><br><br><br><br><br><br><br>
|
<!-- !split --><br><br><br><br><br><br><br><br><br><br>
|
||||||
|
|
||||||
@@ -1494,7 +1497,7 @@ X <span style="color: #666666">=</span> np<span style="color: #666666">.</span>c
|
|||||||
H <span style="color: #666666">=</span> (<span style="color: #666666">2.0/</span>n)<span style="color: #666666">*</span> X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> X
|
H <span style="color: #666666">=</span> (<span style="color: #666666">2.0/</span>n)<span style="color: #666666">*</span> X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> X
|
||||||
<span style="color: #408080; font-style: italic"># Get the eigenvalues</span>
|
<span style="color: #408080; font-style: italic"># Get the eigenvalues</span>
|
||||||
EigValues, EigVectors <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linalg<span style="color: #666666">.</span>eig(H)
|
EigValues, EigVectors <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linalg<span style="color: #666666">.</span>eig(H)
|
||||||
<span style="color: #008000">print</span>(EigValues)
|
<span style="color: #008000">print</span>(<span style="color: #BA2121">f"Eigenvalues of Hessian Matrix:</span><span style="color: #BB6688; font-weight: bold">{</span>EigValues<span style="color: #BB6688; font-weight: bold">}</span><span style="color: #BA2121">"</span>)
|
||||||
|
|
||||||
beta_linreg <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linalg<span style="color: #666666">.</span>inv(X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> X) <span style="color: #666666">@</span> X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> y
|
beta_linreg <span style="color: #666666">=</span> np<span style="color: #666666">.</span>linalg<span style="color: #666666">.</span>inv(X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> X) <span style="color: #666666">@</span> X<span style="color: #666666">.</span>T <span style="color: #666666">@</span> y
|
||||||
<span style="color: #008000">print</span>(beta_linreg)
|
<span style="color: #008000">print</span>(beta_linreg)
|
||||||
|
|||||||
Binary file not shown.
@@ -1031,15 +1031,15 @@
|
|||||||
"from mpl_toolkits.mplot3d import axes3d\n",
|
"from mpl_toolkits.mplot3d import axes3d\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def f(x):\n",
|
"def f(x):\n",
|
||||||
" return 0.5*x[0]**2 + 2.5*x[1]**2\n",
|
" return x[0]**2 + 3.0*x[1]**2\n",
|
||||||
"\n",
|
"\n",
|
||||||
"def df(x):\n",
|
"def df(x):\n",
|
||||||
" return np.array([x[0], 5*x[1]])\n",
|
" return np.array([2*x[0], 6*x[1]])\n",
|
||||||
"\n",
|
"\n",
|
||||||
"fig = pt.figure()\n",
|
"fig = pt.figure()\n",
|
||||||
"ax = fig.gca(projection=\"3d\")\n",
|
"ax = fig.gca(projection=\"3d\")\n",
|
||||||
"\n",
|
"\n",
|
||||||
"xmesh, ymesh = np.mgrid[-2:2:50j,-2:2:50j]\n",
|
"xmesh, ymesh = np.mgrid[-3:3:50j,-3:3:50j]\n",
|
||||||
"fmesh = f(np.array([xmesh, ymesh]))\n",
|
"fmesh = f(np.array([xmesh, ymesh]))\n",
|
||||||
"ax.plot_surface(xmesh, ymesh, fmesh)"
|
"ax.plot_surface(xmesh, ymesh, fmesh)"
|
||||||
]
|
]
|
||||||
@@ -1136,6 +1136,8 @@
|
|||||||
"cell_type": "markdown",
|
"cell_type": "markdown",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
|
"Note that we did only one iteration here. We can easily add more using our previous guesses.\n",
|
||||||
|
"\n",
|
||||||
"## Conjugate gradient method\n",
|
"## Conjugate gradient method\n",
|
||||||
"In the CG method we define so-called conjugate directions and two vectors \n",
|
"In the CG method we define so-called conjugate directions and two vectors \n",
|
||||||
"$\\boldsymbol{s}$ and $\\boldsymbol{t}$\n",
|
"$\\boldsymbol{s}$ and $\\boldsymbol{t}$\n",
|
||||||
@@ -1695,7 +1697,7 @@
|
|||||||
"H = (2.0/n)* X.T @ X\n",
|
"H = (2.0/n)* X.T @ X\n",
|
||||||
"# Get the eigenvalues\n",
|
"# Get the eigenvalues\n",
|
||||||
"EigValues, EigVectors = np.linalg.eig(H)\n",
|
"EigValues, EigVectors = np.linalg.eig(H)\n",
|
||||||
"print(EigValues)\n",
|
"print(f\"Eigenvalues of Hessian Matrix:{EigValues}\")\n",
|
||||||
"\n",
|
"\n",
|
||||||
"beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y\n",
|
"beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y\n",
|
||||||
"print(beta_linreg)\n",
|
"print(beta_linreg)\n",
|
||||||
|
|||||||
@@ -723,15 +723,15 @@ import matplotlib.pyplot as pt
|
|||||||
from mpl_toolkits.mplot3d import axes3d
|
from mpl_toolkits.mplot3d import axes3d
|
||||||
|
|
||||||
def f(x):
|
def f(x):
|
||||||
return 0.5*x[0]**2 + 2.5*x[1]**2
|
return x[0]**2 + 3.0*x[1]**2
|
||||||
|
|
||||||
def df(x):
|
def df(x):
|
||||||
return np.array([x[0], 5*x[1]])
|
return np.array([2*x[0], 6*x[1]])
|
||||||
|
|
||||||
fig = pt.figure()
|
fig = pt.figure()
|
||||||
ax = fig.gca(projection="3d")
|
ax = fig.gca(projection="3d")
|
||||||
|
|
||||||
xmesh, ymesh = np.mgrid[-2:2:50j,-2:2:50j]
|
xmesh, ymesh = np.mgrid[-3:3:50j,-3:3:50j]
|
||||||
fmesh = f(np.array([xmesh, ymesh]))
|
fmesh = f(np.array([xmesh, ymesh]))
|
||||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||||
!ec
|
!ec
|
||||||
@@ -764,6 +764,8 @@ it_array = np.array(guesses)
|
|||||||
pt.plot(it_array.T[0], it_array.T[1], "x-")
|
pt.plot(it_array.T[0], it_array.T[1], "x-")
|
||||||
!ec
|
!ec
|
||||||
|
|
||||||
|
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||||
|
|
||||||
!split
|
!split
|
||||||
===== Conjugate gradient method =====
|
===== Conjugate gradient method =====
|
||||||
!bblock
|
!bblock
|
||||||
@@ -1081,7 +1083,7 @@ X = np.c_[np.ones((n,1)), x]
|
|||||||
H = (2.0/n)* X.T @ X
|
H = (2.0/n)* X.T @ X
|
||||||
# Get the eigenvalues
|
# Get the eigenvalues
|
||||||
EigValues, EigVectors = np.linalg.eig(H)
|
EigValues, EigVectors = np.linalg.eig(H)
|
||||||
print(EigValues)
|
print(f"Eigenvalues of Hessian Matrix:{EigValues}")
|
||||||
|
|
||||||
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y
|
||||||
print(beta_linreg)
|
print(beta_linreg)
|
||||||
|
|||||||
Reference in New Issue
Block a user