← 返回《人工智能数学基础》
📑 查看全课大纲(第 78 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

实对称矩阵对角化

约 19 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

实对称矩阵对角化

小象实战讲义 · 人工智能数学基础

在人工智能领域,尤其是主成分分析(PCA)、谱聚类等算法中,我们常常需要处理实对称矩阵。这类矩阵拥有极其优良的数学性质,其核心之一便是“一定可以正交相似于一个对角矩阵”。本节我们将深入探讨这一重要结论,学习如何将实对称矩阵通过正交变换化为对角形,并掌握其具体的计算流程。学完本节,你将能够独立完成任意实对称矩阵的正交对角化,这是理解后续SVD分解和诸多优化算法的基础。

💡 核心导读

  • 正交相似:比普通相似更严格,要求变换矩阵是正交矩阵,能保持向量长度和夹角。
  • 实对称矩阵的核心性质:特征值必为实数;属于不同特征值的特征向量相互正交。
  • 核心定理:任何实对称矩阵必可正交相似于一个对角矩阵。
  • 对角化流程:求解特征值 → 求解特征向量 → 施密特正交化与单位化 → 构造正交矩阵与对角矩阵。

从相似到正交相似

在上一节中,我们学习了矩阵的相似关系:若存在可逆矩阵 UU,使得 U1AU=BU^{-1} A U = B,则称矩阵 AABB 相似。相似关系是一种等价关系,它保持矩阵的秩、行列式和迹不变。

现在,我们对变换矩阵 UU 提出更高的要求。如果这个可逆矩阵 UU 恰好是一个正交矩阵(即满足 U1=UTU^{-1} = U^T),那么这种相似关系就称为正交相似

正交相似比普通相似更强,因为正交变换(由正交矩阵定义)是保内积的变换,这意味着它不改变向量的长度和夹角。在几何上,正交变换对应于旋转或镜像反射。对于实对称矩阵,我们将看到,它总是可以通过这种“旋转/反射”的方式,被“摆放”成一个简单的对角矩阵。

实对称矩阵的对角化定理

首先明确,实对称矩阵是指在实数域上定义的对称矩阵,即满足 A=ATA = A^T 且所有元素均为实数的矩阵。

实对称矩阵拥有两个至关重要的性质,它们是实现正交对角化的基石。

定理 1:实对称矩阵的特征值均为实数。AAnn 阶实对称矩阵,其特征多项式为 λIA=0|\lambda I - A| = 0。虽然在复数域上,这个 nn 次方程必有 nn 个根(含重根),但该定理断言,对于实对称矩阵 AA,这 nn 个根全部是实数。这意味着我们总能解出 nn 个实特征值(可能有重复)。

定理 2:实对称矩阵属于不同特征值的特征向量相互正交。λ1\lambda_1λ2\lambda_2 是实对称矩阵 AA 的两个不同特征值(λ1λ2\lambda_1 \ne \lambda_2),α1\alpha_1α2\alpha_2 分别是其对应的特征向量,即 Aα1=λ1α1A\alpha_1 = \lambda_1 \alpha_1Aα2=λ2α2A\alpha_2 = \lambda_2 \alpha_2。则 α1\alpha_1α2\alpha_2 正交,即它们的内积 α1,α2=α1Tα2=0\langle \alpha_1, \alpha_2 \rangle = \alpha_1^T \alpha_2 = 0

证明: 考虑内积 Aα1,α2\langle A\alpha_1, \alpha_2 \rangle。一方面,由特征值定义: Aα1,α2=λ1α1,α2=λ1α1,α2\langle A\alpha_1, \alpha_2 \rangle = \langle \lambda_1 \alpha_1, \alpha_2 \rangle = \lambda_1 \langle \alpha_1, \alpha_2 \rangle 另一方面,利用 AA 的对称性 (AT=A)(A^T = A) 和矩阵转置的性质: Aα1,α2=(Aα1)Tα2=α1TATα2=α1T(Aα2)=α1T(λ2α2)=λ2α1,α2\langle A\alpha_1, \alpha_2 \rangle = (A\alpha_1)^T \alpha_2 = \alpha_1^T A^T \alpha_2 = \alpha_1^T (A \alpha_2) = \alpha_1^T (\lambda_2 \alpha_2) = \lambda_2 \langle \alpha_1, \alpha_2 \rangle 将两式联立,得到: λ1α1,α2=λ2α1,α2\lambda_1 \langle \alpha_1, \alpha_2 \rangle = \lambda_2 \langle \alpha_1, \alpha_2 \rangle 移项得: (λ1λ2)α1,α2=0(\lambda_1 - \lambda_2) \langle \alpha_1, \alpha_2 \rangle = 0 由于 λ1λ2\lambda_1 \ne \lambda_2,则必有 α1,α2=0\langle \alpha_1, \alpha_2 \rangle = 0。证毕。

这两个定理共同导向了本节最核心的结论:

定理 3(实对称矩阵正交相似对角化定理): 任何 nn 阶实对称矩阵 AA,必存在一个 nn 阶正交矩阵 TT,使得 T1AT=TTAT=ΛT^{-1} A T = T^T A T = \Lambda 其中 Λ\Lambda 是一个对角矩阵,其对角线上的元素恰好是 AAnn 个实特征值。

定理的直观理解

  1. 由定理1,我们总能找到 nn 个实特征值。
  2. 对于每个特征值 λi\lambda_i,求解对应的特征子空间。属于不同特征值的特征向量由定理2保证是正交的。
  3. 对于同一个特征值 λi\lambda_i(重数 ri>1r_i > 1),其特征子空间是 rir_i 维的。我们可以在这个子空间内部,利用施密特正交化方法,构造出一组标准正交基。这组基内部的向量是正交的,并且由于它们都对应同一个特征值,它们与其它特征值对应的特征向量也正交(因为不同特征值对应的特征子空间是正交的)。
  4. 最终,我们将所有特征子空间的标准正交基合并起来,就得到了 nn 个两两正交的单位向量,它们构成了一个正交矩阵 TT 的列向量。TTATT^T A T 的结果必然是对角矩阵 Λ\Lambda

实对称矩阵对角化的计算流程

基于上述定理,我们可以总结出将实对称矩阵 AA 正交对角化的标准步骤:

步骤 1:计算特征值与特征向量

  1. 求解特征多项式 λIA=0|\lambda I - A| = 0,得到 AA 的所有实特征值 λ1,λ2,,λm\lambda_1, \lambda_2, \dots, \lambda_m(其中 λi\lambda_i 的重数为 rir_i,且 i=1mri=n\sum_{i=1}^m r_i = n)。
  2. 对每个不同的特征值 λi\lambda_i,求解齐次线性方程组 (λiIA)x=0(\lambda_i I - A) x = 0,得到一个基础解系 {αi1,αi2,,αiri}{ \alpha_{i1}, \alpha_{i2}, \dots, \alpha_{ir_i} },它们张成了 λi\lambda_i 的特征子空间。

步骤 2:特征向量的正交化与单位化

  1. 对于每个特征值 λi\lambda_i 对应的基础解系 {αi1,αi2,,αiri}{ \alpha_{i1}, \alpha_{i2}, \dots, \alpha_{ir_i} },使用施密特正交化方法,将其转化为一组正交向量组 {βi1,βi2,,βiri}{ \beta_{i1}, \beta_{i2}, \dots, \beta_{ir_i} }
    • ri=1r_i = 1,则无需正交化,直接进入单位化。
    • 施密特正交化公式(以两个向量为例): β1=α1β2=α2α2,β1β1,β1β1\begin{aligned} \beta_1 &= \alpha_1 \ \beta_2 &= \alpha_2 - \frac{\langle \alpha_2, \beta_1 \rangle}{\langle \beta_1, \beta_1 \rangle} \beta_1 \end{aligned}
  2. 对正交化后的每个向量 βij\beta_{ij} 进行单位化(标准化),得到标准正交向量 ηij\eta_{ij}ηij=βijβij\eta_{ij} = \frac{\beta_{ij}}{|\beta_{ij}|} 这样,{ηi1,ηi2,,ηiri}{ \eta_{i1}, \eta_{i2}, \dots, \eta_{ir_i} } 就构成了特征值 λi\lambda_i 的特征子空间的一组标准正交基。

步骤 3:构造正交矩阵与对角矩阵

  1. 将所有特征子空间的标准正交基向量,按照对应的特征值顺序排列,构成一个 n×nn \times n 的矩阵 TTT=[η11η1r1η21η2r2ηm1ηmrm]T = \begin{bmatrix} \eta_{11} & \dots & \eta_{1 r_1} & \eta_{21} & \dots & \eta_{2 r_2} & \dots & \eta_{m1} & \dots & \eta_{m r_m} \end{bmatrix} 由于所有 ηij\eta_{ij} 是两两正交的单位向量,矩阵 TT 是正交矩阵,满足 T1=TTT^{-1} = T^T
  2. 对应的对角矩阵 Λ\Lambda 的对角线元素,按照 TT 中列向量的排列顺序,放置相应的特征值: Λ=diag(λ1,,λ1r1,λ2,,λ2r2,,λm,,λmrm)\Lambda = \text{diag}(\underbrace{\lambda_1, \dots, \lambda_1}{r_1\text{个}}, \underbrace{\lambda_2, \dots, \lambda_2}{r_2\text{个}}, \dots, \underbrace{\lambda_m, \dots, \lambda_m}_{r_m\text{个}})
  3. 最终有 TTAT=ΛT^T A T = \Lambda

计算实例演示

让我们通过一个具体例子来实践上述流程。设实对称矩阵 A=[122212221]A = \begin{bmatrix} 1 & 2 & 2 \ 2 & 1 & 2 \ 2 & 2 & 1 \end{bmatrix} 我们的目标是找到一个正交矩阵 TT,使得 TTATT^T A T 为对角矩阵。

1. 求特征值与特征向量 计算特征多项式: λIA=λ1222λ1222λ1=(λ5)(λ+1)2=0|\lambda I - A| = \begin{vmatrix} \lambda - 1 & -2 & -2 \ -2 & \lambda - 1 & -2 \ -2 & -2 & \lambda - 1 \end{vmatrix} = (\lambda - 5)(\lambda + 1)^2 = 0 解得特征值:λ1=1\lambda_1 = -1(二重), λ2=5\lambda_2 = 5(一重)。

对于 λ1=1\lambda_1 = -1,解 (IA)x=0(-I - A)x = 0,即 (A+I)x=0(A + I)x = 0[222222222]x1+x2+x3=0,基础解系: α1=[110],α2=[101]\begin{bmatrix} 2 & 2 & 2 \ 2 & 2 & 2 \ 2 & 2 & 2 \end{bmatrix} \rightarrow \dots \rightarrow x_1 + x_2 + x_3 = 0,\quad \text{基础解系: } \alpha_1 = \begin{bmatrix} 1 \ -1 \ 0 \end{bmatrix}, \alpha_2 = \begin{bmatrix} 1 \ 0 \ -1 \end{bmatrix}

对于 λ2=5\lambda_2 = 5,解 (5IA)x=0(5I - A)x = 0[422242224]基础解系: α3=[111]\begin{bmatrix} 4 & -2 & -2 \ -2 & 4 & -2 \ -2 & -2 & 4 \end{bmatrix} \rightarrow \dots \rightarrow \text{基础解系: } \alpha_3 = \begin{bmatrix} 1 \ 1 \ 1 \end{bmatrix}

2. 正交化与单位化

  • λ1\lambda_1 的特征向量 α1,α2\alpha_1, \alpha_2 进行施密特正交化: β1=α1=[110]β2=α2α2,β1β1,β1β1=[101]12[110]=[12121]\begin{aligned} \beta_1 &= \alpha_1 = \begin{bmatrix} 1 \ -1 \ 0 \end{bmatrix} \ \beta_2 &= \alpha_2 - \frac{\langle \alpha_2, \beta_1 \rangle}{\langle \beta_1, \beta_1 \rangle} \beta_1 = \begin{bmatrix} 1 \ 0 \ -1 \end{bmatrix} - \frac{1}{2} \begin{bmatrix} 1 \ -1 \ 0 \end{bmatrix} = \begin{bmatrix} \frac{1}{2} \ \frac{1}{2} \ -1 \end{bmatrix} \end{aligned} 为避免分数运算,可把 β2\beta_2 放大 2 倍,取 β2=[112]\beta_2’ = \begin{bmatrix} 1 \ 1 \ -2 \end{bmatrix}(正交化过程允许向量伸缩,不改变正交性,也不影响单位化结果)。然后单位化: η1=β1β1=12[110]=[22220]η2=β2β2=16[112]=[666663]\begin{aligned} \eta_1 &= \frac{\beta_1}{|\beta_1|} = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 \ -1 \ 0 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} \ -\frac{\sqrt{2}}{2} \ 0 \end{bmatrix} \ \eta_2 &= \frac{\beta_2’}{|\beta_2’|} = \frac{1}{\sqrt{6}} \begin{bmatrix} 1 \ 1 \ -2 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{6}}{6} \ \frac{\sqrt{6}}{6} \ -\frac{\sqrt{6}}{3} \end{bmatrix} \end{aligned}
  • λ2\lambda_2 的特征向量 α3\alpha_3 直接单位化(只有一个向量,无需正交化): η3=α3α3=13[111]=[333333]\eta_3 = \frac{\alpha_3}{|\alpha_3|} = \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \ 1 \ 1 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{3}}{3} \ \frac{\sqrt{3}}{3} \ \frac{\sqrt{3}}{3} \end{bmatrix}

