《c# 实现pp文件分享与传输系统》 一、 模型
儆厦霞叭1. 引言复习上一篇文章《最小二乘问题详解1线性最小二乘》中的知识对于一个线性问题模型f(x;θ)Aθ那么线性最小二乘问题可以表达为求一组待定值θ使得残差的平方和最小minθ∥Aθ?b∥2本质上是求解超定线性方程组Aθb具体的线性最小二乘解是θ?(ATA)?1ATb(1)2. 求解2.1 问题虽然线性最小二乘解已经给出但是并不意味着在实际的数值计算中就能按照式(1)来进行求解。一个典型的问题就是求逆矩阵在工程实践和数值计算中直接求解逆矩阵通常是一个性能消耗大且可能不精确的操作应该尽量避免。举例来说我们按照大学本科《线性代数》课程中的方法写程序来求解一个逆矩阵假设使用伴随矩阵法A?11det(A)?adj(A)其中det(A)是矩阵A的行列式。adj(A)是A的伴随矩阵。为了求解伴随矩阵adj(A)求代数余子式 (Cofactor)对于矩阵A中的每一个元素aij计算其代数余子式Cij。代数余子式Cij(?1)ij?MijMij是删去A的第i行和第j列后得到的子矩阵的行列式称为余子式。构造余子式矩阵将所有代数余子式Cij按照原来的位置排列形成一个新矩阵C称为余子式矩阵。转置将余子式矩阵C进行转置得到的矩阵就是伴随矩阵adj(A)。adj(A)CT代入公式将det(A)和adj(A)代入公式A?11det(A)?adj(A)即可。这里我们大概能估算使用伴随矩阵法求逆矩阵的理论复杂度是O(n!)这是一个阶乘级的增长算法效率非常低。《线性代数》中介绍的另外一种算法高斯消元法也只能达到O(n3)呈指数级增加。其实效率只是一方面的问题使用计算机求解的另外一个问题是舍入误差累积在计算机中浮点数运算存在固有的舍入误差求逆过程涉及大量的除法和减法运算这些误差会在计算过程中不断累积和传播。总而言之使用通解求解逆矩阵可能存在不精确且性能消耗大的问题。2.2 QR分解那么不使用逆矩阵怎么办呢我们需要注意的是最小二乘问题的本质是求解而不是求逆矩阵因此关键是要求解正规方程ATAθATb对矩阵A作QR分解AQ1R其中:Q1∈Rm×n列正交满足QT1Q1InR∈Rn×n是上三角矩阵如果A列满秩则R的对角元均非零可逆。那么把AQ1R代入正规方程得到(Q1R)T(Q1R)x(Q1R)Tb左边整理因为QT1Q1InRTQT1Q1RxRTRx右边为RTQT1b因此正规方程等价于RTRxRT(QT1b)若R可逆即A满秩rank(A)n则RT也可逆。左右两边左乘(RT)?1得到RxQT1b.令cQ?1b这是一个长度为n的向量于是我们得到一个简单的上三角线性系统Rxc,cQT1b这就是QR方法把正规方程化简得到的核心结果只需解上三角方程RxQT1b。以上只是对A列满秩的情况做了推导如果A列满秩那么QR分解可以表示为xR?1Q?1b如果A列不满秩R奇异需要使用列主元QR方法对RTRxRT(QT1b)进行求解或者干脆使用下面要介绍的SVD分解奇异值分解法。2.3 SVD分解另外一种求解的方法是SVD分解。对任意矩阵A存在奇异值分解AUΣVT其中:U∈Rm×m为正交列为左奇异向量V∈Rn×n为正交列为右奇异向量Σ∈Rm×n为“对角块”矩阵通常写成Σ[Σr000]其中Σrdiag(σ1,…,σr)(σ1≥σ2≥?≥σr0)rrank(A)。将SVD代入正规方程先计算A?AATA(UΣVT)T(UΣVT)VΣTUTUΣVTV(ΣTΣ)VT.注意UTUI。而ΣTΣ是n×n的对角块矩阵其非零对角元就是σ2i(i1..r)其余为零。同样的计算ATbATbVΣTUTb.于是正规方程变为V(ΣTΣ)VTxVΣTUTb.两边左乘VT因为V正交VTVI得到(ΣTΣ)(VTx)ΣT(UTb)把yVTx与cUTb代入得到更简单的对角方程(ΣTΣ)yΣTc接下来按奇异值分块展开对角方程先写出Σ相关的形状Σ[Σr000],Σ?Σ[Σ2r000]对y和c也做相应分块y[y1y2],c[c1c2]其中y1,c1∈Rr对应非零奇异值y2,c2对应奇异值为0的部分维度n?r,代入得到分块方程:[Σ2r000][y1y2][Σr000][c1c2]即等价于两组方程Σ2ry1Σrc1,00?c2(无约束自由分量)由于Σr为对角且可逆第一式等价于Σry1c1?y1Σ?1rc1.而y2对应零奇异值的分量在正规方程中不受约束——这反映了在列秩不足时普通最小二乘解不是唯一的可以在零空间方向任意加解。为得到最小范数解惯常的选择取y20。最后回到x的求解对于y有y[Σ?1rc10]将c1与cU?b关系代回y[Σ?1r000]UTb由于yVTx于是xVyV[Σ?1r000]UTb定义Σ为将非零奇异值取倒数后转置得到的伪逆矩阵对角块为Σ?1r其余为0)则xVΣUTb这就是 最小二乘的 Moore–Penrose 伪逆解若A列满秩则为唯一最小二乘解由于那么ΣΣ?1SVD求解公式退化为常见的xVΣ?1UTb若秩亏它给出 在所有最小二乘解中范数最小的那个minimum-norm solution。2.4 比较从以上论述可以看到SVD分解稳定且能处理秩亏的情况但比QR分解慢复杂度高通常O(mn2)QR分解在列满秩、条件数不是太差时更快若需要判定秩或求最小范数解SVD是首选。3. 补充在最后补充一些基础知识也是笔者很感兴趣的一点那就是为什么一个矩阵A可以进行QR分解或者SVD分解呢3.1 QR分解QR分解其实非常好理解它的本质其实就是大学本科《线性代数》课程中提到的施密特Gram–Schmidt正交化。我们先复习一下施密特正交化相关的知识。设有一组线性无关向量a1,a2,…,an∈Rm我们想把它们变成一组正交再归一化后变成标准正交的向量q1,q2,…,qn。具体步骤如下取第一个向量归一化q1a1|a1|对第 2 个向量先减去在q1上的投影~q2a2?(qT1a2)q1然后归一化q2~q2|~q2|对第 3 个向量减去它在前两个正交向量上的投影~q3a3?(qT1a3)q1?(qT2a3)q2然后归一化q3~q3|~q3|一般地对第j个向量~qjaj?j?1∑i1(qTiaj)qi,qj~qj|~qj|这样得到的qi就是标准正交基且每个qj只用到了前j?1个。现在把矩阵A看成由列向量组成A[a1,a2,…,an]∈Rm×n.把施密特正交化写成矩阵形式我们得到一组正交向量Q1[q1,q2,…,qn]∈Rm×n,QT1Q1In.同时原向量可以写成ajj∑i1rijqi其中rijqTiaj把这些关系拼成矩阵形式AQ1R其中R(rij)是n×n上三角矩阵因为第j列只用到前j个qi。Q1的列正交所以QT1Q1I。3.2 SVD分解SVD分解其实也非常有意思同样也可以顺着《线性代数》中基础知识来进行推导。首先复习一下特征值和特征向量。对于一个方阵A∈Rn×n如果存在一个非零向量v∈Rn和一个实数λ使得Avλv那么λ称为 特征值eigenvaluev称为对应于λ的 特征向量eigenvector接下来复习一下什么叫做对角化。如果一个n×n矩阵A可以写成APDP?1其中D是一个对角矩阵只有对角线上有元素P是一个可逆矩阵我们就说A是 可对角化的。而且通常D的对角元素是A的特征值Ddiag(λ1,…,λn)P的列是对应的特征向量

