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

怎么做免费网站被收录wordpress+一页一屏

怎么做免费网站被收录,wordpress+一页一屏,网络营销名词解释电子商务,wordpress商城视频教程2025-04-26-利用奇异值重构矩阵-美团 题目内容 在一家致力于图像处理的科技公司,你被分配到一个新项目,目标是开发一种图像压缩算法,以减少存储空间并加速传输。团队决定使用奇异值分解( S V D SVD SVD)对图像进行降…

2025-04-26-利用奇异值重构矩阵-美团

题目内容

在一家致力于图像处理的科技公司,你被分配到一个新项目,目标是开发一种图像压缩算法,以减少存储空间并加速传输。团队决定使用奇异值分解( S V D SVD SVD)对图像进行降维处理,以达到压缩的目的。

现在,你需要编写一个程序,对给定的灰度图像矩阵进行奇异值分解,并重构出近似的低秩矩阵。

请你帮助团队实现一个使用 N u m P y NumPy NumPy库的程序,对给定的矩阵进行奇异值分解,共利用前 ( k ) (k) (k)个奇异值重构矩阵。具体要求如下:

  1. 读取输入矩阵,为一个二维列表,表示灰度图像的像素值矩阵。
  2. 读取整数 ( k ) (k) (k),表示使用前 ( k ) (k) (k)个奇异值进行矩阵重构。
  3. 对矩阵进行奇异值分解( S V D SVD SVD),获取左奇异矩阵 ( U ) (U) (U)、奇异值对角矩阵 ( Σ ) (\Sigma) (Σ)和右奇异矩阵 ( V T ) (V^T) (VT)
  4. 利用前 ( k ) (k) (k)个奇异值和对应的奇异向量重构矩阵。
  5. 输出重构后的矩阵,每个元素保留两位小数(使用 r o u n d ( x , 2 ) round(x, 2) round(x,2))。

输入描述

  • 第一行包含两个整数 ( m ) (m) (m) ( n ) (n) (n)表示矩阵的行数和列数。
  • 接下来的 ( m ) (m) (m)行,每行包含 ( n ) (n) (n)个整数,表示矩阵的元素,元素之间用空格分隔。
  • 最后一行包含一个整数 ( k ) (k) (k),表示用前 ( k ) (k) (k)个奇异值进行矩阵重构。

输出描述

输出 ( m ) (m) (m)行,每行包含 ( n ) (n) (n)个浮点数,表示重构后的矩阵元素,元素之间用空格分隔,结果均保留两位小数,使用 r o u n d ( x , 2 ) round(x, 2) round(x,2)

补充说明

  • 奇异值分解( S V D SVD SVD),对于一个矩阵 ( A ) (A) (A) 其奇异值分解为:
    A = U Σ V T A = U \Sigma V^T A=UΣVT
    其中:4 5

    • ( U ) (U) (U) ( m × m ) (m \times m) (m×m) 的正交矩阵,其列为 ( A A T ) (AA^T) (AAT) 的特征向量。
    • ( Σ ) (\Sigma) (Σ) ( m × n ) (m \times n) (m×n) 的对角矩阵,对角线上为非负的奇异值,按降序排列。
    • ( V T ) (V^T) (VT) ( n × n ) (n \times n) (n×n) 的正交矩阵的转置,其列为 ( A T A ) (A^TA) (ATA) 的特征向量。
  • 矩阵重构

    使用前 ( k ) (k) (k) 个奇异值和对应的奇异向量,可以近似地重构原矩阵:
    A k = U k Σ k V k T A_k = U_k \Sigma_k V_k^T Ak=UkΣkVkT
    其中:

    • ( U k ) (U_k) (Uk) ( U ) (U) (U) 的前 ( k ) (k) (k) 列。
    • ( Σ k ) (\Sigma_k) (Σk) ( Σ ) (\Sigma) (Σ) 中前 ( k ) (k) (k) 个奇异值构成的对角矩阵。
    • ( V k T ) (V_k^T) (VkT) ( V T ) (V^T) (VT) 的前 ( k ) (k) (k) 行。

样例

