当前位置: 首页 > news >正文

实验仪器销信应做何网站亚马逊跨境电商个人开店流程

实验仪器销信应做何网站,亚马逊跨境电商个人开店流程,无锡鑫融建设网站,两栏式网站文章目录基本原理scipy实现测试基本原理 当AAA是方阵时,可以很容易地进行特征分解:AWΣW−1AW\Sigma W^{-1}AWΣW−1,其中Σ\SigmaΣ是AAA的特征值组成的对角矩阵。如果WWW由标准正交基组成,则W−1WTW^{-1}W^TW−1WT,…

文章目录

    • 基本原理
    • scipy实现
    • 测试

基本原理

AAA是方阵时,可以很容易地进行特征分解:A=WΣW−1A=W\Sigma W^{-1}A=WΣW1,其中Σ\SigmaΣAAA的特征值组成的对角矩阵。如果WWW由标准正交基组成,则W−1=WTW^{-1}=W^TW1=WT,特征分解可进一步写成WTΣWW^T\Sigma WWTΣW

然而,当AAA不是方阵时,情况大不一样了,但仍然可以将AAA表示成A=UΣVTA=U\Sigma V^TA=UΣVT的形式,其中Σ\SigmaΣ也是对角矩阵,对角线上的每个元素被称作奇异值。

奇异值的求解过程和特征值息息相关,因为把AAA变成方阵很简单,只要乘以转置就行。故令L=AATL=AA^TL=AATR=ATAR=A^TAR=ATA,则L,RL, RL,R都可以求特征值λi\lambda_iλi和特征向量,其中LLL的特征向量为AAA的左奇异向量,RRR的特征向量为右奇异向量。对应的奇异值σi=λi\sigma_i=\sqrt{\lambda_i}σi=λi

scipy实现

scipy.sparse.linalg中实现了稀疏矩阵奇异值分解算法,其参数列表如下

svds(A, k=6, ncv=None, tol=0, which='LM', v0=None, maxiter=None, return_singular_vectors=True, solver='arpack', random_state=None, options=None)

各参数含义如下

  • A 待分解矩阵
  • k 奇异值个数,必须在[k,kmax⁡][k, k_{\max}][k,kmax]之间, 当solver='propack'时,kmax=min⁡(M,N)k_{max}=\min(M,N)kmax=min(M,N),否则kmax=min⁡(M,N)−1k_{max}=\min(M,N)-1kmax=min(M,N)1
  • ncv solver='arpack'时,此为Lanczos向量个数,否则此项忽略。
  • tol 奇异值容忍度,为0表示达到机器的精度
  • which'LM'时,选取最大的奇异值;'SM'则选取最小奇异值
  • v0 迭代初值
  • maxiter 迭代次数
  • return_singular_vectors 可选4个值
    • True 返回奇异向量
    • False 不返回奇异向量
    • "u": 如果M <= N,只计算左奇异向量
    • "vh": 如果M > N,只计算右奇异向量;如果 solver='propack',这个选项将忽略矩阵维度
  • solver 可选'arpack', 'propack', 'lobpcg',但比较吊诡的是,似乎并没有关于这三者区别的文档
  • random_state 设置随机数状态
  • optionsdict 求解器参数

其返回值有三

  • u 即UUU
  • s 即奇异值数组,也就是Σ\SigmaΣ的对角线
  • vh 即VTV^TVT

测试

下面对奇异值分解做个测试

import numpy as np
from scipy.linalg import svd
from scipy.sparse import csc_array
from scipy.sparse.linalg import svds
np.random.seed(42)  # 设置随机数状态
mat = np.random.rand(500,800)
mat[mat<0.9] = 0
csc = csc_array(mat)
u1, s1, vh1 = svds(csc, k=10)
u2, s2, vh2 = svd(mat)

结果是svds得到的结果和svd的前十个值完全相同,只是排序不一样,但也无关紧要。

下面测试一下二者的时间,由于在Windows下用不了propack,所以svds计算的奇异值数最多只能是M−1M-1M1,也就是499,所以只能测试这个和svd返回500个奇异值的结果相比对,结果如下

>>> from timeit import timeit
>>> timeit(lambda : svds(csc, k=499), number=10)
3.651770199999987
>>> timeit(lambda : svd(mat), number=10)
0.47201400000005833

可见,稀疏矩阵在计算上的确是比不上规整的矩阵。

http://www.yayakq.cn/news/363211/

相关文章:

  • 电商网站怎样做网站设计制作过程
  • 自学做网站要多久深圳专业网络推广
  • 软件行业有哪些岗位网站关键词优化到首页难度
  • 淄博网站制作设计龙岩做网站哪家好
  • 昆明网络公司网站企业自助网站建设
  • 藁城手机网站建设凡科网站建站教程
  • led企业网站策划施工企业主要负责人包括哪些
  • 中国农村建设投资有限公司网站除了wordpress还有什么可以建站
  • 网站建设备案计划书wordpress 汉化 插件
  • 网站开发成本核算及账务处理.net做的学校网站
  • 网站开发用的开源系统做网站电话说辞
  • 志丹网站建设平面广告图片
  • 企业网站宣传册应该哪个部门做wordpress persona
  • 已有域名怎么做网站学校网站建设调查问卷
  • 常州建设局网站seo外包公司费用
  • 网站模板 安全吗做品牌断码的网站
  • 大的网站建设公司四川省建设人才网
  • 盐城大丰建设局网站爱客crm多少钱
  • 上海教育网站官网网站开发进度计划是什么
  • 网站seo设计方案案例有哪些中文域名网站有哪些
  • 网站自动推广软件免费海北公司网站建设多少钱
  • 怎么查看一个网站是哪家公司做的动漫设计与制作学费
  • 新类型网站网站搭建语言
  • 陕西建设集团韩城公司网站购物建设网站费用
  • 做网站需要什么服务器小型网站有哪些
  • 做国际网站有用吗怎么在百度做免费推广
  • 网站添加模块新注册的公司在哪里可以查到
  • 昆明建设局网站号码三层别墅设计图片大全 效果图
  • 门户网站建设 报告企业网站建设推广公司
  • 在北京做家教的网站微信订阅号做微网站