相关新闻

自己动手开发编器(八)用Linq编写解析器组合子

自己动手开发编器(八)用Linq编写解析器组合子

琢榔谷苟2.1 DeepSeek V3.2 自问世以来,Transformer架构始终是大语言模型(LLM)发展中无可争议的核心引擎。其关键创新——自注意力机制,赋予模型捕捉海量数据序列中长距离依赖与上下文细微差别的卓越能力。然而这种强大能力伴随着…

2026/7/6 19:19:34 阅读更多 →
Python安装教程(Windows详细版)

Python安装教程(Windows详细版)

1. 下载Python进入Python官网下载:https://www.python.org选择 Windows 版本下载。⸻2. 安装Python安装时需要注意:✔ 勾选 Add Python to PATH然后点击 Install。⸻3. 验证安装打开CMD输入:python --version如果显示版本号说明安装成功。

2026/5/17 9:25:10 阅读更多 →
飞思卡尔MC9S12XEP100电动汽车整车控制器VCU方案:底层驱动+控制策略,含CAN通讯...

飞思卡尔MC9S12XEP100电动汽车整车控制器VCU方案:底层驱动+控制策略,含CAN通讯...

电动汽车整车控制器 VCU 电动汽车整车控制含canbootloader 基于飞思卡尔MC9S12XEP100整车控制器 VCU方案 1:C源文件,底层驱动控制策略 2:程序变量表格,Execl文件;can 通讯发送接收数据对应; 3:D…

