Syslab中如何创建具有预分配奇异值的随机矩阵
技术分享
发布于 2024-09-11 20:36:52
查看 3过去629天
一、问题现象
Syslab中如何创建具有预分配奇异值的随机矩阵?
二、解决方法 / 步骤
针对上述问题,可以使用randsvd函数:
1.运行下面代码,固定随机数种子,指定矩阵大小n为5,矩阵条件数kappa为-50,奇异值分类类型:
#mode为2;
using TyMath
rng = MT19937ar(1)
n = 5
kappa = -50
mode = 2

2.使用randsvd函数生成随机矩阵:

3.验证S的奇异值:
svdvals(S)
4.可以看到S有一个等于1/abs(kappa)的小奇异值:

5. randsvd函数的用法:
函数库: TyMath
语法:
A = randsvd([T],[rng],n,kappa=sqrt(1/eps()),mode=3,kl=nothing,ku=nothing)
A = randsvd([T],[rng],n,kappa=sqrt(1/eps()),mode=3,kl=nothing,ku=nothing,method=false)
说明:
randsvd函数返回n阶(多对角)条带随机矩阵,条件数为cond(A) = abs(kappa)且必须大于或等于1。
示例:
using TyMath
rng = MT19937ar(1)
n = 5
S = TestArrays.randsvd(rng,n)

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