3. 构造矩阵 TTΛ\Lambda 将单位化后的特征向量按列排成正交矩阵 TT,顺序与特征值对应: T=[η1η2η3]=[22663322663306333]T = \begin{bmatrix} \eta_1 & \eta_2 & \eta_3 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} & \frac{\sqrt{6}}{6} & \frac{\sqrt{3}}{3} \ -\frac{\sqrt{2}}{2} & \frac{\sqrt{6}}{6} & \frac{\sqrt{3}}{3} \ 0 & -\frac{\sqrt{6}}{3} & \frac{\sqrt{3}}{3} \end{bmatrix} 对应的对角矩阵 Λ\Lambda 为: Λ=[100010005]\Lambda = \begin{bmatrix} -1 & 0 & 0 \ 0 & -1 & 0 \ 0 & 0 & 5 \end{bmatrix} 可以验证:Aη1=η1A\eta_1 = -\eta_1Aη2=η2A\eta_2 = -\eta_2Aη3=5η3A\eta_3 = 5\eta_3,且 η1,η2,η3\eta_1, \eta_2, \eta_3 两两正交、长度为 1,因此 TTAT=ΛT^T A T = \Lambda

import numpy as np

# 定义实对称矩阵 A
A = np.array([[1, 2, 2],
              [2, 1, 2],
              [2, 2, 1]], dtype=float)

