matlab本身是收费的,新版本越来越庞大和臃肿,由原来的教学实验室产品,逐步变成了开发者生态圈。从学习角度,老版本的matlab更加简单,易于上手。因此下载了matlab5.3绿色版本作为起点。 先在Win10上解压运行,意外发现Win10对老版本的matlab支持很差,经常出现运行错误和闪退。那么就只好在linux下来配置运行了。进入Deepin,将下载的压缩包解压到 ~./Deepinwine/matlab 目录下,运行: > deepin-wine ~/.deepinwine/MATLAB5/bin/matlab.exe 则顺利正常启动,运行 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,毕业不发愁。 |