输入:
4 5
52 55 61 66 70
63 59 55 90 109
85 104 117 123 119
105 122 145 160 159
2输出:
47.3 54.1 61.41 69.2 70.35
63,02 58.35 55.4 90.03 109.11
84.08 101.15 118.72 123.8 119.52
107.77 125.0 143.24 157.95 158.38
import numpy as np
n,m = map(int, input().split())
mat = []
for _ in range(n):mat.append(list(map(int, input().split())))
k = int(input())
A = np.array(mat)
A
array([[ 52,  55,  61,  66,  70],[ 63,  59,  55,  90, 109],[ 85, 104, 117, 123, 119],[105, 122, 145, 160, 159]])
eig_values, U = np.linalg.eig(A@(A.T))
U
array([[ 0.30050372, -0.02694092,  0.69020128,  0.6577187 ],[ 0.37778194,  0.90391529,  0.05467   , -0.19294855],[ 0.54241183, -0.38739585,  0.36703081, -0.64884685],[ 0.68758106, -0.17926459, -0.62122602,  0.33041599]])
eig_values = sorted(np.sqrt(eig_values),reverse=True)
eig_values 
[454.71798467974327, 34.01883573921087, 7.740636522193636, 3.369832336013565]
_, V_t = np.linalg.eig((A.T)@A)
V_t = V_t.T
V_t
array([[ 0.34686878,  0.39389812,  0.44482554,  0.50704668,  0.51919189],[-0.11153546,  0.30307318,  0.68334892, -0.09530755, -0.64780955],[-0.68515863, -0.46097385,  0.26174063,  0.48804619,  0.1065998 ],[ 0.41943452, -0.20543104, -0.25978011,  0.65168322, -0.53823419],[ 0.47103526, -0.70589809,  0.44628536, -0.26634569,  0.09860531]])
U_k = U[:, :k]
sigma = np.diag(eig_values[:k])
V_tk = V_t[:k, :]
A_k = np.round(U_k@sigma@V_tk, 2)
A_k
array([[ 47.5 ,  53.55,  60.16,  69.37,  71.54],[ 56.16,  76.99,  97.43,  84.17,  69.27],[ 87.02,  93.16, 100.71, 126.32, 136.59],[109.13, 121.31, 134.91, 159.11, 166.28]])

基础概念

求奇异值

奇异值可以通过以下步骤计算:

  1. 计算矩阵 A A A 的转置 A T A^T AT
  2. 计算 A T A A^TA ATA A A T AA^T AAT
  3. 求解 A T A A^TA ATA A A T AA^T AAT 的特征值。
  4. 奇异值是 A T A A^TA ATA A A T AA^T AAT 的特征值的平方根。

numpy求矩阵特征值

import numpy as np# 定义一个矩阵
A = np.array([[1, 2], [3, 4]])# 使用 numpy.linalg.eig 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)# 打印结果
print("矩阵A:")
print(A)
print("\n特征值:")
print(eigenvalues)
print("\n特征向量:")
print(eigenvectors)
矩阵A:
[[1 2][3 4]]特征值:
[-0.37228132  5.37228132]特征向量:
[[-0.82456484 -0.41597356][ 0.56576746 -0.90937671]]
eigenvalues = np.linalg.eigvals(A)
print("特征值:", eigenvalues)
特征值: [-0.37228132  5.37228132]

numpy求奇异值分解

直接用这个算出的答案不太一样

import numpy as np# 创建一个示例矩阵
A = np.array([[1, 2], [3, 4], [5, 6]])# 进行奇异值分解
U, S, Vh = np.linalg.svd(A, full_matrices=True, compute_uv=True)print("U 矩阵 (左奇异向量):")
print(U)
print("\n奇异值 (S):")
print(S)
print("\nVh 矩阵 (右奇异向量的转置):")
print(Vh)
U 矩阵 (左奇异向量):
[[-0.2298477   0.88346102  0.40824829][-0.52474482  0.24078249 -0.81649658][-0.81964194 -0.40189603  0.40824829]]奇异值 (S):
[9.52551809 0.51430058]Vh 矩阵 (右奇异向量的转置):
[[-0.61962948 -0.78489445][-0.78489445  0.61962948]]
http://www.dtcms.com/wzjs/833949.html

相关文章:

  • 网站正在建设中mp4ppth5怎么制作
  • 哪个餐饮店微网站做的有特色中德生态园网站定制
  • 临海建设规划局网站建设校园门户网站方案
  • vue做的pc线上网站深圳设计网站培训学校
  • 做网站程序先从哪一步开始网易企业邮箱大师登录
  • 庐江有做网站的吗连锁销售网站制作
  • 许昌北京网站建设网页程序设计软件
  • 云南做公司网站多少钱网络服务提供者是不是网络运营者
  • 热转印 东莞网站建设wordpress 后台加速
  • 电子商务网站建设pdfwordpress 504错误
  • 专做正品 网站wordpress侧边栏html
  • 国际公司和跨国公司网站优化分析
  • 在dw里网站页面列表怎么做vs做网站视频教程
  • 东莞软件网站推广南宁比较有好的网站制作公司
  • 2015帝国cms网站什么网站免费做简历模板
  • 网站制作那家便宜建什么网站好
  • 网站seo 优帮云网站标题就一个关键词
  • wordpress二次元极简主题衡阳网站优化
  • 计算机网站建设与管理是什么wordpress字体风格
  • 青岛物流公司网站建设食品 技术支持 东莞网站建设
  • 网易云wordpress代码专门做网站搜索优化的公司
  • 什么网站可以做家禽交易炫酷的网站开发
  • 北京怎么做网站推广客源引流推广
  • 专业电子网站建设图片在线处理工具
  • 医药公司网站建设备案页面升级紧急通知
  • 商业网站和企业网站的区别emlog怎么转换到WordPress
  • 广东网站建设公司有哪些西餐厅网站模板
  • 龙武工会网站怎么做微信开发时间
  • 电子商务网站建设结构分析怎么制作页面边框
  • 便利的广州微网站建设邯郸网站设计公司排名