# 1. 对实对称矩阵,推荐使用 np.linalg.eigh 而非 eig:
#    eigh 专门针对对称矩阵设计,保证返回的特征向量两两正交且已单位化,
#    正好对应本节手工推导中"施密特正交化 + 单位化"的结果。
eigenvalues, T = np.linalg.eigh(A)

print("特征值 (eigh 按升序返回,对应 -1, -1, 5):")
print(eigenvalues)
print("\n特征向量矩阵 T (列向量,已单位正交):")
print(T)

# 2. 验证 T^T * A * T 是否为对角阵(对角线应为 -1, -1, 5)
Lambda_computed = T.T @ A @ T
print("\n验证 T^T * A * T (应为对角阵):")
print(np.round(Lambda_computed, 10))  # 四舍五入消除微小误差

# 3. 验证 T 是正交矩阵 (T^T * T 应为单位阵)
print("\n验证 T 是正交矩阵 (T^T * T 应为单位阵):")
print(np.round(T.T @ T, 10))

# 注意:eigh 返回的特征向量符号可能与手工计算不同(特征向量方向可任意取反),
# 重特征值 (-1) 对应的二维特征子空间中,具体取哪组正交基也不唯一,
# 这正是"正交矩阵 T 不唯一"的体现。

📝 动手练一练

  1. 性质理解:设 AAnn 阶实对称矩阵,且已知其特征值 λ1=1\lambda_1 = 1(三重),λ2=2\lambda_2 = -2(一重)。请问: a) 矩阵 AA 的秩可能是多少?说明理由。 b) 能否断言属于 λ1\lambda_1 的任意两个特征向量都是正交的?为什么?

  2. 计算实践:对以下实对称矩阵进行正交对角化,即求正交矩阵 TT 和对角矩阵 Λ\Lambda,使得 TTAT=ΛT^T A T = \LambdaA=[211121112]A = \begin{bmatrix} 2 & 1 & 1 \ 1 & 2 & 1 \ 1 & 1 & 2 \end{bmatrix} (提示:先求特征值,其中一个特征值较容易看出)

