matlab本身是收费的,新版本越来越庞大和臃肿,由原来的教学实验室产品,逐步变成了开发者生态圈。从学习角度,老版本的matlab更加简单,易于上手。因此下载了MATLAB5.3绿色版本作为起点。
先在Win10上解压运行,意外发现Win10对老版本的matlab支持很差,经常出现运行错误和闪退。那么就只好在linux下来配置运行了。进入Deepin,将下载的压缩包解压到 ~./Deepinwine/matlab 目录下,运行:
> deepin-wine ~/.deepinwine/MATLAB5/bin
则顺利正常启动,运行 bench 和 demo 命令,查看效果:
碾压20年前的王者
simulink 和 stateflow 全部正常工作。
窃以为,任何一个工科领域的本科或者研究生,如果熟悉精通matlab且深度理解matlab里面的各个领域内容,都可以作为优秀毕业生了。MATLAB5.3里面已经包含了自动控制、图像处理、信号处理、系统辨识、最优控制、小波、通讯、数据库、偏微分方程等工具包。本质讲,这些包都是开源的,意味着所有的算法都可以看代码学习。
比如教科书上都是讲,求矩阵特征值,是通过求矩阵特征多项式的根来获得特征值:
>A = rand(3)
A =
0.4103 0.3529 0.1389
0.8936 0.8132 0.2028
0.0579 0.0099 0.1987
>p = poly(A)
p =
1.0000 -1.4222 0.2514 -0.0016
>roots(p)
ans =
1.2167
0.1987
0.0068
特征多项式的三个根就是矩阵A的三个特征值。
我们再看看MATLAB是如何求的,用 type 命令显示 poly 代码,可以看出MATLAB求矩阵的特征多项式,是先求矩阵的特征值,然后再用特征值构建特征多项式。再看看求n阶多项式的根的方法:
MATLAB是用多项式来构建一个矩阵,叫多项式的伴随矩阵,然后再矩阵的特征值作为多项式的根。之所以这么做,是因为在现代数值计算中,对任意阶矩阵,采用QR矩阵分解算法求特征值远比求特征多项式的根来得高效快捷,matlab把eig命令作为一个内置函数来执行。
matlab及其toolbox的所有算法和函数,都值得深入研究。一句话,掌握和精通MATLAB,毕业不发愁。