专栏
标签
Syslab 中如何获得矩阵奇异值?
技术分享
发布于 2025-07-18 09:34:19
查看 1过去319天

针对上述问题,以下面代码为例:

运行下面代码,构造矩阵A:

using TyMath

rng = MT19937ar(1234)

A = rand(rng,4,3)

image.png

方法一:使用svd函数

1.使用svd函数计算矩阵A的"满"奇异值分解:

F = svd(A,full = true)

2.可以看到已经计算出矩阵A的SVD:
image.png

3.运行下面代码,从SVD对象F中提取出矩阵A的奇异值:

F.S

4.可以看到,已经获得了矩阵A的奇异值:
image.png

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)

image.png

方法二:使用svdvals函数

1.使用svdvals函数降序返回矩阵A的奇异值:

svdvals(A)

2.可以看到已经以降序排列方式返回了矩阵A的奇异值:
image.png

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)

image.png

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

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天