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">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">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()
|
||||
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]))
|
||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||
</pre></div>
|
||||
@@ -1080,6 +1080,8 @@ pt.contour(xmesh, ymesh, fmesh, <span style="color: #B452CD">50</span>)
|
||||
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>)
|
||||
</pre></div>
|
||||
<p>
|
||||
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||
</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
|
||||
<span style="color: #228B22"># Get the eigenvalues</span>
|
||||
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
|
||||
<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">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">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()
|
||||
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]))
|
||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||
</pre></div>
|
||||
@@ -1109,6 +1109,9 @@ pt.contour(xmesh, ymesh, fmesh, <span style="color: #B452CD">50</span>)
|
||||
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>)
|
||||
</pre></div>
|
||||
<p>
|
||||
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||
|
||||
<p>
|
||||
<!-- !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
|
||||
<span style="color: #228B22"># Get the eigenvalues</span>
|
||||
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
|
||||
<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">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">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()
|
||||
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]))
|
||||
ax<span style="color: #666666">.</span>plot_surface(xmesh, ymesh, fmesh)
|
||||
</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)
|
||||
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>
|
||||
<p>
|
||||
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||
|
||||
<p>
|
||||
<!-- !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
|
||||
<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)
|
||||
<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
|
||||
<span style="color: #008000">print</span>(beta_linreg)
|
||||
|
||||
Binary file not shown.
@@ -1031,15 +1031,15 @@
|
||||
"from mpl_toolkits.mplot3d import axes3d\n",
|
||||
"\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",
|
||||
"def df(x):\n",
|
||||
" return np.array([x[0], 5*x[1]])\n",
|
||||
" return np.array([2*x[0], 6*x[1]])\n",
|
||||
"\n",
|
||||
"fig = pt.figure()\n",
|
||||
"ax = fig.gca(projection=\"3d\")\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",
|
||||
"ax.plot_surface(xmesh, ymesh, fmesh)"
|
||||
]
|
||||
@@ -1136,6 +1136,8 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Note that we did only one iteration here. We can easily add more using our previous guesses.\n",
|
||||
"\n",
|
||||
"## Conjugate gradient method\n",
|
||||
"In the CG method we define so-called conjugate directions and two vectors \n",
|
||||
"$\\boldsymbol{s}$ and $\\boldsymbol{t}$\n",
|
||||
@@ -1695,7 +1697,7 @@
|
||||
"H = (2.0/n)* X.T @ X\n",
|
||||
"# Get the eigenvalues\n",
|
||||
"EigValues, EigVectors = np.linalg.eig(H)\n",
|
||||
"print(EigValues)\n",
|
||||
"print(f\"Eigenvalues of Hessian Matrix:{EigValues}\")\n",
|
||||
"\n",
|
||||
"beta_linreg = np.linalg.inv(X.T @ X) @ X.T @ y\n",
|
||||
"print(beta_linreg)\n",
|
||||
|
||||
@@ -723,15 +723,15 @@ import matplotlib.pyplot as pt
|
||||
from mpl_toolkits.mplot3d import axes3d
|
||||
|
||||
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):
|
||||
return np.array([x[0], 5*x[1]])
|
||||
return np.array([2*x[0], 6*x[1]])
|
||||
|
||||
fig = pt.figure()
|
||||
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]))
|
||||
ax.plot_surface(xmesh, ymesh, fmesh)
|
||||
!ec
|
||||
@@ -764,6 +764,8 @@ it_array = np.array(guesses)
|
||||
pt.plot(it_array.T[0], it_array.T[1], "x-")
|
||||
!ec
|
||||
|
||||
Note that we did only one iteration here. We can easily add more using our previous guesses.
|
||||
|
||||
!split
|
||||
===== Conjugate gradient method =====
|
||||
!bblock
|
||||
@@ -1081,7 +1083,7 @@ X = np.c_[np.ones((n,1)), x]
|
||||
H = (2.0/n)* X.T @ X
|
||||
# Get the eigenvalues
|
||||
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
|
||||
print(beta_linreg)
|
||||
|
||||
Reference in New Issue
Block a user