Syslab 中如何获得矩阵奇异值?
技术分享
发布于 2025-07-18 09:34:19
查看 1过去319天
针对上述问题,以下面代码为例:
运行下面代码,构造矩阵A:
using TyMath
rng = MT19937ar(1234)
A = rand(rng,4,3)

方法一:使用svd函数
1.使用svd函数计算矩阵A的"满"奇异值分解:
F = svd(A,full = true)
2.可以看到已经计算出矩阵A的SVD:

3.运行下面代码,从SVD对象F中提取出矩阵A的奇异值:
F.S
4.可以看到,已经获得了矩阵A的奇异值:

5.svd函数的用法:
函数库: TyMath
语法:
svd(A; full = false)
svd(A, B)
说明:
svd(A; full = true)计算A的"满"奇异值分解;svd(A,B)计算A和B的广义奇异值分解。
示例:
using TyMath
rng = MT19937ar(1234)
A = rand(rng,4,3)
F = svd(A,full = true)

方法二:使用svdvals函数
1.使用svdvals函数降序返回矩阵A的奇异值:
svdvals(A)
2.可以看到已经以降序排列方式返回了矩阵A的奇异值:

3.svdvals函数的用法:
函数库: TyMath
语法:
svdvals(A)
svdvals(A, B)
说明:
svdvals(A)按降序返回A的奇异值;svdvals(A, B)从A和B的广义奇异值分解中返回广义奇异值。
示例:
using TyMath
A = [1. 0. 0. 0. 2.; 0. 0. 3. 0. 0.; 0. 0. 0. 0. 0.; 0. 2. 0. 0. 0.]
svdvals(A)

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境