GL(m)
李 群 与 李 代 数 的 关 系 G L ( m ) ( 矩 阵 d e t 非 零 ) ↦ g l ( m ) ( 也 为 矩 阵 , 任 意 m 方 阵 ) 李群与李代数的关系\\ GL(m)(矩阵det非零)\mapsto gl(m)(也为矩阵,任意m方阵) 李群与李代数的关系GL(m)(矩阵det非零)↦gl(m)(也为矩阵,任意m方阵)
SO(3)
S O ( 3 ) 的 流 型 是 半 径 为 π 的 " 实 心 球 体 " , 球 体 每 一 点 就 是 S O ( 3 ) 的 一 个 群 元 , 其 与 远 点 的 向 量 即 为 旋 转 轴 , 距 离 即 为 角 度 SO(3)的流型是半径为\pi 的"实心球体",\\ 球体每一点就是SO(3)的一个群元,其与远点的向量即为旋转轴,距离即为角度 SO(3)的流型是半径为π的"实心球体",球体每一点就是SO(3)的一个群元,其与远点的向量即为旋转轴,距离即为角度
" 实 心 球 体 " 是 一 种 粗 略 的 说 法 , 需 要 将 Z 与 Z ’ 认 同 为 ( 粘 起 来 , 商 拓 扑 ) 同 一 个 点 , 叫 做 对 径 认 同 "实心球体"是一种粗略的说法,需要将Z与Z’认同为(粘起来,商拓扑)同一个点,叫做对径认同 "实心球体"是一种粗略的说法,需要将Z与Z’认同为(粘起来,商拓扑)同一个点,叫做对径认同
O ( m ) ↦ o ( m ) S O ( m ) ↦ s o ( m ) o ( m ) = s o ( m ) = { m 实 方 阵 A ∣ A T = − A } O(m) \mapsto o(m) \\ SO(m) \mapsto so(m) \\ o(m) =so(m) =\{ m实方阵A| A^T=-A \} \\ O(m)↦o(m)SO(m)↦so(m)o(m)=so(m)={
m实方阵A∣AT=−A}
泡利矩阵
泡 利 矩 阵 τ i 是 厄 米 的 , 不 是 反 厄 的 , 连 基 底 都 不 是 , 需 要 略 加 改 造 。 泡利矩阵\tau_i是厄米的,不是反厄的,连基底都不是,需要略加改造。 泡利矩阵τi是厄米的,不是反厄的,连基底都不是,需要略加改造。
任 何 厄 米 矩 阵 乘 虚 单 位 i 都 是 反 厄 的 任何厄米矩阵乘虚单位i都是反厄的 任何厄米矩阵乘虚单位i都是反厄的
乘 − i 2 , 基 矢 E i = − i 2 τ i 乘-\frac{i}{2},基矢E_i=-\frac{i}{2}\tau_i 乘−2i,基矢Ei=−2iτi
这 样 结 构 张 量 就 简 单 了 [ E 1 , E 2 ] = E 1 E 2 − E 2 E 1 = E 3 [ E 2 , E 3 ] = E 2 E 3 − E 3 E 2 = E 1 [ E 3 , E 1 ] = E 3 E 1 − E 1 E 3 = E 2 与 s o ( 3 ) 的 一 样 , 所 以 ∃ 代 数 同 构 ψ s u ( 2 ) → s o ( 3 ) , ψ ( E i ) = A i 但 是 S U ( 2 ) ≠ S O ( 3 ) 这样结构张量就简单了\\ [E_1,E_2]=E_1E_2 -E_2E_1=E_3\\ [E_2,E_3]=E_2E_3 -E_3E_2=E_1\\ [E_3,E_1]=E_3E_1 -E_1E_3=E_2\\ 与so(3)的一样,所以\exists 代数同构 \psi \ su(2)\rightarrow so(3), \psi(E_i)=A_i \\ 但是 SU(2)\neq SO(3) 这样结构张量就简单了[E1,E2]=E1E2−E2E1=E3[E2,E3]=E2E3−E3E2=E1[E3,E1]=E3E1−E1E3=E2与so(3)的一样,所以∃代数同构ψ su(2)→so(3),ψ(Ei)=Ai但是SU(2)=SO(3)
π : S U ( 2 ) 2 t o 1 → S O ( 3 ) \pi :SU(2)\overrightarrow{\ \ \ 2to1 \ \ \ } SO(3) π:SU(2) 2to1 SO(3)
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from scipy.linalg import expm,logm
from numpy import pi,sin,cos,tan,arccos,matmul
from numpy.linalg import norm
# import matplotlib as plt
import matplotlib.pyplot as plt
# from robotools import Euler_Rodrigues,SE3tose3
np.set_printoptions(precision=3,suppress=True)
deg = pi/180
def vec2sM(vec):# https://blog.csdn.net/ResumeProject/article/details/118913851
return np.array([
[0,-vec[2],vec[1]],
[vec[2],0,-vec[0]],
[-vec[1],vec[0],0]
])
def sM2vec(sM):
return np.array([sM[2][1],sM[0][2],sM[1][0]])
x = np.array([1,0,0])
y = np.array([0,1,0])
z = np.array([0,0,1])
dotnum = 20
s = np.array([1,1,1])
X = np.empty([dotnum,3])
Y = np.empty([dotnum,3])
Z = np.empty([dotnum,3])
w=np.linspace(0,1,dotnum)
for i in range (dotnum):
li=w[i]*s
M = vec2sM(li)
A = expm(M)
X[i] = np.dot(A, x)
Y[i] = np.dot(A, y)
Z[i] = np.dot(A, z)
#figure:新的画布
fig=plt.figure()
#axes:坐标轴
ax1=plt.axes(projection='3d')
ax1.scatter3D(0,0,0,cmap='Blues')#绘制散点图
ax1.scatter3D(X[:,0],X[:,1],X[:,2],cmap='Blues')#绘制散点图
ax1.scatter3D(Y[:,0],Y[:,1],Y[:,2],cmap='Blues')#绘制散点图
ax1.scatter3D(Z[:,0],Z[:,1],Z[:,2],cmap='Blues')#绘制散点图
plt.plot([0,0,0], s, label='x')