本科开始学 linear algebra 时,最大的困惑是 matrix, dot product, cross product 这些概念指的到底是什么。书读的遍数多了,忽然间脑子里就隐隐约约明白了。其实还是说不清,只是不再纠缠而是忙着看之后的内容了。
好多年之后开始学习 rendering,工作上也常有绘制 custom UI 的问题,渐渐觉得这些东西理所当然,不再深究。但时常遇到初次接触这些领域的人问同样的问题。我敢打赌,每个接触过这些概念的人,不管是后来以图形学为生,还是早早放弃治疗,一定都有过「这些到底是什么」的挣扎。现在回想起来最让我震撼的是,经过这么一代人一代人的挣扎,教科书就是从来不肯用一句话点破这些东西到底是什么。于是初学者便要自己体会。 「dot product 的『意义』是一个面积吧,但 cross product 看起来就完全没有意义啊?一定是我体会不够!」
其实这东西就像古人写格律诗一样,为什么每句字数要一样还讲究平仄?为了美感吗?当然有这个因素,但如果「美感」就是最终目的,那么限于格律的形式一定程度上也阻挡了人类表达美好事物的能力。「美感」是让人的大脑能够轻松记忆的手段。为了在现代印刷术发明前能大量流传才是「格律」的意义。只是一个记法。
同样,大多数 linear algebra 的概念并没有直接的应用意义,它们只是帮助学者能把公式写成更有「美感」的形式,便于记忆而已。就如同为什么要把成像公式写成 1/a + 1/b = 1/f 一样。到了计算机时代,这些助记符又有了另外一层意义。由于它们最初的广泛应用,硬件上对它们的计算设计了特别的加速电路。软件上也有优化良好的库。反过来促使研究者更加注重把理论表达成这些助记符的形式。
2017/06/23 2:04 上午 |
我对此有同感.
反复追究一个数学定义到底是什么(一般隐含索求其几何直觉上的意义)是没有太大意义的事情. 更好的问法应该是”这个定义之下具有哪些结构?”, 或者, “这个定义可以参加怎样的运算?”.
以编程语言的说法, 对于一个type, 要关心它满足哪些concepts/traits.
> 教科书就是从来不肯用一句话点破这些东西到底是什么
Terence Tao的Analysis这本书将我从”这些到底是什么”的挣扎中解救出来.
另外在SICP里, 那个定义”1″的方法让我知道定义这种东西其实都是为了某种”结构”服务的: 只要它们都满足”0 + 1 = 1″即可.
> 它们只是帮助学者能把公式写成更有「美感」的形式,便于记忆而已
还有一种可能, 是为了兼容Fourier Analysis, 或是其他space附加某种性质, 如inner product. 所以有些概念以一种抽象的方法给出.