You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB pascal(n,1)的R等价实现:如何匹配列符号?

解决R中生成与MATLAB pascal(n,1) 符号匹配的下三角Cholesky因子问题

要在R中得到和MATLAB pascal(4,1) 完全一致的下三角矩阵,关键是调整Cholesky分解结果的列符号——MATLAB的实现对偶数索引的列使用了负号,而R的chol默认输出正符号列。

具体步骤:

  1. 首先加载pracma包(R基础库没有内置帕斯卡矩阵生成函数):
    library(pracma)
    
  2. 生成原始下三角Cholesky因子:
    L <- t(chol(pascal(4)))
    
  3. 创建符号调整对角矩阵,对偶数列应用负号:
    sign_adjust <- diag(rep(c(1, -1), length.out = ncol(L)))
    
  4. 调整列符号得到目标矩阵:
    target_matrix <- L %*% sign_adjust
    

运行上述代码后,target_matrix的输出将与MATLAB pascal(4,1) 完全一致:

[,1] [,2] [,3] [,4]
[1,]    1    0    0    0
[2,]    1   -1    0    0
[3,]    1   -2    1    0
[4,]    1   -3    3   -1

原理说明:

Cholesky分解的下三角因子列符号并非唯一,MATLAB的pascal(n,1)选择了交替列符号(奇数列为正,偶数列为负)的规范,而R的chol函数默认输出所有列符号为正的结果。通过构造对角矩阵对偶数列取反,就能对齐MATLAB的输出格式。

内容的提问来源于stack exchange,提问作者Dylan Hettinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:07:06