CGO 02-1: Least Squares
Jupyter Notebookのファイルをここからダウンロードしてください。
CGO 02-1: Least Squares
Please fill in the TODOs and hand-in the notebook on Moodle. Check Moodle for the due date
%matplotlib inline
import numpy as np
from numpy import matmul as mm
import matplotlib.pyplot as plt
Linear Model
$ v = \alpha u + \beta $
Dataset:
$ { (0,1), (1,2), (2,0), (3,3) } $
A = np.array( ((0,1),(1,1),(2,1),(3,1)) )
b = np.array( (1,2,0,3), ndmin=2 ).T
# 'A @ B' is equivalent to 'np.matmul( A, B )'
xstar = np.linalg.inv( A.T @ A ) @ A.T @ b
print(xstar)
np.sum((np.matmul( A, xstar ) - b)**2)
np.linalg.eigvals( np.matmul( A.T,A ) )
plt.scatter( A.T[0], b )
u = np.linspace(0,3,100)
plt.plot( u, u*xstar[0]+xstar[1], '-r')
Hessian
# TODO compute Hessian and make sure it is semi-definite positive
Quadratic Model
$ v = \alpha_0 u^2 + \alpha_1 u + \beta $
# TODO fit model
plt.scatter( A.T[1], b )
u = np.linspace(0,3,100)
# TODO plot
Cubic Model
$ v = \alpha_0 u^3 + \alpha_1 u^2 + \alpha_2 u + \beta $
# TODO fit model
plt.scatter( A.T[2], b )
u = np.linspace(0,3,100)
# TODO plot
Quartic Model
$ v = \alpha_0 u^4 + \alpha_1 u^3 + \alpha_2 u^2 + \alpha_3 u + \beta $
# TODO fit model
plt.scatter( A.T[3], b )
u = np.linspace(0,3,100)
# TODO plot
What happened? Why?
TODO put text here
# TODO put code here