这是系列帖子的上,后面还有一篇。这两篇共同的主题是 改变向量的基——使用 geogebra 演示。
1. 荐书
最近读了一本书,感觉非常不错。书名《程序员数学》,作者 Paul Orland,https://book.douban.com/subject/35689348/,下面图示中的这本书。微信读书APP可以免费阅读,排版尚可。
书里涉及到线性代数、高等数学、数值计算、神经网络等的初步,都用python代码实例介绍的,直观,能帮助理解理论知识,适合作为计算机导论的补充素材。自己参考做实验也挺好玩的,比如线性代数中关于直线相关和向量换基底的这部分,我用 geogebra 重新实现了一遍。
2.直线相交
在二维平面上,有两条直线,分别已知方程,求交点的坐标。
问题简单朴素,正可以用来熟悉一下如何在geogebra之中把 方程、几何意义、矩阵 对应起来。
下图中的两条直线、两个方程、矩阵,就是《程序员数学》中的实例。我们也用它讨论。
2.1 几何意义,与方程的关系
其中一条直线的方程如下。
输出方程的同时,在geogebra(的standard view)中就显示出了对应的直线。甚至在输入的过程中也对中间结果给出了图形,不过与论题无关,所以省略。
根据上图,我们能看出,斜率刚好是1;在直线上任意一点,x和y总是相等的。
另一条曲线的方程如下。为了与第一条曲线相区别,我手动改成了红色。
两条直线都显示出来了。可以把x和y分别赋值为0,求出对应的y和x,验证图中的红色直线是正确的。
手动标出交点,如下图所示。
即 指行执行,如下图,求eq1和eq2这两个 方程/直线 的交点。
在平面直交坐标系上,可以看到这个点。
以上,是两条直线相交的几何意见,以及与方程的关系。
解两个联立的二元方程,与几何意见对应,即求两条直线相交的交点。在geogebra中的方法,其中一种就是如上所述,画出两条直线,把直线的交点标出来。除此以外,以下方法也有效。
2.2 解方程
用指令Solve,参数是两个方程外面括上花括号组成的 list。
由上图得到精确解,分数表示。鼠标单击 约等号,得到下图,数值解,用小数表示,与此前的两直线交点所得结果相同。如下图所示。
2.3 矩阵形式
《程序员数学》书中给出的是矩阵形式,类似下图所示。
上图中的最后一行,geogebra给出了矩阵对应的方程形式。
方程左半边,即 x-y 、x+2y 与
矩阵形式的左半边,即乘法部分m1m2 的对应关系如下。
2.4 用矩阵解方程(1)
根据刚刚m1,m2,m3的定义,在等式左右两端 分别 左乘 m1的逆。
或者含义相同,geogebra中特有的写法。
然后,
等式左边,m1的逆与m1得到单位阵,向量{{x},{y}}不变;
等式右边,m1的逆与向量{{0},{8}}相乘得到向量 {{8/3},{8/3}}
严格地说,得到的并不是x和y的根,而是向量。
这里还有一些扣儿,与主题关系不大,我也不甚了了。姑且跳过,左乘一个矩阵的逆,这个方法在下一次的讨论中要用到,这里作为序曲。
2.5 用矩阵解方程(2)
标准的解法如下。