最近学习LDA,须要计算特征值与特征向量,就重新学习了一波

特征值的计算应用Python比较简单,须要导入numpy的linalg计算。
linalg是linear algebra的缩写吧。

先导入Numpy

import numpy as np

随机生成一个矩阵A

A = np.random.rand(4, 4)
Aarray([[0.14978175, 0.60689778, 0.02583363, 0.46816227],       [0.28508934, 0.74476942, 0.48711273, 0.75551799],       [0.54103663, 0.57551838, 0.16542061, 0.06687122],       [0.99511415, 0.07225251, 0.67671701, 0.80672535]])

咱们应用lambda示意特征值,应用W示意特征向量

lambda,W = np.linalg.eig(A)

咱们留神到特征值和特色变量都含复数局部

Lambdaarray([ 1.90910151+0.j        , -0.16902995+0.48364592j,       -0.16902995-0.48364592j,  0.29565552+0.j        ])
Warray([[-0.37740651+0.j        , -0.0403403 +0.46883807j,        -0.0403403 -0.46883807j,  0.17922515+0.j        ],       [-0.62172554+0.j        , -0.30567755+0.1341112j ,        -0.30567755-0.1341112j , -0.39087808+0.j        ],       [-0.34506145+0.j        ,  0.61011431+0.j        ,         0.61011431-0.j        , -0.67479126+0.j        ],       [-0.59325734+0.j        , -0.09427735-0.5348002j ,        -0.09427735+0.5348002j ,  0.59979116+0.j        ]])

设Sigma为一个对角阵,对角线上的值是特征值

Sigma = np.array(np.identity(4),dtype=complex)for i in range(4):  Sigma[i,i] = Lambda[i]

这里np.identity(4)示意生产一个单位矩阵,dtype=complex示意Sigma这个矩阵中含有复数局部。

Sigmaarray([[ 1.90910151+0.j        ,  0.        +0.j        ,         0.        +0.j        ,  0.        +0.j        ],       [ 0.        +0.j        , -0.16902995+0.48364592j,         0.        +0.j        ,  0.        +0.j        ],       [ 0.        +0.j        ,  0.        +0.j        ,        -0.16902995-0.48364592j,  0.        +0.j        ],       [ 0.        +0.j        ,  0.        +0.j        ,         0.        +0.j        ,  0.29565552+0.j        ]])``\

上面参加测试的数学公式的原代码如下:

这是一个行内公式:$P = frac{C_a^k cdot C_b^{n-k}}{C_{a+b}^n}$

这是两个单行公式:
$$P = frac{C_a^k cdot C_b^{n-k}}{C_{a+b}^n}$$

$$P = frac{C_a^k cdot C_b^{n-k}}{C_{a+b}^n}$$