# 產生乙個方波(x,y)
x = np.linspace(-10,10,300)
y=for i in np.cos(x):
if i>0:
else:
y=np.array(y)
# write your code, fourier function
plt.plot(x,y,color='g',label='origin')
plt.plot(x,fourier(x,y,3),color='r',label='3')
plt.plot(x,fourier(x,y,8),color='b',label='8')
plt.plot(x,fourier(x,y,23),color='k',label='23')
plt.legend()
plt.axis('equal')
plt.show()
#pca!/usr/bin/env python
#coding: utf-8
#import
numpy as np
import
matplotlib.pyplot as plt
from solutions_3 import *a=np.array([[3,1],[2,4]])/4.0
#write your code
#def eigshow(a):
eigshow(a)
#svd!/usr/bin/env python
#coding: utf-8
#import
numpy as np
import
matplotlib.pyplot as plt
def pca(datamat, topnfeat=5):
meanvals = np.mean(datamat, axis=0)
meanremoved = datamat - meanvals #
減去均值
covmat = meanremoved.t.dot(meanremoved) #
求協方差方陣
ei**als, ei**ects = np.linalg.eig(covmat) #
求特徵值和特徵向量
ei**alind = np.argsort(ei**als) #
對特徵值進行排序
ei**alind = ei**alind[:-(topnfeat + 1):-1]
redei**ects = ei**ects[:, ei**alind] #
除去不需要的特徵向量
lowddatamat = meanremoved.dot(redei**ects) #
求新的資料矩陣
reconmat = (lowddatamat.dot(redei**ects.t)) +meanvals
reducedata = lowddatamat +np.mean(datamat)
return
reducedata,reconmat
n=100x=np.linspace(2,4,n)
y=x*2-4x1=x+(np.random.rand(n)-0.5)*1.5y1=y+(np.random.rand(n)-0.5)*1.5data =np.array([x1,y1])
a,b=pca(data.t,1)
plt.plot(x,y,color='
g',linestyle='
-',marker='',label='
ideal')
plt.plot(x1,y1,color='
b',linestyle='',marker='
o',label='
noise')
plt.plot(b[:,0],b[:,1],color='
r',linestyle='',marker='
>
',label='
recon')
plt.plot(a[:,0],np.zeros(n),color='
k',linestyle='',marker='
*',label='
lowd')
plt.legend()
plt.axis(
'equal')
plt.show()
#!/usr/bin/python
#-*- coding: utf-8 -*
#copy right by heibanke
import
numpy as np
from matplotlib import
pyplot as plt
a=np.array([[-0.2,-1],[1.1,0.5]])
u,s,v=np.linalg.svd(a)
#s=np.array([[s[0],0],[0,s[1]]])
#modified by conkang
s=np.diag(s)
fig =plt.figure()
ax0 = fig.add_subplot(221)
ax1 = fig.add_subplot(222)
ax2 = fig.add_subplot(223)
ax3 = fig.add_subplot(224)
def plot_2d_mat(m,ax,text=""
): ax.plot([0,m[0,0]],[0,m[1,0]],'
b-o'
) ax.plot([0,m[0,1]],[0,m[1,1]],'
r-o'
) ax.set_title(text)
ax.axis(
'equal')
ax.set_xlim([-1.5,1.5])
ax.set_ylim([-1.5,1.5])
ax.grid(true)
plot_2d_mat(np.eye(2),ax0,"
origin")
plot_2d_mat(a,ax1,
"a (usv) matrix")
plot_2d_mat(v.t,ax2,
"v matrix")
plot_2d_mat(s.dot(v.t),ax3,
"sv matrix")
plt.show()
線性代數 線性代數的本質
線性代數在機器學習的領域中扮演者十分重要的角色,所以這裡岔開先整理一些線性代數的基本概念和計算方法。這裡是3blue1brown的線性代數課程的截圖和筆記。作為快速複習的網路筆記。本課程的特點 通過影象展現線性代數計算在幾何圖形上意義。這樣能更好的理解線性代數為什麼叫做線性代數。線性代數為什麼採用這...
線性代數入門 1 什麼是線性代數?
線性代數幾乎是每個學理工科的大學生都會學的一門課,然而我感覺大家對這門課的感覺都不怎麼好,很多人都覺得不知道線性代數是做什麼的,或者為了應付考試學會了一些計算和解題的方法。但在其他課程學習中卻常常看到那些矩陣 向量等等,便頭疼萬分,對線性代數更是深惡痛絕。最後乙個大學學下來,還是沒明白線性代數是什麼...
線性代數入門 1 什麼是線性代數?
線性代數幾乎是每個學理工科的大學生都會學的一門課,然而我感覺大家對這門課的感覺都不怎麼好,很多人都覺得不知道線性代數是做什麼的,或者為了應付考試學會了一些計算和解題的方法。但在其他課程學習中卻常常看到那些矩陣 向量等等,便頭疼萬分,對線性代數更是深惡痛絕。最後乙個大學學下來,還是沒明白線性代數是什麼...