参考答案

  1. a) 由于 λ1=1\lambda_1 = 1(三重)与 λ2=2\lambda_2 = -2(一重)全部非零,而实对称矩阵必可对角化,其秩等于非零特征值的个数(计重数),因此 AA 的秩为 3+1=43 + 1 = 4(满秩,AA 为 4 阶矩阵)。 b) 不能。定理只保证属于不同特征值的特征向量正交。对于同一个特征值 λ1\lambda_1,其特征子空间内的向量不一定正交。例如,在三维特征子空间中,我们可以找到无数个不相互正交的向量。需要通过施密特正交化才能得到正交基。

  2. 参考答案: 特征多项式为 λIA=(λ1)2(λ4)=0|\lambda I - A| = (\lambda - 1)^2 (\lambda - 4) = 0。特征值:λ1=1\lambda_1 = 1(二重),λ2=4\lambda_2 = 4(一重)。 对应 λ1=1\lambda_1=1 的特征向量基础解系:α1=(1,1,0)T\alpha_1 = (1, -1, 0)^T, α2=(1,0,1)T\alpha_2 = (1, 0, -1)^T。正交化:β1=α1\beta_1 = \alpha_1, β2=α212β1=(12,12,1)T\beta_2 = \alpha_2 - \frac{1}{2}\beta_1 = (\frac{1}{2}, \frac{1}{2}, -1)^T。单位化后得 η1=(22,22,0)T\eta_1 = (\frac{\sqrt{2}}{2}, -\frac{\sqrt{2}}{2}, 0)^T, η2=(66,66,63)T\eta_2 = (\frac{\sqrt{6}}{6}, \frac{\sqrt{6}}{6}, -\frac{\sqrt{6}}{3})^T。 对应 λ2=4\lambda_2=4 的特征向量:α3=(1,1,1)T\alpha_3 = (1, 1, 1)^T,单位化得 η3=(33,33,33)T\eta_3 = (\frac{\sqrt{3}}{3}, \frac{\sqrt{3}}{3}, \frac{\sqrt{3}}{3})^T。 正交矩阵 T=[η1,η2,η3]T = [\eta_1, \eta_2, \eta_3],对角矩阵 Λ=diag(1,1,4)\Lambda = \text{diag}(1, 1, 4)

