一、总论
无论是数学建模比赛,还是数学建模课,我都太过于关注工具的使用了,经常因为学会了 matlab
的又一高级特性或者 python
的又一个库而兴奋半天,但是实际上一点有用的知识都没有学习。
数学建模,重要的不是计算机,或者是某个方法,换句话说,解决问题不是数学建模的精髓,将实际问题抽象成一个数学问题,即“建模”的过程,才是本质。我们学习诸多的方法,不是为了学习其原理,而是为了拓展视野,意识到原来还可以这样建模。
回答 4.1.5 疑问中的疑问,
问题 1 —— 第二个矩阵计算为何出错,
问题 2 —— MAC.v 是否有修改的必要
第一个矩阵出错的原因是在第二个矩阵计算中,在第一个矩阵中涉及到了负数
[[ 111, 25, 32, 66, -12, -99, -28, 16, -95],
[ 63, -90, -102, 40, 73, 16, -53, -33, -27],
[ -39, -79, -12, -83, -112, 59, 34, -49, -57],
[ -18, 103, -86, -51, -104, 36, -105, 112, 58],
[ 52, -12, -52, 1, -95, -123, 34, -89, 11],
[ 50, 123, 90, -74, 99, 100, 95, -12, -97],
[ 12, -94, 55, -14, 115, 84, -110, 64, 18],
[ 74, -105, -111, -43, 63, 107, 111, 56, -15]]
动态规划具有以下三个明显特性:
虽然这三个特性都被称为“动态规划”的特性,但是“无后效性”和“最优子结构”并非是动态规划的专利。对于“无后效性”,应该是所有的分治算法都具有这个特性,如果我们必须掌握子问题的求解过程,那么显然我们就没必要将大问题分治为小问题。对于“最优子结构”,虽然“最优”二字将问题划定成了“最优化算法”的范畴,但是如果扩充最优化的定义,会发现依然几乎所有分治算法都满足具有最优子结构的定义。
这篇文章写得实在是太好了图解链接 。
这两种东西是不一样的,np.array
也可以有多维,但是它的 *
就是点对点乘法,而 @
是点乘。但是对于 np.matrix
来说,无论是 *
还是 @
都是点乘,sp.Matrix
同理。有如下演示