漯河网站建设推广普通话的意义
编程示例: 矩阵的多项式计算以javascript语言为例
国防工业出版社的《矩阵理论》一书中第一章第8个习题
 试计算2*A^8-3*A^5+A^4+A^2-4I
 A=[[1,0,2],[0,-1,1],[0,1,0]]
代码如下
<html>
 <head>
 <title>
 矩阵乘法
 </title>
 <script src='set.js' ></script>
 <script src='list.js' ></script>
 <meta charset="utf-8">
 </head>
 <body >
 <p>
 计算斐波那契数列,输入第N项</p>
 <textarea id='txt1' rows="4" cols="80"></textarea>
 <p>输出结果值</p>
 <textarea id='txt2' rows="14" cols="80"></textarea>
 <input type=button οnclick="test()" value="计算"></input>
<script>
 function test()
 {
 //var a=[[0.257, 0.504, 0.098],[-0.148, -0.291, 0.439],[0.439, -0.368, -0.071]];
 //var b=[[16],[128],[128]];
 var mat=[[1,0,2],[0,-1,1],[0,1,0]];
 var identi=IdentityMatrix(3);//[[1,0,0],[0,1,0],[0,0,1]];
var coff=[-4,0,1,0,1,-3,0,0,2];
 var txt1=document.getElementById("txt1");
 var txt2=document.getElementById("txt2");
 //var m=[1,0];
     mm=poly_matrix(coff,mat,identi);//Matrix_Mul(mat,mat);
     //mm=Matrix_Add(mm,b);
     
 txt1.innerText=identi;//Matrix_Mul_By_Num(mat,3);//poly(coff,10);
 txt2.innerText=list(mm,function(a){return a;});
 }
/*function poly(coff,x)
 {
     var result=coff[coff.length-1];
     for (var i=coff.length-2;i>=0;i--)
     {
         result=x*result+coff[i];
     }
   return result;
 }
 */
 function Matrix_Mul_By_Num(mat,num)
 {
    return Matrix_One_operator(mat,function(a){return a*num;});
 }
 function poly_matrix(coff,x,identi)
 {
     var result=Matrix_Mul_By_Num(identi,coff[coff.length-1]);
     for (var i=coff.length-2;i>=0;i--)
     {
         result=Matrix_Add(Matrix_Mul(x,result),Matrix_Mul_By_Num(identi,coff[i]));
     }
   return result;
 }
 </script>
 </body>
 </html>
输出结果值
 [[-3,48,-26],[0,95,-61],[0,-61,34]]
 这是正确的答案
代码调用了函数库中的如下函数:
 Matrix_Add  矩阵加法
 Matrix_Mul  矩阵乘法
 Matrix_Mul_By_Num 矩阵数乘
