【矩阵分析】向量求和转为矩阵

B = B 1 , B 2 , ... , B N T ∈ R N × 1 \boldsymbol B = B_1,B_2,\\dots,B_N^T \in \mathbb{R}^{N \times 1} B=B1,B2,...,BNT∈RN×1, W = W 1 , W 2 , ... , W N T ∈ R N × N r \boldsymbol W = \\boldsymbol W_1,\\boldsymbol W_2,\\dots,\\boldsymbol W_N^T \in \mathbb{R}^{N \times N_r} W=W1,W2,...,WNT∈RN×Nr, H = H 1 , H 2 , ... , H N T ∈ R N × N r \boldsymbol H = \\boldsymbol H_1,\\boldsymbol H_2,\\dots,\\boldsymbol H_N^T \in \mathbb{R}^{N \times N_r} H=H1,H2,...,HNT∈RN×Nr

将 ∑ n ∈ N ( W n H n B n ) \sum_{n \in \mathcal{N}}(\boldsymbol W_n \boldsymbol H_nB_n) ∑n∈N(WnHnBn)写成矩阵形式
∑ n ∈ N ( W n H n B n ) = Tr ( W ⊤ diag ( B ) H ) \sum_{n \in \mathcal{N}} (\boldsymbol{W}_n \boldsymbol{H}_n B_n) =\text{Tr}(\boldsymbol{W}^\top \text{diag}(\boldsymbol{B}) \boldsymbol{H}) ∑n∈N(WnHnBn)=Tr(W⊤diag(B)H)

代码验证

matlab 复制代码
% 定义参数
N = 5; % 样本数
Nr = 3; % 每个向量的列维度

% 随机生成矩阵和向量
W = rand(N, Nr);  % N x Nr 矩阵
H = rand(N, Nr);  % N x Nr 矩阵
B = rand(N, 1);   % N x 1 列向量

% 逐项求和方式计算
sum_result = 0;
for n = 1:N
    sum_result = sum_result + W(n, :) * H(n, :)' * B(n);
end

% 矩阵形式计算
diag_B = diag(B); % 对角矩阵
trace_result = trace(W' * diag_B * H);

% 显示结果
disp('逐项求和结果:');
disp(sum_result);
disp('矩阵形式结果:');
disp(trace_result);

% 验证是否相等
if abs(sum_result - trace_result) < 1e-10
    disp('验证成功:两者相等!');
else
    disp('验证失败:两者不相等!');
end
相关推荐
乱七八糟的屋子7 小时前
MTL4 (Matrix Template Library) 超详细实战教程|C++高性能稠密/稀疏矩阵计算
c++·矩阵·稀疏矩阵·mtl4·matrixtemplate·c++线性代数·高性能数值计算
小趴蔡ha11 小时前
03 NumPy 入门:机器学习中的数组和矩阵
python·线性代数·机器学习·numpy
乱七八糟的屋子11 小时前
TooN 超详细入门实战教程|C++轻量极致精简矩阵库(机器人/SLAM专用)
矩阵·机器人·数值计算·slam·c++矩阵库·轻量线性代数·机器人数学
歪歪歪比巴卜1 天前
服务商批量接手客户跨平台社媒账号的技术落地:体检体系与重启架构
矩阵·架构·aigc
比卡超哥1 天前
Ctorch开发日志——矩阵乘法优化及数学原理
线性代数·矩阵
青山木1 天前
Hot 100 --- 搜索二维矩阵
java·算法·leetcode·矩阵
XUEYUAN52121 天前
跨境爬虫与矩阵运维:代理IP风控原理、节点差异与厂商技术调研
运维·爬虫·矩阵
A_cainiao_A1 天前
【ggml系列】【第四篇】ggml_graph_compute 多线程计算引擎与算子分发源码深度解析
开发语言·c++·矩阵
AI科技星2 天前
曲率‑挠率与 $\boldsymbol{\omega/c}$ 的关系、精算验证及其物理意义
c语言·开发语言·线性代数·算法·决策树·机器学习·ai科技星
粉色大象2 天前
线性代数入门:行列式与矩阵全解析
线性代数·矩阵