2026/7/7 14:27:51 阅读更多 →

最新新闻

【总结】Nginx 反代 Docker 容器:容器重建后刷新 502,一行配置根治

【总结】Nginx 反代 Docker 容器:容器重建后刷新 502,一行配置根治

Nginx 反代 Docker 容器:容器重建后刷新 502,一行配置根治 摘要:本文深入分析了Nginx反向代理Docker容器时,容器重建后出现502 Bad Gateway错误的根本原因——Nginx对静态upstream主机名只在启动时进行一次DNS解析并永久缓存IP。当Docker容器重建获得新IP后,Nginx仍使用旧…

2026/7/8 2:29:27 阅读更多 →
玩转Rust高级应用 怎么理解在标准库中,有一个std::intrinsics模块,它里面包含了一系列的编译器内置函数

玩转Rust高级应用 怎么理解在标准库中,有一个std::intrinsics模块,它里面包含了一系列的编译器内置函数

内置函数在标准库中,有一个std::intrinsics模块,它里面包含了一系列的编译器内置函 数。这些函数都有一个extern"rust-intrinsic"修饰,它们看起来都像一种特殊的 FFI 外部函数,大家打开标准库的源代码src/core/intrinsi…

2026/7/8 2:29:27 阅读更多 →
学乒乓球不踩坑的几大核心:专业、有资质、教练带训有成绩、场地保障、多部门背书、持久老牌

学乒乓球不踩坑的几大核心:专业、有资质、教练带训有成绩、场地保障、多部门背书、持久老牌

在全民运动的热潮下,乒乓球作为国球,深受大众尤其是青少年的喜爱。然而,选择一家靠谱的乒乓球培训机构并非易事,一不小心就可能踩坑。今天,就以重庆市巴南区来奥莱体育培训有限公司旗下的理想乒乓为例,给大…

2026/7/8 2:29:27 阅读更多 →
二本软件工程专业好就业吗?毕业后能做哪些岗位

二本软件工程专业好就业吗?毕业后能做哪些岗位

最近 2026 届找工作,很多二本软件工程同学最焦虑的不是学不会代码,而是投了 30 份简历 只有 3 个回复。 我自己也是从普通本科一路找实习、改简历、刷项目过来的,身边同学有去外包的,也有进银行科技岗、制造业数字化部门的。 今天…

2026/7/8 2:27:27 阅读更多 →
2026年,揭秘苦荞米背后的绿色生产故事

2026年,揭秘苦荞米背后的绿色生产故事

引言在当今社会,随着人们健康意识的不断提高,天然、健康的食品越来越受到消费者的青睐。苦荞米作为其中的一种,因其富含芦丁(维生素P)、膳食纤维及多种微量元素而备受关注。今天,我们将深入探讨苦荞米背后的…

2026/7/8 2:27:27 阅读更多 →
第五章第二节:循环结构(while/do-while/for)

第五章第二节:循环结构(while/do-while/for)

第二节:循环结构 ——while、do-while 和 for 上一节我们学习了分支结构 —— 程序会 "思考" 了,能根据条件做选择。 但如果我想让程序重复做一件事呢?比如: 打印 100 遍 "我爱编程"计算 1 加到 100 的和输…

2026/7/8 2:25:27 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