图解线性代数:线性方程组解的问题
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261905.png)
线性代数的一个主要用途就是求解线性方程组,线性方程组的一个重要问题就是有解和无解的问题。这篇文章我们就来回顾这些内容,我们从两个未知数的线性方程组开始,然后逐渐扩展到三个未知数的线性方程组。在开始本文之前,我们先导入本文需要的一些packages。
%guiqt#mayavi主要用来绘制3维可视化图形frommayaviimportmlabimportmatplotlib.pyplotaspltimportnumpyasnp#mpl_toolkits.mplot3d是Matplotlib里面专门用来画三维图的工具包frommpl_toolkits.mplot3dimportAxes3D#precision表示小数点之后保留三位,suppress为True表示浮点数都使用固定的格式表示,否则当数据中最小值的绝对值小于1e-4,会使用scientificnotationnp.set_printoptions(precision=3,suppress=False)两个线性方程的可视化考虑以下的线性方程组:
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261906.png)
当然,两条直线并不一定交于一点,它们可能平行,也可能重合,重合的两条直线上的每个点都是交点。考虑下面两个方程:
以及
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261907.png)
它们分别对应了无解和有无穷多解的情况。
平面的可视化现在我们把方程扩展到三个未知数的线性方程组,这样每个方程将确定三维空间中的一个plane(平面)。在可视化这样的线性方程组之前,我们先学习一下怎么绘制plane。首先使用numpy中的meshgrid函数,其作用是从coordinate vector(坐标向量)返回coordinate matrices(坐标矩阵)。
x,y=np.arange(-2,3,1),np.arange(-2,3,1)X,Y=np.meshgrid(x,y)fig,ax=plt.subplots(figsize=(12,7))ax.scatter(X,Y,s=50)ax.axis([-3,3,-3,3])ax.spines['left'].set_position('zero')ax.spines['right'].set_color('none')ax.spines['bottom'].set_position('zero')ax.spines['top'].set_color('none')现在我们考虑函数
这看起来并不像一个平面,我们其实可以使用plot_surface函数来绘制一个平面,matplotlib会自动在笛卡尔坐标之间进行插值,这使得图形看起来像一个平面。
fig=plt.figure(figsize=(12,7))ax=fig.add_subplot(111,projection='3d')ax.plot_surface(X,Y,Z,cmap='viridis')ax.set_xlabel('xaxis')ax.set_ylabel('yaxis')ax.set_zlabel('zaxis')现在我们已经学会了怎么去绘制平面,接下来我们来讨论3个未知数的线性方程组的解的问题。
考虑一下的线性方程组:
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261911.png)
我们确信这里是有解的,但是该图并没有显示plane相交的部分,这主要是因为matplotlib的rending(渲染)算法并不是在绘制真正的3d图形,而仅仅是投射3d图形到2维来模拟3D特征。
Mayavi包 在rending 3d图形方面非常专业,我们可以调用Mayavi包来进行绘制,这个包在文章的开始部分已经被导入了。
mlab.clf()X,Y=np.mgrid[-25:26:1,-25:26:1]Z1=X+2*Ymlab.mesh(X,Y,Z1,colormap="spring")Z2=6-2*X-Ymlab.mesh(X,Y,Z2,colormap="winter")Z3=1.5*X+1.5*Ymlab.mesh(X,Y,Z3,colormap="summer")#添加坐标轴mlab.axes()#添加框架mlab.outline()可以看到三个平面相交于一个点,而这个点就是方程组的唯一解。
没有解的线性方程组的可视化现在让我们对不存在解的线性方程组进行可视化。我们知道齐次线性方程组一定有解,因为至少会有一个零解,所以无需讨论齐次线性方程组。而非齐次线性方程组无解,充要条件是系数矩阵的秩不等于增广矩阵的秩。我们看以下的线性方程组:
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261913.png)
我们看到三个平面没有产生相交,因而无解。
有无穷多解线性组的可视化非齐次线性方程组有无穷多解,其充要条件是系数矩阵的秩等于增广矩阵的秩,但是小于。如下方程:
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261914.png)
三个平面相交于一条直线,这就是方程组有无穷多解的直观展示。
总结以上我们对线性方程组无解、有唯一解、有无穷多解做了可视化展示。最后,我们总结一下方程组解的问题,主要是一些理论知识:
对于齐次线性方程组
更多精彩等着你
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261916.jpg)
![](https://static.kouhao8.com/upload/cunchu/cunchu7/2021-08-03/202108032217261917.gif)
相邻资料
最新课程
林鹿的翡翠知识,用宝石眼光,系统全面的看懂翡翠
2024-07-02浏览 95下载 41
个人魅力提升课,教你说话声音好听不累嗓
2024-07-02浏览 153下载 48
秋叶 Office三合一,包括:Word、Excel、PPT,共524课时完整版
2024-07-02浏览 251下载 34
汽车摄影 轻松汽车摄影全能课,最全汽车视频拍摄技巧
2024-07-02浏览 358下载 31
手机拍摄 手机拍摄珠宝首饰教程,系统学习,手机拍摄,简单易学,布光原理
2024-07-02浏览 328下载 43
电子电路 零基础学电子电路(精通版)
2024-07-02浏览 113下载 25
Ae案例教程 Ae案例教程,零基础小白也能学,Ae入门到进阶案例教学课
2024-07-02浏览 148下载 52
AI处理表格 人工智能AI处理表格制作技巧Excel函数公式WPS数据分析,无需经验三秒做表,提高职场竞争力
2024-07-02浏览 55下载 26
AI学习圈 2024-AI学习圈:替代你的不是AI,而是会用AI的同事,让AI为你打工
2024-07-02浏览 103下载 29
AI作图 AI作图全能实战班:0基础开始 ai创意/ai摄影/ai置景/ai后期 (55节+资料)
2024-07-02浏览 186下载 44