对称和反对称矩阵(Symmetric and skew-symmetric matrices)

本文介绍了对称矩阵与反对称矩阵的定义及其特性,并详细探讨了它们的应用,包括特征值分解、叉乘运算及矩阵的代数余子式与伴随矩阵等。此外,还涉及了柯列斯基分解等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 定义

    对称阵和反对称阵均:必为方阵

    1)对称阵(Symmetric):

    2)反对称阵(Skew Symmetric Matrix):

     3)正定对称矩阵(Positive-Definite Symmetric Matrix ):实对称矩阵的所有的实特征值为正。


2. 特性

2.1 3x3反对称矩阵up to scale

    3x3反对称矩阵的一个奇怪属性是:up to scale.

     

2.2 正定对称矩阵

   1)对任意非0向量x,则有:

   2)它有唯一的分解:  (K为上三角实矩阵,且对角元素为正),这就是柯列斯基分解(Cholesky factorization)。

  证明如下:

        

  D、E:是对角阵,U是正交阵,E的对角元素是D对应对角元素的平方根;V不是上三角阵,则进行RQ分解:

        

  K是上三角矩阵,Q是旋转矩阵(正交阵)

    


3. 应用

3.1 特征值分解(Eigenvalue Decomposition)

    1)对称矩阵分解: 如果A是实对称矩阵,则A可被分解为:,U是一个正交矩阵,D是一个实对角矩阵(real  diagonal matrix);

         则此实对称阵有实特征值(Eigen Values),且其特征向量(Eigen Vectors)正交的。  


    2)对称矩阵分解: 如果S是实反对称矩阵,则S可被分解为:,B是块对角矩阵(block-diagonal matrix),其形式如下:

         

         注:S的特征向量是纯虚的,奇阶的反对称矩阵是奇异的(Singular)。

3.2 叉乘(Cross Products)

3.2.1 向量与反对称矩阵的相互表示

       设a是一个三维向量:

        与向量a对应的反对称矩阵为:

           

        注:任何3x3反对称矩阵可以写为,a为其对应的向量,矩阵奇异矩阵(Singular Matrix)

3.2.2 向量的叉乘定义

        向量的叉乘:Cross Product 或Vector Product

          


       反对称矩阵可以替换向量叉乘中的一个向量,其表示如下:

               

3.3 代数余子式和伴随矩阵(Cofactor and adjoint matrices)

       1)设M是方阵,则M*是M的代数余子式(Cofactors)矩阵,且是M去掉第i行和第j列生成的矩阵。

       2)伴随矩阵(Adjoint Matrix)定义为:

       3)若M可逆,则:是M的逆的转置 (the inverse transpose of M)

       4)无论M是否可逆,则有:

       5)若M是3x3矩阵(无论是否可逆),x和y是列向量,则有:

                 上式也可写为:

       6)对于上式,设t=Mx,且M可逆(非奇异矩阵non-singular matrix),则有:

             (up to scale)

           上式类似于基本矩阵(Fundamental Matrix)中的P’,基本矩阵与一对摄像机矩阵(如下)相对应,所以它可用于推导出“基本矩阵”

           

       7)若是一个基本矩阵(一个3x3的奇异矩阵<非可逆>),则有,因此F可以分解为:

    

             

                     



### 对称性在编程密码学中的应用 #### 密码学中的对称加密 在密码学领域,对称加密是一种加密方法,其中用于加密数据的密钥与解密数据的密钥相同。这意味着相同的参数既适用于加密也适用于解密过程[^1]。这种特性使得对称加密成为一种高效且广泛使用的安全通信方式。 以下是实现简单对称加密的一个例子,使用 Python 的 `cryptography` 库: ```python from cryptography.hazmat.primitives import hashes from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os def derive_key(password: bytes, salt: bytes): kdf = PBKDF2HMAC( algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100000, backend=default_backend() ) return kdf.derive(password) def encrypt_message(key: bytes, message: str): iv = os.urandom(16) cipher = Cipher(algorithms.AES(key), modes.CFB(iv)) encryptor = cipher.encryptor() encrypted_message = encryptor.update(message.encode()) + encryptor.finalize() return (iv, encrypted_message) def decrypt_message(key: bytes, iv: bytes, ciphertext: bytes): cipher = Cipher(algorithms.AES(key), modes.CFB(iv)) decryptor = cipher.decryptor() decrypted_message = decryptor.update(ciphertext) + decryptor.finalize() return decrypted_message.decode() password = b"super_secret_password" salt = os.urandom(16) key = derive_key(password, salt) message = "This is a secret message." iv, encrypted = encrypt_message(key, message) decrypted = decrypt_message(key, iv, encrypted) print(f"Original Message: {message}") print(f"Encrypted Message: {encrypted.hex()}") print(f"Decrypted Message: {decrypted}") ``` 这段代码展示了如何利用 AES 加密算法进行对称加密解密操作。 #### 编程中的对称结构 除了密码学外,在编程中也可以发现许多基于对称性的概念。例如,《禅与计算机程序设计艺术》一书中提到,编写简洁而优雅的代码可以体现某种形式的对称美[^2]。这通常体现在函数的设计上——输入输出之间的关系应保持一致性可预测性。 另一个具体的实例是对排列组合问题的研究,比如生成所有的可能子集或排列时会涉及递归调用模式下的镜像效应。这些都反映了数学意义上的对称性质。 此外,“广义表”作为一种抽象的数据结构也能表现出层次间的平衡分布特征[^3],这也是另一种类型的对称表现形式之一。 #### 数学基础支持 最大公约数(GCD)计算也是展现数值间内在联系的一种手段,并且其迭代求解过程中往往蕴含着重复规律,间接体现了运算逻辑内部存在的潜在对称属性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值