图解线性代数:线性方程组解的问题

搜搜小姐姐 搜搜小姐姐
来源:互联网
点击上方"蓝字"我们吧!“图解线性代数”是我们新开的一个专栏,旨在使用Python可视化packages来学习线性代数。通过这一专栏的学习,你将不仅学到线性代数知识,还会学到很多python可视化的教程。

线性代数的一个主要用途就是求解线性方程组,线性方程组的一个重要问题就是有解和无解的问题。这篇文章我们就来回顾这些内容,我们从两个未知数的线性方程组开始,然后逐渐扩展到三个未知数的线性方程组。在开始本文之前,我们先导入本文需要的一些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)两个线性方程的可视化

考虑以下的线性方程组:

当然,两条直线并不一定交于一点,它们可能平行,也可能重合,重合的两条直线上的每个点都是交点。考虑下面两个方程:

以及

它们分别对应了无解和有无穷多解的情况。

平面的可视化

现在我们把方程扩展到三个未知数的线性方程组,这样每个方程将确定三维空间中的一个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个未知数的线性方程组的解的问题。

考虑一下的线性方程组:

我们确信这里是有解的,但是该图并没有显示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()

可以看到三个平面相交于一个点,而这个点就是方程组的唯一解。

没有解的线性方程组的可视化

现在让我们对不存在解的线性方程组进行可视化。我们知道齐次线性方程组一定有解,因为至少会有一个零解,所以无需讨论齐次线性方程组。而非齐次线性方程组无解,充要条件是系数矩阵的秩不等于增广矩阵的秩。我们看以下的线性方程组:

我们看到三个平面没有产生相交,因而无解。

有无穷多解线性组的可视化

非齐次线性方程组有无穷多解,其充要条件是系数矩阵的秩等于增广矩阵的秩,但是小于。如下方程:

三个平面相交于一条直线,这就是方程组有无穷多解的直观展示。

总结

以上我们对线性方程组无解、有唯一解、有无穷多解做了可视化展示。最后,我们总结一下方程组解的问题,主要是一些理论知识:

对于齐次线性方程组

更多精彩等着你

我知道你在看哦

相邻资料

阅读 下载数 0
栏目专题
user-avatar
摄影
通过物体所发射或反射的光线使感光介质曝光的过程。
user-avatar
快手
快手是北京快手科技有限公司旗下的短视频社区,用于用户记录和分享生产、生活的平台。
user-avatar
研究生考试
全国硕士研究生统一招生考试。
user-avatar
瑜伽
瑜伽则是系列的修身养心方法。
user-avatar
C#编程开发
C#是微软公司发布的一种编程语言。
名人专题
user-avatar
刘强东
京东集团董事局主席兼首席执行官。
user-avatar
马云
中国阿里巴巴集团主要创始人。
user-avatar
贾长松
著名企业管理系统的咨询顾问。
user-avatar
苏引华
大脑银行创始人、世界首席大脑工程师。
user-avatar
祝文欣
品牌管理机构首席培训讲师、管理顾问。