polyvalm2评估一个多项式与一个方阵参数超过了MATLAB内置函数polyvalm或mpower。
X), Y = polyvalm2 (P, P是一个向量的长度N + 1的元素是一个多项式的系数,是多项式的价值评估矩阵参数X X必须一个方阵。
Y = P (1) * X X ^ ^ N + P (2) * (N - 1) +…+ P (N) * X + P (N + 1) *我
类支持输入P金宝app, X:
浮:双、单
polyvalm2速度的改进来自以下:
1)MATLAB内置函数polyvalm使用霍纳氏方法。polyvalm2使用二进制矩阵的分解权力更有效地计算,减少矩阵乘法的总数计算答案。
2)polyvalm计算标量乘以一个矩阵的乘积作为诊断接头的产品(标量*(等))*矩阵……即一个矩阵相乘。polyvalm2将更有效地计算这个产品简单的标量*矩阵。
3)polyvalm上面所有的计算,即使系数P (i)为零。polyvalm2不做计算P (i)系数为零。
4)polyvalm稀疏矩阵的输入转换成完整的矩阵计算,而polyvalm2保持中间计算答案稀疏。
权衡是polyvalm2比polyvalm为中间变量使用更多的内存,所以对于非常大的矩阵polyvalm2可以耗尽内存。在这些情况下polyvalm2将放弃高效的计算方法和内置polyvalm打电话来。然而,对于稀疏矩阵的输入,polyvalm2通常会更多的内存效率比MATLAB polyvalm函数。
注意:由于polyvalm2使用不同的计算矩阵的权力形式,最终的结果可能不匹配polyvalm没错。还为例子,只有领先的系数是零,polyvalm2可能不完全匹配mpower。但答案一样准确。如果有正或南的参与,那么最终的结果将不是,一般来说,匹配polyvalm或mpower的结果。这不应该是一个很好的使用polyvalm2缺点,然而,由于甚至MATLAB内置函数polyvalm mpower不会相互匹配在这些情况下。(通过重新排序计算,NaN的传播不同)
引用作为
詹姆斯Tursa (2023)。polyvalm2——更快的矩阵多项式求值程序(//www.tatmou.com/matlabcentral/fileexchange/25780-polyvalm2-a-faster-matrix-polynomial-evaluator), MATLAB中央文件交换。检索。