1. 矩阵范数
假设我们有一个矩阵A 表示如下:
A
=
[
1
2
3
4
5
6
7
8
9
]
\begin{equation} A=\begin{bmatrix} 1&2&3\\\\ 4&5&6\\\\ 7&8&9 \end{bmatrix} \end{equation}
A=
147258369
- L1范数表示A的列范数,即将矩阵A的按列划分后,求出最大的列
∣ ∣ A ∣ ∣ 1 = max 1 ≤ j ≤ n ∑ i = 1 n ∣ a i j ∣ \begin{equation} ||A||_1=\max\limits_{1\le j\le n}\sum_{i=1}^n|a_{ij}| \end{equation} ∣∣A∣∣1=1≤j≤nmaxi=1∑n∣aij∣
∣ ∣ A ∣ ∣ 1 = max [ 12 , 15 , 18 ] = 18 \begin{equation} ||A||_1=\max[12,15,18]=18 \end{equation} ∣∣A∣∣1=max[12,15,18]=18 -
L
∞
L_{\infty}
L∞范数表示A的行范数,即将矩阵A的按行划分后,求出最大的行
∣ ∣ A ∣ ∣ 1 = max 1 ≤ i ≤ n ∑ i = 1 n ∣ a i j ∣ \begin{equation} ||A||_1=\max\limits_{1\le i\le n}\sum_{i=1}^n|a_{ij}| \end{equation} ∣∣A∣∣1=1≤i≤nmaxi=1∑n∣aij∣
∣ ∣ A ∣ ∣ ∞ = max [ 6 , 15 , 24 ] = 24 \begin{equation} ||A||_{\infty}=\max[6,15,24]=24 \end{equation} ∣∣A∣∣∞=max[6,15,24]=24 - L2范数表示
A
T
A
A^TA
ATA最大特征值的根号值,先求
A
T
A
A^TA
ATA,再求最大特征值的根号
∣ ∣ A ∣ ∣ 2 = λ max ( A T A ) = 16.848 \begin{equation} ||A||_2=\sqrt{\lambda_{\max}(A^TA)}=16.848 \end{equation} ∣∣A∣∣2=λmax(ATA)=16.848
2. 代码:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName :matrix_normtest.py
# @Time :2024/9/26 9:53
# @Author :Jason Zhang
import numpy as np
np.set_printoptions(suppress=True, precision=3)
np.random.seed(20230512)
class Eigenvalue():
def __init__(self, array):
self.array = array
self.value, self.vector = np.linalg.eig(self.array)
self.L1 = np.linalg.norm(self.array, 1)
self.L2 = np.linalg.norm(self.array, 2)
self.Linfty = np.linalg.norm(self.array, np.inf)
def __str__(self):
return f"array:\n{self.array}:\n eigenvalue:\n{self.value}\n,eigenveotr:\n{self.vector}" \
f"\nL1:={self.L1},\nL2:={self.L2}\nL_inf:={self.Linfty}"
if __name__ == "__main__":
run_code = 0
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
ATA = np.dot(A.T, A)
A_eigen = Eigenvalue(A)
print(A_eigen)
ATA_eigen = Eigenvalue(ATA)
print(ATA_eigen)
- 运行结果:
array:
[[1 2 3]
[4 5 6]
[7 8 9]]:
eigenvalue:
[16.117 -1.117 -0. ]
,eigenveotr:
[[-0.232 -0.786 0.408]
[-0.525 -0.087 -0.816]
[-0.819 0.612 0.408]]
L1:=18.0,
L2:=16.84810335261421
L_inf:=24.0
array:
[[ 66 78 90]
[ 78 93 108]
[ 90 108 126]]:
eigenvalue:
[283.859 1.141 0. ]
,eigenveotr:
[[-0.48 -0.777 0.408]
[-0.572 -0.076 -0.816]
[-0.665 0.625 0.408]]
L1:=324.0,
L2:=283.8585865803701
L_inf:=324.0
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 矩阵范数及python代码
发表评论 取消回复