【线性代数】线性方程组的求解「建议收藏」

【线性代数】线性方程组的求解

大家好,又见面了,我是全栈君。

       
上一篇文章讲述了Ax=0的解和矩阵A的零空间。
这里我们讨论Ax=b的解以及矩阵A的列空间。

       Ax=0是肯定有解的,由于总存在x为全零向量。使得方程组成立。而Ax=b是不一定有解的。我们须要高斯消元来确定。我们还是利用上一篇讲述了Ax=0的解的矩阵A来举例说明:

【线性代数】线性方程组的求解「建议收藏」

我们能够得到上述方程组的增广矩阵(等式右側不是全零向量,消元时值会改变,所以须要用增广矩阵)例如以下:

【线性代数】线性方程组的求解「建议收藏」

然后我们进行高斯消元能够得到:

【线性代数】线性方程组的求解「建议收藏」

从上面的矩阵能够看出。等式成立必须有

【线性代数】线性方程组的求解「建议收藏」

我们如果一个满足上面条件的b向量,比如:b=[1 5 1+5];而且令两个自由变量x2=0,x4=0,则我们将消元后的矩阵写成方程组的形式例如以下:

【线性代数】线性方程组的求解「建议收藏」

得到的解为:

【线性代数】线性方程组的求解「建议收藏」

Xc是这个方程组的一个特解。由于当X2,X4取不同的值时。会得到不同的特解。

那么我们如何得到方程的同解呢?即如何用一般形式来表示全部的特解?

求解Ax=b的过程:

1、求解特解Xc
2、求解Ax=0的解Xn
Ax=b的解就是特解Xc+Xn。证明例如以下:

【线性代数】线性方程组的求解「建议收藏」

Xc我们上面已经得到,Xn在上一篇文章中得到。则通解能够表示为:

【线性代数】线性方程组的求解「建议收藏」

至此。我们就得到了Ax=b的解。
通过上面的分析求解,我们知道当b满足下式时。方程组有解:

【线性代数】线性方程组的求解「建议收藏」

实际上,方程有解的条件是向量b属于矩阵A的列空间。即向量b能够表示为矩阵A的各列的线性组合。

比如上面的样例:

【线性代数】线性方程组的求解「建议收藏」

方程的解就是矩阵A中各列前面的系数。


以下推广到更一般的情况,我们以矩阵A的不同情况来看解的结构(如果矩阵A为m*n的矩阵,秩为r):
1、r=n<m,即列满秩(全部列都有主元)
     因为全部列都有主元,则自由变量的个数为0。矩阵A的零空间中仅仅有零向量。Ax=b的解的个数为0个或者1个.

     举例说明:

【线性代数】线性方程组的求解「建议收藏」

  当b=[4 3 6 7]时,Ax=b的唯一解为x=[1 1]。


2、r=m<n,即行满秩(全部行都有主元)
     因为全部行都有主元,消元后不会出现全为0的行,则Ax=b有无穷多解。

且自由变量的个数为n-r,矩阵A的零空间中不仅仅有零向量。

     比如:

【线性代数】线性方程组的求解「建议收藏」

3、r=m=n。即列、行都满秩(矩阵可逆)
     因为列、行都满秩,则具有列满秩,行满秩的一些性质:零空间仅仅有零向量,方程总有解且解唯一。

【线性代数】线性方程组的求解「建议收藏」

4、r<m,r<n,非满秩矩阵

【线性代数】线性方程组的求解「建议收藏」

Ax=b有无穷多解或则没有解。

从上面的四种情况的讨论。我们能够总结例如以下:
假设想看一个线性方程组的解的情况,我们能够通过高斯消元法得到矩阵A的最简形式R,R的可能情况例如以下:

【线性代数】线性方程组的求解「建议收藏」

这四种情况分别相应的解的情况为:
1、唯一解或无解
2、无穷多解
3、唯一解
4、无解或无穷多解

原文:http://blog.csdn.net/tengweitw/article/details/40921003

作者:nineheadedbird


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115720.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Sql Prompt安装图文教程「建议收藏」

    Sql Prompt安装图文教程「建议收藏」一、概念SQLPrompt是一款拥有SQL智能提示功能的SQLServer和VS插件。SQLPrompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性–这在开发者使用的是不大熟悉的脚本时尤其有用。SQLPrompt是立即可用的且能极大的提高生产率。…

    2022年7月14日
    95
  • Carson带你学Android:这是一份详细的 Retrofit使用教程(含实例讲解)[通俗易懂]

    前言在Andrroid开发中,网络请求十分常用而在Android网络请求库中,Retrofit是当下最热的一个网络请求库今天,我将献上一份非常详细Retrofitv2.0的使用教程,希望你们会喜欢。如果对Retrofitv2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析Retrofit2.0源码目录![目录](http://upload-

    2022年4月13日
    65
  • libzplay库

    libzplay目前,非开源,只可以在windows上应用;关于MP3文件播放:通常步骤是:获取MP3相关参数->解码->相关平台播放音频接口播放声音;可以播放解码播放MP3的库很多,如果VLC,ffplay,或者directshow,解码库一般可以用lame,播放播放库可以用SDL,或者Windows上的waveout,directsound等很多方法,这里例举

    2022年4月9日
    43
  • 《机器学习与R语言(原书第2版)》一导读

    《机器学习与R语言(原书第2版)》一导读

    2022年3月2日
    35
  • iframe跨域调用js_ajax跨域访问

    iframe跨域调用js_ajax跨域访问概述本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度。1.问题重现:Chrome版本41.0.2272.101(64-bit)OS:Win8.1Chrome访问服务器端HTML文件呈现的结果Chrome访问本地HTML文件呈现的结果本地访问的HTML文件Iframe没有根据Iframe里面的页面类容自适应高度2…

    2022年9月28日
    0
  • random生成随机整数 python_python中的random函数

    random生成随机整数 python_python中的random函数在Python中用于生成随机数的模块是random,在使用前需要import.random.random():生成一个0-1之间的随机浮点数importrandoms=random.random()srandom.uniform(a,b):生成[a,b]之间的浮点数importrandoma=3.0b=6.0s=random.uniform(a,b)srandom.randint(a,b):生成[a,b]之间的整.

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号