本章小结

本节我们深入探讨了线性代数中一个极为重要的专题——实对称矩阵的对角化。我们从普通的相似概念出发,引入了要求更严格、几何意义更明确的“正交相似”。实对称矩阵因其自身的对称性,具备了特征值全为实数、不同特征值对应特征向量正交的优良性质。这些性质最终保证了任何实对称矩阵都可以正交相似于一个对角矩阵这一核心结论。

我们不仅学习了这个定性的结论,还掌握了将其实现的定量计算流程:求解特征值与特征向量 → 对特征向量进行施密特正交化与单位化 → 构造正交矩阵与对角矩阵。这个过程是后续学习主成分分析(PCA)、奇异值分解(SVD)等算法的直接数学基础。

行动清单

  1. 记忆核心定理:熟记“实对称矩阵必可正交对角化”及其两个前提性质(特征值全实、不同特征值特征向量正交)。
  2. 掌握计算流程:独立完成至少一道实对称矩阵正交对角化的计算题,确保每一步(尤其是施密特正交化)都清晰无误。
  3. 代码验证:使用 Python 的 NumPy 库(np.linalg.eig)验证你手工计算的结果,理解数值计算与理论推导之间的关系。

— 小象教研组

配套学习资源与课件
  • 第10章讲义(含板书):线性代数(PDF · 15.5MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问