当前位置: 首页 > news >正文

编程示例: 矩阵的多项式计算以javascript语言为例

编程示例: 矩阵的多项式计算以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 矩阵数乘

相关文章:

  • 技术迷宫探秘:揭开前端花园、后端洞穴与数据科学密室的神秘面纱
  • 【解读】OWASP大语言模型应用程序十大风险
  • Java17 --- springCloud之LoadBalancer
  • centos7.9升级ssh和openssl
  • 设计模式学习笔记 - 规范与重构 - 2.保证重构不出错的技术手段
  • 探讨系统测试的最佳实践与思维模式!
  • Java8 CompletableFuture异步编程-进阶篇
  • 300分钟吃透分布式缓存-24讲:Redis崩溃后,如何进行数据恢复的?
  • Django学习笔记
  • ULTRAL SCALE FPGA TRANSCEIVER速率
  • python使用multiprocessing
  • Spring学习 基础(三)MVC
  • 2024/3/10周报
  • 如何清除keep-alive缓存
  • mongodb的备份与恢复
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • es6
  • ES6--对象的扩展
  • export和import的用法总结
  • extract-text-webpack-plugin用法
  • git 常用命令
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Java比较器对数组,集合排序
  • laravel 用artisan创建自己的模板
  • Linux下的乱码问题
  • Rancher-k8s加速安装文档
  • React+TypeScript入门
  • win10下安装mysql5.7
  • 大型网站性能监测、分析与优化常见问题QA
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 区块链共识机制优缺点对比都是什么
  • 事件委托的小应用
  • 算法之不定期更新(一)(2018-04-12)
  • 积累各种好的链接
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #include
  • (7)STL算法之交换赋值
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)程序员疫苗:代码注入
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net Memory Profiler的使用举例
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET面试题(二)
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • ?
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android]使用Retrofit进行网络请求
  • [BJDCTF2020]The mystery of ip
  • [IE编程] IE 是如何决定Accept-Language 属性的
  • [InnoDB系列] -- SHOW INNODB STATUS 探秘
  • [JavaWeb]——获取请求参数的方式(全面!!!)