[数学]线性方程组的解、SVD

本系列文章由 youngpan1101 出品,转载请注明出处。
文章链接: http://blog.csdn.net/youngpan1101/article/details/54574130
作者:宋洋鹏(youngpan1101)
邮箱: yangpeng_song@163.com


齐次线性方程组

ref_1

  1. 设有齐次线性方程组:

    a11x1+a12x2+...+a1nxna21x1+a22x2+...+a2nxn.........................am1x1+am2x2+...+amnxn=0=0....=0(1)


    A=a11a21...am1a12a22...am2............a1na2n...amnm×n,x=x1x2...xnn×1

    则方程组 (1) 可以写成向量方程 Ax=0

  2. 解的性质
    (1) 若 x=ξ1x=ξ2 Ax=0 的解,则 x=ξ1+ξ2 也是 Ax=0 的解。
    (2) 若 x=ξ1 Ax=0 的解, k 为是实数,则 x=kξ1 也是 Ax=0 的解。

    可知,方程组的全体解向量所组成的集合,对于加法和数乘运算时封闭的,因此构成一个向量空间,称此向量空间为齐次线性方程组 Ax=0 解空间

  3. 基础解系的定义
    η1,η2,...,ηt 称为齐次线性方程组 Ax=0 的基础解系,则有
    (1) η1,η2,...,ηt Ax=0 的一组线性无关的解;
    (2) Ax=0 的任一解都可由 η1,η2,...,ηt 线性表示。
    如果 η1,η2,...,ηt 为齐次线性方程组 Ax=0 的一组基础解系,那么, Ax=0 的通解可以表示为 x=k1η1+k2η2+...+ktηt ,其中 k1,k2,...,kt 是任意常数。

  4. 定理
    n 元齐次线性方程组 Am×nx=0 的全体解所构成的集合 S 是一个向量空间,当系数矩阵 A 的秩 rank(Am×n)=r 时,解空间 S 的维数为 nr

    • r=rank(A)=n ,该解空间维数为 0,也就是说该解空间只含有零向量。
    • r=rank(A)<n ,齐次线性方程组解空间维数 =nrank(A)>0 ,该方程组有非零解,而且不唯一。此时,方程组的解可以表示为 x=k1η1+k2η2+...+knrηnr

非齐次线性方程组

ref_1

  1. 设有非齐次线性方程组:

    a11x1+a12x2++a1nxna21x1+a22x2++a2nxn.........................am1x1+am2x2+...+amnxn=b1=b2....=bm(2)


    A=a11a21...am1a12a22...am2............a1na2n...amnm×n,x=x1x2...xnn×1,b=b1b2...bmm×1

    则方程组 (2) 可以写成向量方程 Ax=b , 向量 b 中元素不全为 0 。

  2. 方程组的解
    令矩阵 A 的增广矩阵为

    A˜=a11a21am1a12a22am2a1na2namnb1b2bmm×(n+1)

    • rank(A)<rank(A˜) , 方程组 (2) 无解
    • rank(A)=rank(A˜)=n , 方程组 (2) 有唯一解
    • rank(A)=rank(A˜)<n , 方程组 (2) 有无穷解
    • rank(A)>rank(A˜) 不可能出现, 因为增广矩阵的秩大于等于系数矩阵的秩(矩阵加入一列,其秩只能增大,不可能变小)

奇异值分解:SVD

