牛人hamming曾讲,the purpose of computing is insight, not numbers(计算的目的是洞见,而不是数字)。
有了计算机,学会了编程,我们能做的不仅仅是获得数字。计算机是理论家的实验室,我们可以在计算机上编程检验理论猜想,或者积累数据总结规律。
举一个例子。
在线性代数中,有这样一个习题。假设A为n1*n2的任意矩阵,B为n2*n1的任意矩阵。证明有等式
det(I + AB) = det (I + BA)
这里I为相应大小的单位矩阵。
也许我们想不出证明的办法,但是至少我们可以检验这个等式的可信度。下面的程序寥寥几行,却能迅速地告诉我们,这个等式确实成立!
clear all; close all; clc;
n1 = 3;
n2 = 5;
A = rand(n1, n2);
B = rand(n2, n1);
det(eye(n1) + A*B)
det(eye(n2) + B*A)
在保证等式成立后,我们便可以放心地开始寻找证明办法。
作业1:证明这个等式。