48_矩阵在工程中的作用场合
一、引言
矩阵是线性代数的核心工具,在工程实践中发挥着不可替代的作用。从机械工程的振动分析到电气工程的电路计算,从计算机图形学的三维变换到机器学习的数据处理,矩阵无处不在。
本文系统梳理矩阵在三大工程领域(机械、电气、计算机)中的具体应用,每个应用都配有详细的计算步骤,帮助读者建立理论与实践的桥梁。
二、矩阵的基本回顾
2.1 矩阵的定义与表示
由 m×nm \times nm×n 个数排成的 mmm 行 nnn 列的数表称为 m×nm \times nm×n 矩阵:
A=[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix}A= a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn
记作 Am×n=(aij)A_{m \times n} = (a_{ij})Am×n=(aij),其中 i=1,2,⋯ ,mi = 1, 2, \cdots, mi=1,2,⋯,m,j=1,2,⋯ ,nj = 1, 2, \cdots, nj=1,2,⋯,n。
a. 特殊矩阵类型
| 类型 | 定义 | 示例 |
|---|---|---|
| 行矩阵 | 1×n1 \times n1×n 矩阵 | [1,2,3][1, 2, 3][1,2,3] |
| 列矩阵 | m×1m \times 1m×1 矩阵 | [123]\begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} 123 |
| 方阵 | m=nm = nm=n | An×nA_{n \times n}An×n |
| 对角矩阵 | aij=0,i≠ja_{ij} = 0, i \neq jaij=0,i=j | diag(a1,a2,⋯ ,an)\mathrm{diag}(a_1, a_2, \cdots, a_n)diag(a1,a2,⋯,an) |
| 单位矩阵 | aij={1i=j0i≠ja_{ij} = \begin{cases} 1 & i=j \\ 0 & i \neq j \end{cases}aij={10i=ji=j | InI_nIn |
| 零矩阵 | 所有元素为0 | Om×nO_{m \times n}Om×n |
2.2 矩阵的核心运算
a. 矩阵加法
两个同型矩阵对应元素相加:
Cij=Aij+BijC_{ij} = A_{ij} + B_{ij}Cij=Aij+Bij
b. 矩阵乘法
Am×pA_{m \times p}Am×p 与 Bp×nB_{p \times n}Bp×n 的乘积 Cm×nC_{m \times n}Cm×n:
cij=∑k=1paik⋅bkjc_{ij} = \sum_{k=1}^{p} a_{ik} \cdot b_{kj}cij=k=1∑paik⋅bkj
c. 矩阵转置
行列互换:(AT)ij=Aji(A^T)_{ij} = A_{ji}(AT)ij=Aji
d. 矩阵求逆
若 AA−1=A−1A=IAA^{-1} = A^{-1}A = IAA−1=A−1A=I,则 A−1A^{-1}A−1 为 AAA 的逆矩阵。
计算公式(伴随矩阵法):
A−1=1det(A)adj(A)A^{-1} = \frac{1}{\det(A)} \mathrm{adj}(A)A−1=det(A)1adj(A)
2.3 矩阵在工程中的桥梁作用
矩阵之所以在工程中广泛应用,源于以下特性:
| 特性 | 工程意义 |
|---|---|
| 批量运算 | 一次矩阵运算等价于大量标量运算,适合计算机批处理 |
| 线性表示 | 线性方程组、线性变换都可用矩阵统一描述 |
| 坐标变换 | 刚体运动、坐标变换都归结为矩阵乘法 |
| 特征分析 | 特征值反映系统的固有特性(频率、振型等) |
三、机械工程中的应用
3.1 机械振动分析
a. 多自由度系统建模
对于具有 nnn 个自由度的振动系统,其运动方程为:
Mx¨+Cx˙+Kx=F(t)M\ddot{x} + C\dot{x} + Kx = F(t)Mx¨+Cx˙+Kx=F(t)
其中:
- MMM:质量矩阵(n×nn \times nn×n 对称正定矩阵)
- CCC:阻尼矩阵(n×nn \times nn×n 对称或非对称矩阵)
- KKK:刚度矩阵(n×nn \times nn×n 对称正定矩阵)
- xxx:位移向量(n×1n \times 1n×1)
- F(t)F(t)F(t):激振力向量(n×1n \times 1n×1)
b. 质量矩阵、刚度矩阵、阻尼矩阵
【计算示例】二自由度弹簧-质量系统
k₁ k₂
---|---|---|||---|---|||
m₁ m₂
质量矩阵(集中质量):
M=[m100m2]M = \begin{bmatrix} m_1 & 0 \\ 0 & m_2 \end{bmatrix}M=[m100m2]
刚度矩阵(根据力平衡推导):
K=[k1+k2−k2−k2k2]K = \begin{bmatrix} k_1 + k_2 & -k_2 \\ -k_2 & k_2 \end{bmatrix}K=[k1+k2−k2−k2k2]
设 m1=1 kgm_1 = 1\,\text{kg}m1=1kg,m2=2 kgm_2 = 2\,\text{kg}m2=2kg,k1=1000 N/mk_1 = 1000\,\text{N/m}k1=1000N/m,k2=500 N/mk_2 = 500\,\text{N/m}k2=500N/m:
M=[1002],K=[1500−500−500500]M = \begin{bmatrix} 1 & 0 \\ 0 & 2 \end{bmatrix}, \quad K = \begin{bmatrix} 1500 & -500 \\ -500 & 500 \end{bmatrix}M=[1002],K=[1500−500−500500]
c. 特征值问题与固有频率求解
对于无阻尼自由振动:Mx¨+Kx=0M\ddot{x} + Kx = 0Mx¨+Kx=0
设解的形式为 x=ϕeiωtx = \phi e^{i\omega t}x=ϕeiωt,代入得广义特征值问题:
(K−ω2M)ϕ=0(K - \omega^2 M)\phi = 0(K−ω2M)ϕ=0
有非零解的条件:det(K−ω2M)=0\det(K - \omega^2 M) = 0det(K−ω2M)=0
【计算步骤】
第一步:列出特征方程
det[1500−ω2⋅1−500−500500−ω2⋅2]=0\det\begin{bmatrix} 1500 - \omega^2 \cdot 1 & -500 \\ -500 & 500 - \omega^2 \cdot 2 \end{bmatrix} = 0det[1500−ω2⋅1−500−500500−ω2⋅2]=0
第二步:计算行列式
(1500−ω2)(500−2ω2)−(−500)(−500)=0(1500 - \omega^2)(500 - 2\omega^2) - (-500)(-500) = 0(1500−ω2)(500−2ω2)−(−500)(−500)=0
750000−3000ω2−2ω4+500ω2−250000=0750000 - 3000\omega^2 - 2\omega^4 + 500\omega^2 - 250000 = 0750000−3000ω2−2ω4+500ω2−250000=0
−2ω4−2500ω2+500000=0-2\omega^4 - 2500\omega^2 + 500000 = 0−2ω4−2500ω2+500000=0
ω4+1250ω2−250000=0\omega^4 + 1250\omega^2 - 250000 = 0ω4+1250ω2−250000=0
第三步:令 λ=ω2\lambda = \omega^2λ=ω2,解二次方程
λ2+1250λ−250000=0\lambda^2 + 1250\lambda - 250000 = 0λ2+1250λ−250000=0
λ=−1250±12502+4×2500002\lambda = \frac{-1250 \pm \sqrt{1250^2 + 4 \times 250000}}{2}λ=2−1250±12502+4×250000
=−1250±1562500+10000002=−1250±25625002= \frac{-1250 \pm \sqrt{1562500 + 1000000}}{2} = \frac{-1250 \pm \sqrt{2562500}}{2}=2−1250±1562500+1000000=2−1250±2562500
=−1250±1600.782= \frac{-1250 \pm 1600.78}{2}=2−1250±1600.78
λ1=175.39,λ2=−1425.39\lambda_1 = 175.39, \quad \lambda_2 = -1425.39λ1=175.39,λ2=−1425.39
第四步:求固有频率
ω1=λ1=175.39=13.24 rad/s\omega_1 = \sqrt{\lambda_1} = \sqrt{175.39} = 13.24\,\text{rad/s}ω1=λ1=175.39=13.24rad/s
ω2=1425.39=37.75 rad/s\omega_2 = \sqrt{1425.39} = 37.75\,\text{rad/s}ω2=1425.39=37.75rad/s
固有频率(Hz):
f1=ω12π=2.11 Hz,f2=ω22π=6.01 Hzf_1 = \frac{\omega_1}{2\pi} = 2.11\,\text{Hz}, \quad f_2 = \frac{\omega_2}{2\pi} = 6.01\,\text{Hz}f1=2πω1=2.11Hz,f2=2πω2=6.01Hz
3.2 机器人运动学
a. 齐次坐标变换矩阵
三维空间中一点 PPP 的齐次坐标为 P~=[x,y,z,1]T\tilde{P} = [x, y, z, 1]^TP~=[x,y,z,1]T。
基本变换矩阵:
平移矩阵(沿 x,y,zx, y, zx,y,z 轴平移 tx,ty,tzt_x, t_y, t_ztx,ty,tz):
Ttranslate=[100tx010ty001tz0001]T_{\text{translate}} = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}Ttranslate= 100001000010txtytz1
旋转矩阵(绕 zzz 轴旋转 θ\thetaθ):
Rz(θ)=[cosθ−sinθ00sinθcosθ0000100001]R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}Rz(θ)= cosθsinθ00−sinθcosθ0000100001
缩放矩阵(沿各轴缩放 sx,sy,szs_x, s_y, s_zsx,sy,sz):
Tscale=[sx0000sy0000sz00001]T_{\text{scale}} = \begin{bmatrix} s_x & 0 & 0 & 0 \\ 0 & s_y & 0 & 0 \\ 0 & 0 & s_z & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}Tscale= sx0000sy0000sz00001
b. 正运动学求解
机器人末端执行器的位姿可通过齐次变换矩阵链计算:
Tend=T01⋅T12⋅T23⋯Tn−1nT_{\text{end}} = T_0^1 \cdot T_1^2 \cdot T_2^3 \cdots T_{n-1}^nTend=T01⋅T12⋅T23⋯Tn−1n
【计算示例】二自由度机械臂
θ₂
↗
L₂ ↗ P (末端)
│
L₁ │
│
───┴── θ₁
基座
已知:L1=4 mL_1 = 4\,\text{m}L1=4m,L2=3 mL_2 = 3\,\text{m}L2=3m,θ1=30°\theta_1 = 30°θ1=30°,θ2=45°\theta_2 = 45°θ2=45°
DH参数表:
| 连杆 iii | θi\theta_iθi | did_idi | aia_iai | αi\alpha_iαi |
|---|---|---|---|---|
| 1 | 30° | 0 | 4 | 0° |
| 2 | 45° | 0 | 3 | 0° |
第一步:计算各连杆变换矩阵
T01=[cos30°−sin30°04cos30°sin30°cos30°04sin30°00100001]=[0.866−0.503.4640.50.8660200100001]T_0^1 = \begin{bmatrix} \cos30° & -\sin30° & 0 & 4\cos30° \\ \sin30° & \cos30° & 0 & 4\sin30° \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0.866 & -0.5 & 0 & 3.464 \\ 0.5 & 0.866 & 0 & 2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}T01= cos30°sin30°00−sin30°cos30°0000104cos30°4sin30°01 = 0.8660.500−0.50.8660000103.464201
T12=[cos45°−sin45°03cos45°sin45°cos45°03sin45°00100001]=[0.707−0.70702.1210.7070.70702.12100100001]T_1^2 = \begin{bmatrix} \cos45° & -\sin45° & 0 & 3\cos45° \\ \sin45° & \cos45° & 0 & 3\sin45° \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0.707 & -0.707 & 0 & 2.121 \\ 0.707 & 0.707 & 0 & 2.121 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}T12= cos45°sin45°00−sin45°cos45°0000103cos45°3sin45°01 = 0.7070.70700−0.7070.7070000102.1212.12101
第二步:计算末端位姿
T02=T01⋅T12=[0.866−0.503.4640.50.8660200100001][0.707−0.70702.1210.7070.70702.12100100001]T_0^2 = T_0^1 \cdot T_1^2 = \begin{bmatrix} 0.866 & -0.5 & 0 & 3.464 \\ 0.5 & 0.866 & 0 & 2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0.707 & -0.707 & 0 & 2.121 \\ 0.707 & 0.707 & 0 & 2.121 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}T02=T01⋅T12= 0.8660.500−0.50.8660000103.464201 0.7070.70700−0.7070.7070000102.1212.12101
第三步:矩阵乘法计算
T02(0,3)=0.866×2.121+(−0.5)×2.121+0×0+3.464×1=1.837−1.061+3.464=4.24T_0^2(0,3) = 0.866 \times 2.121 + (-0.5) \times 2.121 + 0 \times 0 + 3.464 \times 1 = 1.837 - 1.061 + 3.464 = 4.24T02(0,3)=0.866×2.121+(−0.5)×2.121+0×0+3.464×1=1.837−1.061+3.464=4.24
T02(1,3)=0.5×2.121+0.866×2.121+0×0+2×1=1.061+1.837+2=4.898T_0^2(1,3) = 0.5 \times 2.121 + 0.866 \times 2.121 + 0 \times 0 + 2 \times 1 = 1.061 + 1.837 + 2 = 4.898T02(1,3)=0.5×2.121+0.866×2.121+0×0+2×1=1.061+1.837+2=4.898
T02=[0.259−0.96604.240.9660.25904.9000100001]T_0^2 = \begin{bmatrix} 0.259 & -0.966 & 0 & 4.24 \\ 0.966 & 0.259 & 0 & 4.90 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}T02= 0.2590.96600−0.9660.2590000104.244.9001
结果:末端位置为 (4.24 m,4.90 m,0 m)(4.24\,\text{m}, 4.90\,\text{m}, 0\,\text{m})(4.24m,4.90m,0m)
c. 雅可比矩阵与速度分析
雅可比矩阵描述关节速度与末端速度的关系:
x˙=J(q)q˙\dot{x} = J(q)\dot{q}x˙=J(q)q˙
对于平面二连杆机械臂:
J(q)=[−L1sinθ1−L2sin(θ1+θ2)−L2sin(θ1+θ2)L1cosθ1+L2cos(θ1+θ2)L2cos(θ1+θ2)]J(q) = \begin{bmatrix} -L_1\sin\theta_1 - L_2\sin(\theta_1+\theta_2) & -L_2\sin(\theta_1+\theta_2) \\ L_1\cos\theta_1 + L_2\cos(\theta_1+\theta_2) & L_2\cos(\theta_1+\theta_2) \end{bmatrix}J(q)=[−L1sinθ1−L2sin(θ1+θ2)L1cosθ1+L2cos(θ1+θ2)−L2sin(θ1+θ2)L2cos(θ1+θ2)]
【计算示例】
已知 θ1=30°\theta_1 = 30°θ1=30°,θ2=45°\theta_2 = 45°θ2=45°,L1=4 mL_1 = 4\,\text{m}L1=4m,L2=3 mL_2 = 3\,\text{m}L2=3m,θ˙1=0.5 rad/s\dot{\theta}_1 = 0.5\,\text{rad/s}θ˙1=0.5rad/s,θ˙2=0.3 rad/s\dot{\theta}_2 = 0.3\,\text{rad/s}θ˙2=0.3rad/s
雅可比矩阵:
J=[−4sin30°−3sin75°−3sin75°4cos30°+3cos75°3cos75°]J = \begin{bmatrix} -4\sin30° - 3\sin75° & -3\sin75° \\ 4\cos30° + 3\cos75° & 3\cos75° \end{bmatrix}J=[−4sin30°−3sin75°4cos30°+3cos75°−3sin75°3cos75°]
=[−4×0.5−3×0.966−3×0.9664×0.866+3×0.2593×0.259]= \begin{bmatrix} -4 \times 0.5 - 3 \times 0.966 & -3 \times 0.966 \\ 4 \times 0.866 + 3 \times 0.259 & 3 \times 0.259 \end{bmatrix}=[−4×0.5−3×0.9664×0.866+3×0.259−3×0.9663×0.259]
=[−2−2.898−2.8983.464+0.7770.777]=[−4.898−2.8984.2410.777]= \begin{bmatrix} -2 - 2.898 & -2.898 \\ 3.464 + 0.777 & 0.777 \end{bmatrix} = \begin{bmatrix} -4.898 & -2.898 \\ 4.241 & 0.777 \end{bmatrix}=[−2−2.8983.464+0.777−2.8980.777]=[−4.8984.241−2.8980.777]
末端速度:
x˙=J⋅q˙=[−4.898−2.8984.2410.777][0.50.3]\dot{x} = J \cdot \dot{q} = \begin{bmatrix} -4.898 & -2.898 \\ 4.241 & 0.777 \end{bmatrix} \begin{bmatrix} 0.5 \\ 0.3 \end{bmatrix}x˙=J⋅q˙=[−4.8984.241−2.8980.777][0.50.3]
=[−4.898×0.5+(−2.898)×0.34.241×0.5+0.777×0.3]=[−3.322.36] m/s= \begin{bmatrix} -4.898 \times 0.5 + (-2.898) \times 0.3 \\ 4.241 \times 0.5 + 0.777 \times 0.3 \end{bmatrix} = \begin{bmatrix} -3.32 \\ 2.36 \end{bmatrix}\,\text{m/s}=[−4.898×0.5+(−2.898)×0.34.241×0.5+0.777×0.3]=[−3.322.36]m/s
3.3 有限元分析(FEA)
a. 单元刚度矩阵组装
平面应力问题的三角形单元刚度矩阵:
[K]e=∬A[B]T[D][B]t dA[K]^e = \iint_A [B]^T[D][B]t\,dA[K]e=∬A[B]T[D][B]tdA
其中 [B][B][B] 为应变-位移矩阵,[D][D][D] 为弹性矩阵。
【计算示例】三角形单元
3 (0,2)
/\
/ \
/ \
1 /______\ 2
(0,0) (3,0)
节点坐标:(0,0)(0,0)(0,0)、(3,0)(3,0)(3,0)、(0,2)(0,2)(0,2),厚度 t=0.1 mt = 0.1\,\text{m}t=0.1m,弹性模量 E=2×1011 PaE = 2 \times 10^{11}\,\text{Pa}E=2×1011Pa,泊松比 ν=0.3\nu = 0.3ν=0.3
第一步:计算单元面积
A=12∣101131102∣=12(1×3×2+0×1×1+1×0×0−1×3×1−0×1×2−1×0×0)=3 m2A = \frac{1}{2}\begin{vmatrix} 1 & 0 & 1 \\ 1 & 3 & 1 \\ 1 & 0 & 2 \end{vmatrix} = \frac{1}{2}(1 \times 3 \times 2 + 0 \times 1 \times 1 + 1 \times 0 \times 0 - 1 \times 3 \times 1 - 0 \times 1 \times 2 - 1 \times 0 \times 0) = 3\,\text{m}^2A=21 111030112 =21(1×3×2+0×1×1+1×0×0−1×3×1−0×1×2−1×0×0)=3m2
第二步:建立几何矩阵 [B][B][B]
[B]=12A[y2−y30y3−y10y1−y200x3−x20x1−x30x2−x1x3−x2y2−y3x1−x3y3−y1x2−x1y1−y2][B] = \frac{1}{2A}\begin{bmatrix} y_2 - y_3 & 0 & y_3 - y_1 & 0 & y_1 - y_2 & 0 \\ 0 & x_3 - x_2 & 0 & x_1 - x_3 & 0 & x_2 - x_1 \\ x_3 - x_2 & y_2 - y_3 & x_1 - x_3 & y_3 - y_1 & x_2 - x_1 & y_1 - y_2 \end{bmatrix}[B]=2A1 y2−y30x3−x20x3−x2y2−y3y3−y10x1−x30x1−x3y3−y1y1−y20x2−x10x2−x1y1−y2
=16[0−202−000−0003−000−000−33−00−20−00−20−30−0]=16[−20200003000−33−20−2−32]= \frac{1}{6}\begin{bmatrix} 0-2 & 0 & 2-0 & 0 & 0-0 & 0 \\ 0 & 3-0 & 0 & 0-0 & 0 & 0-3 \\ 3-0 & 0-2 & 0-0 & 0-2 & 0-3 & 0-0 \end{bmatrix} = \frac{1}{6}\begin{bmatrix} -2 & 0 & 2 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 & -3 \\ 3 & -2 & 0 & -2 & -3 & 2 \end{bmatrix}=61 0−203−003−00−22−000−000−00−20−000−300−30−0 =61 −20303−220000−200−30−32
第三步:建立弹性矩阵(平面应力)
[D]=E1−ν2[1ν0ν10001−ν2]=2×10111−0.09[10.300.310000.35][D] = \frac{E}{1-\nu^2}\begin{bmatrix} 1 & \nu & 0 \\ \nu & 1 & 0 \\ 0 & 0 & \frac{1-\nu}{2} \end{bmatrix} = \frac{2 \times 10^{11}}{1-0.09}\begin{bmatrix} 1 & 0.3 & 0 \\ 0.3 & 1 & 0 \\ 0 & 0 & 0.35 \end{bmatrix}[D]=1−ν2E 1ν0ν100021−ν =1−0.092×1011 10.300.310000.35
=2.198×1011[10.300.310000.35]= 2.198 \times 10^{11}\begin{bmatrix} 1 & 0.3 & 0 \\ 0.3 & 1 & 0 \\ 0 & 0 & 0.35 \end{bmatrix}=2.198×1011 10.300.310000.35
第四步:计算单元刚度矩阵
[K]e=[B]T[D][B]⋅t⋅A[K]^e = [B]^T[D][B] \cdot t \cdot A[K]e=[B]T[D][B]⋅t⋅A
=16[−20200003000−33−20−2−32]T⋅[D]⋅16[−20200003000−33−20−2−32]×0.1×3= \frac{1}{6}\begin{bmatrix} -2 & 0 & 2 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 & -3 \\ 3 & -2 & 0 & -2 & -3 & 2 \end{bmatrix}^T \cdot [D] \cdot \frac{1}{6}\begin{bmatrix} -2 & 0 & 2 & 0 & 0 & 0 \\ 0 & 3 & 0 & 0 & 0 & -3 \\ 3 & -2 & 0 & -2 & -3 & 2 \end{bmatrix} \times 0.1 \times 3=61 −20303−220000−200−30−32 T⋅[D]⋅61 −20303−220000−200−30−32 ×0.1×3
b. 整体刚度矩阵
将所有单元刚度矩阵按节点编号进行组装:
[K]global=∑e[K]e[K]_{\text{global}} = \sum_e [K]^e[K]global=e∑[K]e
c. 节点位移与节点力求解
整体平衡方程:
[K]{u}={F}[K]\{u\} = \{F\}[K]{u}={F}
引入边界条件后求解:
{u}=[K]−1{F}\{u\} = [K]^{-1}\{F\}{u}=[K]−1{F}
3.4 机械优化设计
a. 灵敏度分析
目标函数对设计变量的敏感度:
Sij=∂f∂xi⋅xifS_{ij} = \frac{\partial f}{\partial x_i} \cdot \frac{x_i}{f}Sij=∂xi∂f⋅fxi
b. 海森矩阵与优化算法
海森矩阵(二阶导数矩阵):
H(x)=[∂2f∂x12∂2f∂x1∂x2⋯∂2f∂x2∂x1∂2f∂x22⋯⋮⋮⋱]H(x) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots \\ \vdots & \vdots & \ddots \end{bmatrix}H(x)= ∂x12∂2f∂x2∂x1∂2f⋮∂x1∂x2∂2f∂x22∂2f⋮⋯⋯⋱
牛顿法迭代公式:
xk+1=xk−H(xk)−1∇f(xk)x^{k+1} = x^k - H(x^k)^{-1} \nabla f(x^k)xk+1=xk−H(xk)−1∇f(xk)
四、电气工程中的应用
4.1 电路分析
a. 节点电压法
对每个独立节点建立KCL方程,写成矩阵形式:
[G][V]=[I][G][V] = [I][G][V]=[I]
其中 [G][G][G] 为节点电导矩阵,[V][V][V] 为节点电压向量,[I][I][I] 为注入电流向量。
【计算示例】简单电路
1Ω 2Ω
①──[R1]───[R2]───②
| |
[I₁] [R₃]
| | 1Ω
| |
└───────┘
③
已知:R1=1 ΩR_1 = 1\,\OmegaR1=1Ω,R2=2 ΩR_2 = 2\,\OmegaR2=2Ω,R3=1 ΩR_3 = 1\,\OmegaR3=1Ω,I1=3 AI_1 = 3\,\text{A}I1=3A,电流源从节点①流入
第一步:建立节点电导矩阵
对节点①、②、③列写KCL方程(节点③接地,V3=0V_3 = 0V3=0):
G11=1R1+1R2=1+0.5=1.5 SG_{11} = \frac{1}{R_1} + \frac{1}{R_2} = 1 + 0.5 = 1.5\,\text{S}G11=R11+R21=1+0.5=1.5S
G12=−1R2=−0.5 SG_{12} = -\frac{1}{R_2} = -0.5\,\text{S}G12=−R21=−0.5S
G22=1R2+1R3=0.5+1=1.5 SG_{22} = \frac{1}{R_2} + \frac{1}{R_3} = 0.5 + 1 = 1.5\,\text{S}G22=R21+R31=0.5+1=1.5S
[G]=[1.5−0.5−0.51.5][G] = \begin{bmatrix} 1.5 & -0.5 \\ -0.5 & 1.5 \end{bmatrix}[G]=[1.5−0.5−0.51.5]
第二步:建立电流向量
[I]=[30][I] = \begin{bmatrix} 3 \\ 0 \end{bmatrix}[I]=[30]
第三步:求解节点电压
[1.5−0.5−0.51.5][V1V2]=[30]\begin{bmatrix} 1.5 & -0.5 \\ -0.5 & 1.5 \end{bmatrix}\begin{bmatrix} V_1 \\ V_2 \end{bmatrix} = \begin{bmatrix} 3 \\ 0 \end{bmatrix}[1.5−0.5−0.51.5][V1V2]=[30]
使用克莱姆法则:
V1=∣3−0.501.5∣∣1.5−0.5−0.51.5∣=4.52=2.25 VV_1 = \frac{\begin{vmatrix} 3 & -0.5 \\ 0 & 1.5 \end{vmatrix}}{\begin{vmatrix} 1.5 & -0.5 \\ -0.5 & 1.5 \end{vmatrix}} = \frac{4.5}{2} = 2.25\,\text{V}V1= 1.5−0.5−0.51.5 30−0.51.5 =24.5=2.25V
V2=∣1.53−0.50∣2=−(−1.5)2=0.75 VV_2 = \frac{\begin{vmatrix} 1.5 & 3 \\ -0.5 & 0 \end{vmatrix}}{2} = \frac{-(-1.5)}{2} = 0.75\,\text{V}V2=2 1.5−0.530 =2−(−1.5)=0.75V
b. 网孔电流法
对每个网孔建立KVL方程:
[R][I]=[V][R][I] = [V][R][I]=[V]
【计算示例】
R₁ = 2Ω
┌──────────────┐
│ │
│ I₁ I₂ │
│ ⟲ ⟲ │
│ │
R₃=1Ω R₂=3Ω│
│ │
│ │
└──────────────┘
V = 12V
第一步:建立网孔电阻矩阵
R11=R1+R2+R3=2+3+1=6 ΩR_{11} = R_1 + R_2 + R_3 = 2 + 3 + 1 = 6\,\OmegaR11=R1+R2+R3=2+3+1=6Ω
R12=R21=−(R2+R3)=−4 ΩR_{12} = R_{21} = -(R_2 + R_3) = -4\,\OmegaR12=R21=−(R2+R3)=−4Ω
[R]=[6−4−46][R] = \begin{bmatrix} 6 & -4 \\ -4 & 6 \end{bmatrix}[R]=[6−4−46]
第二步:建立电压向量
[V]=[120][V] = \begin{bmatrix} 12 \\ 0 \end{bmatrix}[V]=[120]
第三步:求解网孔电流
[I]=[R]−1[V]=136−16[6446][120]=120[7248]=[3.62.4] A[I] = [R]^{-1}[V] = \frac{1}{36-16}\begin{bmatrix} 6 & 4 \\ 4 & 6 \end{bmatrix}\begin{bmatrix} 12 \\ 0 \end{bmatrix} = \frac{1}{20}\begin{bmatrix} 72 \\ 48 \end{bmatrix} = \begin{bmatrix} 3.6 \\ 2.4 \end{bmatrix}\,\text{A}[I]=[R]−1[V]=36−161[6446][120]=201[7248]=[3.62.4]A
c. 导纳矩阵与阻抗矩阵
节点导纳矩阵 [Y][Y][Y] 的元素:
Yij={∑kyiki=j−yiji≠jY_{ij} = \begin{cases} \sum_{k} y_{ik} & i = j \\ -y_{ij} & i \neq j \end{cases}Yij={∑kyik−yiji=ji=j
阻抗矩阵 [Z]=[Y]−1[Z] = [Y]^{-1}[Z]=[Y]−1
d. 传输线矩阵
传输线的ABCD参数矩阵:
[V1I1]=[ABCD][V2I2]\begin{bmatrix} V_1 \\ I_1 \end{bmatrix} = \begin{bmatrix} A & B \\ C & D \end{bmatrix}\begin{bmatrix} V_2 \\ I_2 \end{bmatrix}[V1I1]=[ACBD][V2I2]
4.2 电力系统分析
a. 节点导纳矩阵
电力系统节点导纳矩阵是稀疏矩阵,定义为:
Yij={∑k≠iyiki=j−yiji≠jY_{ij} = \begin{cases} \sum_{k \neq i} y_{ik} & i = j \\ -y_{ij} & i \neq j \end{cases}Yij={∑k=iyik−yiji=ji=j
【计算示例】三节点系统
①──────②
\ /
\ /
\ /
③
线路参数(标幺值):
- 线路①②:y12=−j10y_{12} = -j10y12=−j10
- 线路②③:y23=−j8y_{23} = -j8y23=−j8
- 线路①③:y13=−j6y_{13} = -j6y13=−j6
节点导纳矩阵:
Y=[Y11Y12Y13Y21Y22Y23Y31Y32Y33]=[−j10−j6j10j6j10−j10−j8j8j6j8−j6−j8]Y = \begin{bmatrix} Y_{11} & Y_{12} & Y_{13} \\ Y_{21} & Y_{22} & Y_{23} \\ Y_{31} & Y_{32} & Y_{33} \end{bmatrix} = \begin{bmatrix} -j10-j6 & j10 & j6 \\ j10 & -j10-j8 & j8 \\ j6 & j8 & -j6-j8 \end{bmatrix}Y= Y11Y21Y31Y12Y22Y32Y13Y23Y33 = −j10−j6j10j6j10−j10−j8j8j6j8−j6−j8
=[−j16j10j6j10−j18j8j6j8−j14]= \begin{bmatrix} -j16 & j10 & j6 \\ j10 & -j18 & j8 \\ j6 & j8 & -j14 \end{bmatrix}= −j16j10j6j10−j18j8j6j8−j14
b. 潮流计算(牛顿-拉夫逊法)
牛顿-拉夫逊法的修正方程:
[ΔPΔQ]=[HNJL][ΔθΔV]\begin{bmatrix} \Delta P \\ \Delta Q \end{bmatrix} = \begin{bmatrix} H & N \\ J & L \end{bmatrix}\begin{bmatrix} \Delta \theta \\ \Delta V \end{bmatrix}[ΔPΔQ]=[HJNL][ΔθΔV]
其中雅可比矩阵元素:
Hij=∂Pi∂θj,Nij=Vj∂Pi∂VjH_{ij} = \frac{\partial P_i}{\partial \theta_j}, \quad N_{ij} = V_j \frac{\partial P_i}{\partial V_j}Hij=∂θj∂Pi,Nij=Vj∂Vj∂Pi
Jij=∂Qi∂θj,Lij=Vj∂Qi∂VjJ_{ij} = \frac{\partial Q_i}{\partial \theta_j}, \quad L_{ij} = V_j \frac{\partial Q_i}{\partial V_j}Jij=∂θj∂Qi,Lij=Vj∂Vj∂Qi
c. 短路电流计算
三相短路电流:
Isc=[Ybus]−1[Vprefault]I_{sc} = [Y_{\text{bus}}]^{-1}[V_{\text{prefault}}]Isc=[Ybus]−1[Vprefault]
4.3 信号处理
a. 离散傅里叶变换矩阵
NNN 点DFT的变换矩阵:
[W]N=[111⋯11wNwN2⋯wNN−11wN2wN4⋯wN2(N−1)⋮⋮⋮⋱⋮1wNN−1wN2(N−1)⋯wN(N−1)2][W]_N = \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 \\ 1 & w_N & w_N^2 & \cdots & w_N^{N-1} \\ 1 & w_N^2 & w_N^4 & \cdots & w_N^{2(N-1)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & w_N^{N-1} & w_N^{2(N-1)} & \cdots & w_N^{(N-1)^2} \end{bmatrix}[W]N= 111⋮11wNwN2⋮wNN−11wN2wN4⋮wN2(N−1)⋯⋯⋯⋱⋯1wNN−1wN2(N−1)⋮wN(N−1)2
其中 wN=e−j2π/Nw_N = e^{-j2\pi/N}wN=e−j2π/N
b. 协方差矩阵与相关矩阵
协方差矩阵:
[Σ]=E{(x−μ)(x−μ)T}[\Sigma] = E\{(x - \mu)(x - \mu)^T\}[Σ]=E{(x−μ)(x−μ)T}
c. 自适应滤波(最小均方算法)
LMS算法权重更新:
w(n+1)=w(n)+μx(n)e(n)w(n+1) = w(n) + \mu x(n)e(n)w(n+1)=w(n)+μx(n)e(n)
矩阵形式:
w(n+1)=w(n)+μx(n)[d(n)−wT(n)x(n)]w(n+1) = w(n) + \mu x(n)[d(n) - w^T(n)x(n)]w(n+1)=w(n)+μx(n)[d(n)−wT(n)x(n)]
4.4 控制理论
a. 状态空间表示法
线性系统的状态空间方程:
x˙=Ax+Bu\dot{x} = Ax + Bux˙=Ax+Bu
y=Cx+Duy = Cx + Duy=Cx+Du
其中:
- AAA:系统矩阵(n×nn \times nn×n)
- BBB:输入矩阵(n×pn \times pn×p)
- CCC:输出矩阵(q×nq \times nq×n)
- DDD:直接传递矩阵(q×pq \times pq×p)
b. 可控性与可观性矩阵
可控性矩阵:
[c]=[BABA2B⋯An−1B][c] = \begin{bmatrix} B & AB & A^2B & \cdots & A^{n-1}B \end{bmatrix}[c]=[BABA2B⋯An−1B]
可观性矩阵:
[o]=[CCACA2⋮CAn−1][o] = \begin{bmatrix} C \\ CA \\ CA^2 \\ \vdots \\ CA^{n-1} \end{bmatrix}[o]= CCACA2⋮CAn−1
【计算示例】判断可控性
系统矩阵和输入矩阵:
A=[01−2−3],B=[01]A = \begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ 1 \end{bmatrix}A=[0−21−3],B=[01]
第一步:计算 ABABAB
AB=[01−2−3][01]=[1−3]AB = \begin{bmatrix} 0 & 1 \\ -2 & -3 \end{bmatrix}\begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 \\ -3 \end{bmatrix}AB=[0−21−3][01]=[1−3]
第二步:构造可控性矩阵
[c]=[BAB]=[011−3][c] = \begin{bmatrix} B & AB \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ 1 & -3 \end{bmatrix}[c]=[BAB]=[011−3]
第三步:计算行列式
det([c])=0×(−3)−1×1=−1≠0\det([c]) = 0 \times (-3) - 1 \times 1 = -1 \neq 0det([c])=0×(−3)−1×1=−1=0
结论:系统完全可控
c. 状态反馈与极点配置
状态反馈律 u=−Kxu = -Kxu=−Kx,闭环系统:
x˙=(A−BK)x\dot{x} = (A - BK)xx˙=(A−BK)x
极点配置到期望位置 sis_isi:
det(sI−A+BK)=∏i=1n(s−si)\det(sI - A + BK) = \prod_{i=1}^n (s - s_i)det(sI−A+BK)=i=1∏n(s−si)
4.5 通信系统
a. 多输入多输出(MIMO)信道矩阵
NtN_tNt 发射天线、NrN_rNr 接收天线的MIMO信道:
y=Hx+ny = Hx + ny=Hx+n
其中 HHH 为 Nr×NtN_r \times N_tNr×Nt 信道矩阵,xxx 为发送信号向量,yyy 为接收信号向量。
【计算示例】2×2 MIMO
H=[0.80.20.30.9],x=[10],n=[0.1−0.05]H = \begin{bmatrix} 0.8 & 0.2 \\ 0.3 & 0.9 \end{bmatrix}, \quad x = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad n = \begin{bmatrix} 0.1 \\ -0.05 \end{bmatrix}H=[0.80.30.20.9],x=[10],n=[0.1−0.05]
y=[0.80.20.30.9][10]+[0.1−0.05]=[0.90.25]y = \begin{bmatrix} 0.8 & 0.2 \\ 0.3 & 0.9 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix} + \begin{bmatrix} 0.1 \\ -0.05 \end{bmatrix} = \begin{bmatrix} 0.9 \\ 0.25 \end{bmatrix}y=[0.80.30.20.9][10]+[0.1−0.05]=[0.90.25]
b. 扩频通信中的正交矩阵
Walsh-Hadamard 矩阵用于扩频码:
H2=[111−1],H4=[H2H2H2−H2]H_2 = \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}, \quad H_4 = \begin{bmatrix} H_2 & H_2 \\ H_2 & -H_2 \end{bmatrix}H2=[111−1],H4=[H2H2H2−H2]
五、计算机工程中的应用
5.1 计算机图形学
a. 三维变换矩阵
旋转变换(绕 xxx 轴旋转 α\alphaα):
Rx(α)=[10000cosα−sinα00sinαcosα00001]R_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha & 0 \\ 0 & \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}Rx(α)= 10000cosαsinα00−sinαcosα00001
旋转变换(绕 yyy 轴旋转 β\betaβ):
Ry(β)=[cosβ0sinβ00100−sinβ0cosβ00001]R_y(\beta) = \begin{bmatrix} \cos\beta & 0 & \sin\beta & 0 \\ 0 & 1 & 0 & 0 \\ -\sin\beta & 0 & \cos\beta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}Ry(β)= cosβ0−sinβ00100sinβ0cosβ00001
旋转变换(绕 zzz 轴旋转 γ\gammaγ):
Rz(γ)=[cosγ−sinγ00sinγcosγ0000100001]R_z(\gamma) = \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 & 0 \\ \sin\gamma & \cos\gamma & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}Rz(γ)= cosγsinγ00−sinγcosγ0000100001
b. 投影矩阵
透视投影矩阵:
Pperspective=[1tan(fov2)⋅aspect00001tan(fov2)0000−far+nearfar−near−2⋅far⋅nearfar−near00−10]P_{\text{perspective}} = \begin{bmatrix} \frac{1}{\tan(\frac{fov}{2}) \cdot aspect} & 0 & 0 & 0 \\ 0 & \frac{1}{\tan(\frac{fov}{2})} & 0 & 0 \\ 0 & 0 & -\frac{far+near}{far-near} & -\frac{2 \cdot far \cdot near}{far-near} \\ 0 & 0 & -1 & 0 \end{bmatrix}Pperspective= tan(2fov)⋅aspect10000tan(2fov)10000−far−nearfar+near−100−far−near2⋅far⋅near0
正交投影矩阵:
Porthographic=[2right−left00−right+leftright−left02top−bottom0−top+bottomtop−bottom00−2far−near−far+nearfar−near0001]P_{\text{orthographic}} = \begin{bmatrix} \frac{2}{right-left} & 0 & 0 & -\frac{right+left}{right-left} \\ 0 & \frac{2}{top-bottom} & 0 & -\frac{top+bottom}{top-bottom} \\ 0 & 0 & -\frac{2}{far-near} & -\frac{far+near}{far-near} \\ 0 & 0 & 0 & 1 \end{bmatrix}Porthographic= right−left20000top−bottom20000−far−near20−right−leftright+left−top−bottomtop+bottom−far−nearfar+near1
七、C语言中的矩阵实现
7.1 矩阵结构体定义
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// 矩阵结构体
typedef struct
{
int rows; // 行数
int cols; // 列数
double** data; // 数据指针
} Matrix;
// 创建矩阵
Matrix* matrix_create(int rows, int cols)
{
Matrix* M = (Matrix*)malloc(sizeof(Matrix));
M->rows = rows;
M->cols = cols;
M->data = (double**)malloc(rows * sizeof(double*));
for (int i = 0; i < rows; i++) {
M->data[i] = (double*)calloc(cols, sizeof(double));
}
return M;
}
// 释放矩阵
void matrix_free(Matrix* M)
{
for (int i = 0; i < M->rows; i++)
{
free(M->data[i]);
}
free(M->data);
free(M);
}
7.2 基本运算函数
a. 矩阵加法
// 矩阵加法:C = A + B
Matrix* matrix_add(Matrix* A, Matrix* B)
{
if (A->rows != B->rows || A->cols != B->cols)
{
printf("Error: Matrix dimensions mismatch!\n");
return NULL;
}
Matrix* C = matrix_create(A->rows, A->cols);
for (int i = 0; i < A->rows; i++)
{
for (int j = 0; j < A->cols; j++)
{
C->data[i][j] = A->data[i][j] + B->data[i][j];
}
}
return C;
}
b. 矩阵乘法
// 矩阵乘法:C = A * B
Matrix* matrix_multiply(Matrix* A, Matrix* B)
{
if (A->cols != B->rows)
{
printf("Error: Matrix dimensions incompatible!\n");
return NULL;
}
Matrix* C = matrix_create(A->rows, B->cols);
for (int i = 0; i < A->rows; i++)
{
for (int j = 0; j < B->cols; j++)
{
C->data[i][j] = 0;
for (int k = 0; k < A->cols; k++)
{
C->data[i][j] += A->data[i][k] * B->data[k][j];
}
}
}
return C;
}
c. 矩阵转置
// 矩阵转置
Matrix* matrix_transpose(Matrix* A)
{
Matrix* AT = matrix_create(A->cols, A->rows);
for (int i = 0; i < A->rows; i++)
{
for (int j = 0; j < A->cols; j++)
{
AT->data[j][i] = A->data[i][j];
}
}
return AT;
}
7.3 工程求解函数
a. 高斯消元法求解线性方程组
// 高斯消元法求解 Ax = b
// 返回解向量 x
double* gaussian_elimination(Matrix* A, double* b, int n)
{
double** aug = (double**)malloc(n * sizeof(double*));
for (int i = 0; i < n; i++)
{
aug[i] = (double*)malloc((n + 1) * sizeof(double));
for (int j = 0; j < n; j++)
{
aug[i][j] = A->data[i][j];
}
aug[i][n] = b[i];
}
// 前向消元
for (int k = 0; k < n; k++)
{
// 选主元
int max_row = k;
for (int i = k + 1; i < n; i++)
{
if (fabs(aug[i][k]) > fabs(aug[max_row][k]))
{
max_row = i;
}
}
// 交换行
double* temp = aug[k];
aug[k] = aug[max_row];
aug[max_row] = temp;
// 消元
for (int i = k + 1; i < n; i++)
{
double factor = aug[i][k] / aug[k][k];
for (int j = k; j <= n; j++)
{
aug[i][j] -= factor * aug[k][j];
}
}
}
// 回代求解
double* x = (double*)malloc(n * sizeof(double));
for (int i = n - 1; i >= 0; i--)
{
x[i] = aug[i][n];
for (int j = i + 1; j < n; j++)
{
x[i] -= aug[i][j] * x[j];
}
x[i] /= aug[i][i];
}
for (int i = 0; i < n; i++)
{
free(aug[i]);
}
free(aug);
return x;
}
b. 雅可比迭代法(稀疏矩阵求解)
// 雅可比迭代法求解线性方程组
// 适用于对角占优的稀疏矩阵
double* jacobi_iteration(Matrix* A, double* b, int n, double tol, int max_iter)
{
double* x = (double*)calloc(n, sizeof(double));
double* x_new = (double*)malloc(n * sizeof(double));
for (int iter = 0; iter < max_iter; iter++)
{
for (int i = 0; i < n; i++)
{
x_new[i] = b[i];
for (int j = 0; j < n; j++)
{
if (i != j) {
x_new[i] -= A->data[i][j] * x[j];
}
}
x_new[i] /= A->data[i][i];
}
// 检查收敛
double diff = 0;
for (int i = 0; i < n; i++)
{
diff += fabs(x_new[i] - x[i]);
}
for (int i = 0; i < n; i++)
{
x[i] = x_new[i];
}
if (diff < tol)
{
printf("Converged after %d iterations\n", iter + 1);
break;
}
}
free(x_new);
return x;
}
7.4 示例程序
int main()
{
// 示例:求解二自由度振动系统
// [K]{x} = {F}
int n = 2;
Matrix* K = matrix_create(n, n);
K->data[0][0] = 1500; K->data[0][1] = -500;
K->data[1][0] = -500; K->data[1][1] = 500;
double F[] = {1000, 500};
printf("刚度矩阵 K:\n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%10.2f ", K->data[i][j]);
}
printf("\n");
}
printf("力向量 F: [%.2f, %.2f]\n", F[0], F[1]);
double* x = gaussian_elimination(K, F, n);
printf("位移解 x: [%.4f, %.4f] m\n", x[0], x[1]);
// 验证
double* F_calc = matrix_multiply(K, matrix_create_from_array(x, n, 1))->data[0];
matrix_free(K);
free(x);
return 0;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)