reference:
- 矩阵奇异值分解
- 矩阵分解——SVD分解
- [数学]齐次线性方程组的解、SVD、最小二乘法
- SVD解线性方程组——秘密大起底
- 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用
- SVD分解的并行实现
- 并行计算奇异值分解–Jacobi旋转

  • 奇异值分解(SVD)是计算机视觉领域中一种使用最为广泛的矩阵分解技术
  • 奇异值和特征值的重要意义相似,都是为了提取出矩阵的主要特征
  1. 奇异值的定义
    ACm×nr ,且 AHA 的特征值为 ( AH A 的复共轭转置矩阵)

    λ1λ2...λr>λr+1==λm=0

    σi=λi(i=1,2,...,r) 为矩阵 A 的正奇异值,简称 奇异值
    注:A 的正奇异值个数 r=rank(A) ,并且 A AH 有相同的奇异值。
    存在 m 阶酉矩阵 U n 阶酉矩阵 V,使得

    A=UDVH=U[Σ0(mr)×r0r×(nr)0(mr)×(nr)]VHΣ=σ1σ2σr

    上式中 D 的对角元叫做 A 的奇异值, U 中的列向量称为 A 的左奇异向量, V 中的列向量称为 A 的右奇异向量。

  2. SVD 解线性方程组
    (1) 解非齐次线性方程组 ( Ax=b )
    A 的行数大于列数时,需要求解最小二乘解,即使得 ||Axb||2 最小的 x ,由2-范数具有酉不变性,有:

    ||Axb||2=U[Σ0(mr)×r0r×(nr)0(mr)×(nr)]VHxb=[Σ0(mr)×r0r×(nr)0(mr)×(nr)]VHxUHb

    所以 Ax=b 的最小二乘解即是 [Σ0(mr)×r0r×(nr)0(mr)×(nr)]VHx=UHb 的最小二乘解。
    y=VHx c=UHb [Σ0(mr)×r0r×(nr)0(mr)×(nr)]y=c 表达成矩阵的形式如下:

    σ1σ20(mr)×rσr0r×(nr)0(mr)×(nr)m×ny1y2yrY(nr)×1n×1=c1c2crC(mr)×1m×1

    Dy=c 的最小二乘解为 y=[c1σ1,c2σ2,,crσr,0,,0nr]T ,原方程组的最小二乘解为 x=VHy
    (2) 解齐次线性方程组 ( Ax=0 )
    相似的情况,把问题转化为 min(||Ax||2) 的非线性优化问题, x=0 是该方程的一个特解,为了避免这种情况(实际应用中 x=0 往往不是我们想要的),这里增加一个约束,比如 ||x||2=1 ,这样,问题就变为:
    min(||Ax||2)||x||2=1


    ||Ax||=||UDVHx||=||DVHx||2

    y=VHx ,问题变为
    min(||Dy||),||y||=1

    因为对角阵 D 的对角元素按递减的顺序排列,所以最优解在 y=[0,0,,1]T 处取得,又因为 x=Vy ,所以最优解是 V <script type="math/tex" id="MathJax-Element-95">V</script> 的最小奇异值对应的列向量。

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 超定线性方程组是指方程的个数大于未知数个数的线性方程组, MatLab是一个运算速度快、功能丰富的数学计算软件,可以用它求超定线性方程组。具体步骤如下: 1、构造矩阵 根据超定线性方程组的系数矩阵和常数列,构造增广矩阵A=[A,B],其中A是系数矩阵,B是常数列,包括所有方程的系数和常数。 2、求矩阵 利用MatLab提供的“左除”运算符‘\’或者是矩阵求逆函数‘inv’,求出矩阵A的秩rank、矩阵A的伪逆pinv。 如果rank(A)小于列数,那么该方程组没有唯一,需要使用伪逆来求。使用伪逆的形式为x=pinv(A)*B。 如果rank(A)等于列数,那么该方程组有唯一,使用左除的形式直接求:x=A\B。 3、输出结果 将求得到的x向量输出到MatLab的命令窗口中。 以上就是利用MatLab求超定线性方程组的步骤。总的来说,MatLab求超定线性方程组的过程比较简单,只需要在MatLab中输入矩阵,调用相应的函数,即可求出原始方程组的。 ### 回答2: 超定线性方程组是指线性方程组的方程数超过了未知数个数,不唯一,有时甚至无决超定线性方程组的主要方法是最小二乘法,即使方程组的误差最小化。 Matlab是一个非常流行的数值计算软件,其中包含了求超定线性方程组的函数,如“lsqnonneg”、“pinv”等。首先,使用“lsqnonneg”函数可以求非负最小二乘问题,即决Ax=b的情况,其中不允许出现负数。其用法为:x = lsqnonneg(A,b),其中A是系数矩阵,b是常数矩阵,x是未知数矩阵。 如果方程组有多个,使用“pinv”函数可以求伪逆,即最小二乘。其用法为:x = pinv(A)*b,其中A是系数矩阵,b是常数矩阵,x是未知数矩阵。 除了这两个函数,Matlab中还有其他的函数用于求超定线性方程组,如qr分svd等,具体用法可以通过Matlab的帮助文档查找。 总之,使用Matlab求超定线性方程组可以大大简化计算过程,提高精度和效率。 ### 回答3: 超定线性方程组的求是一种常见的数学问题,而matlab作为一款功能强大的科学计算软件,可以很方便地完成这个任务。 首先,我们需要知道超定线性方程组的定义。超定线性方程组是指方程数大于未知数个数的线性方程组。决超定线性方程组的方法有很多,常见的包括最小二乘法和QR分法。在matlab中,我们可以用自带的函数lsqcurvefit来求超定线性方程组。 使用lsqcurvefit函数的前提是我们要有一个包含独立变量和因变量的函数,在对这个函数进行最小化拟合时,我们需要提供一组初始值来求。lsqcurvefit函数中还有其他一些可选参数,比如约束、最大迭代次数和输出选项等,这些参数可以根据实际需要进行设置。 另外,matlab还提供了很多与超定线性方程组求有关的函数,比如lsqnonlin和lsqlin等,使用方法类似。 总之,matlab求超定线性方程组是一种非常方便和高效的方法。它可以大大提高数学问题的求效率,给科学计算带来更多的便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值