百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

矩阵(I) - 网络统计学(14)

haoteby 2024-11-30 22:01 28 浏览

在数学中,矩阵(Matrix)是一个按照长方阵列排列的实数集合 ,最早来自于方程组的系数及常数所构成的方阵。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。

矩阵在统计学中的用途广泛且多样,主要用于表示和操作数据、简化计算过程以及解决各种统计问题。通过矩阵运算可以简化和加速统计数据分析、建模和计算过程。无论是基本的线性代数操作,还是高级的统计分析方法,矩阵都为我们提供了强大而灵活的工具。

1、矩阵基础函数

(1)生成空矩阵

【语法】

// 函数
  webTJ.Matrix.getMEmpty(rows, col);
// 参数 
  【arrs:二维数组】

【代码】

webTJ.clear();
var oArrs=webTJ.Matrix.getMEmpty(4,5);
oArrs[3][3]=100;
oArrs[0][0]=200; 
oArrs[2][1]=300;
webTJ.display(oArrs,1)

(2)矩阵加

【语法】

// 函数
webTJ.Matrix.getPlus(arrs1, arrs2);
// 参数
【arrs1, arrs2】
【二维数组1 二维数组2】

【代码】

webTJ.clear();
var oTxt1="3:2:6:5:2:7,5:3:6:5:9:6,5:2:1:5:2:6,1:2:6:5:2:0"; //格式字符串
var oTxt2="2:1:2:3:2:2,5:3:5:5:2:6,5:2:1:3:2:2,3:2:2:5:1:1"; //行分割符","、列分割符":"
var oArr1=webTJ.getArrs(oTxt1,",",":");  //按行、列分割符转换为二维矩阵
var oArr2=webTJ.getArrs(oTxt2,",",":");
webTJ.display(oArr1,1);
webTJ.display(oArr2,1);
var oArr=webTJ.Matrix.getPlus(oArr1,oArr2); //两矩阵相加
webTJ.display(oArr,1);

注:矩阵(二维数组)加或减时,arrs1和arrs2的行和列相等

(3)矩阵减

【语法】

## 函数 ##
  webTJ.Matrix.getMinus(arrs1, arrs2);
## 参数 ##
  【arrs1, arrs2】
  【二维数组1, 二维数组1】

【代码】

webTJ.clear();
var oTxt1="3:2:6:5:2:7,5:3:6:5:9:6,5:2:1:5:2:6,1:2:6:5:2:0";
var oTxt2="2:1:2:3:2:2,5:3:5:5:2:6,5:2:1:3:2:2,3:2:2:5:1:1";
var oArr1=webTJ.getArrs(oTxt1,",",":");
var oArr2=webTJ.getArrs(oTxt2,",",":");
webTJ.display(oArr1,1);
webTJ.display(oArr2,1);
var oArr=webTJ.Matrix.getMinus(oArr1,oArr2);
webTJ.display(oArr,1);

(4)矩阵乘

【语法】

// 函数
  webTJ.Matrix.getMultiply(arrs1, arrs2);
// 参数
  【arrs1, arrs2】
  【二维数组1, 二维数组2】

【代码】

webTJ.clear();
var oTxt1="3:2:6:5:2:7,5:3:6:5:9:6,5:2:1:5:2:6,1:2:6:5:2:0";
var oTxt2="2:1:2:3,5:5:2:6,5:2:2:2,3:2:2:5,3:4:2:1,5:2:6:4";
var oArr1=webTJ.getArrs(oTxt1,",",":");
var oArr2=webTJ.getArrs(oTxt2,",",":");
webTJ.display(oArr1,1);
webTJ.display(oArr2,1);
var oArr=webTJ.Matrix.getMultiply(oArr1,oArr2);
webTJ.display(oArr,1);

注:两矩阵相乘,arrs1的列和arrs2的行相等(Ai×j × Bj×k = Ci×k

(5)矩阵转置

【语法】

// 函数
  webTJ.Matrix.getTranspose(arrs);
// 参数
  【arrs】
  【二维数组】

【代码】

webTJ.clear();
var oArr=[
[3,2,6,5,2,7], [5,3,6,5,9,6],
[5,2,1,5,2,6], [1,2,6,5,2,0]];
webTJ.display(oArr,1);
var oArr1=webTJ.Matrix.getTranspose(oArr);
webTJ.display(oArr1,1);

(6)计算逆矩阵

【语法】

// 函数
  webTJ.Matrix.getInverse(arrs);
// 参数
  【arrs】
  【二维数组】

【代码】

webTJ.clear();
var oArrs=[[2,2,3],[2,1,2],[1,3,4]];
webTJ.display(oArrs,1);
var oArrs1=webTJ.Matrix.getInverse(oArrs);
webTJ.display(oArrs1,1);

注:矩阵(二维数组)arrs为方阵

(7)计算矩阵的行列式

【语法】

// 函数
  webTJ.Matrix.getDet(arrs);
// 参数
  【arrs】
  【二维数组】

【代码】

webTJ.clear();
var oArrs = [
[6,8,4,2,8,5], [3,5,2,4,9,2], [7,6,8,3,4,5],
[5,5,2,8,1,6], [3,2,2,4,2,2], [8,3,2,2,4,1]];
var oV=webTJ.Matrix.getDet(oArrs);
webTJ.display(oV,0);

注:矩阵(二维数组)arrs为方阵

2、矩阵编辑(修改)

(1)在指定位置添加行

【语法】

// 函数
  webTJ.Matrix.getInsertRRow(arrs, rarr, row);
// 参数
  【arrs, rarr, row】
  【二维数组, 行数组, 添加行位置】

【代码】

webTJ.clear();
var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
webTJ.display(oArrs,1);
var oRowv=[3,4,1,7]; //添加数组
var oTs=webTJ.Matrix.getInsertRRow(oArrs,oRowv,1); //在第2行插入添加行

(2)在指定位置添加列

【语法】

// 函数
  webTJ.Matrix.getInsertRCol(arrs,carr,col);
// 参数
  【arrs, carr, col】
  【二维数组, 给定数组, 添加列位置】  

【代码】

webTJ.clear();
var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
webTJ.display(oArrs,1);
var oColv=[1,3,2,4,5]; //添加数组
var oTs=webTJ.Matrix.getInsertRCol(oArrs,oColv,1); // 在第2列添加数组
webTJ.display(oTs,1);

(3)删除行

【语法】

// 函数
  webTJ.Matrix.getRemoveRow(arrs, row);
// 参数
  【arrs, row】
  【二维数组, 删除行位置】

【代码】

webTJ.clear();
var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
webTJ.display(oArrs,1);
var oTs=webTJ.Matrix.getRemoveRow(oArrs,1); //删除第2行
webTJ.display(oTs,1);

(4)删除列

【语法】

## 函数 ##
  webTJ.Matrix.getRemoveCol(arrs,col);
## 参数 ##
  【arrs:二维数组】
  【col: 删除列位置】

【代码】

webTJ.clear();
var oArrs=[[3,2,5,1],[2,5,4,3],[3,1,2,4],[2,1,1,5],[4,1,3,1]];
webTJ.display(oArrs,1);
var oTs=webTJ.Matrix.getRemoveCol(oArrs,1); //删除第2列
webTJ.display(oTs,1);

文中介绍了矩阵的基本运算和编辑操作,所有的示例代码都经过了在线工具“http://www.galaxystatistics.com/webTJX.html”的运行验证。

相关推荐

如何为MySQL服务器和客户机启用SSL?

用户想要与MySQL服务器建立一条安全连接时,常常依赖VPN隧道或SSH隧道。不过,获得MySQL连接的另一个办法是,启用MySQL服务器上的SSL封装器(SSLwrapper)。这每一种方法各有其...

OpenVPN客户端配置_openvpn客户端配置文件解析

...

k8s 证书问题排查_k8s dashboard 证书

从去年开始一些老项目上陆陆续续出现一些列的证书问题,(证书原理这里就不说了,官方文档一堆)多数刚开始的表现就是节点的kubelet服务起不来,节点状态NotReady表现日志如下failed...

企业级网络互通方案:云端OpenVPN+爱快路由器+Win11互联实战

企业级网络互通方案:OpenVPN搭建公有云+爱快路由器+Win11三地互联实战指南「安全高效」三地局域网秒变局域网实施环境说明...

OpenV** Server/Client配置文件详解

Server配置详解...

接口基础认知:关键信息与合规前提

1.核心技术参数(必记)...

S交换机通过SSH登录设备配置示例(RADIUS认证+本地认证独立)

说明:●本示例只介绍设备的认证相关配置,请同时确保已在RADIUS服务器上做了相关配置,如设备地址、共享密钥、创建用户等配置。●通过不同的管理域来实现RADIUS认证与本地认证两种方式同时使用,两...

SSL证书如何去除私钥密码保护_ssl证书怎么取消

有时候我们在生成证书的时候可以加入了密码保护。然后申请到证书安装到了web服务器。但是这样可能会带来麻烦。每次重启apache或者nginx的时候,都需要输入密码。那么SSL证书如何去除私钥密码保护。...

SSL证书基础知识与自签名证书生成指南

一、证书文件类型解析...

S交换机通过SSH登录设备配置示例(RADIUS认证)

说明:本示例只介绍设备的认证相关配置,请同时确保已在RADIUS服务器上做了相关配置,如设备地址、共享密钥、创建用户等配置。假设已在RADIUS服务器上创建了用户名yc123,密码test#123。对...

HTTPS是什么?加密原理和证书。SSL/TLS握手过程

秘钥的产生过程非对称加密...

HTTPS TLS握手流程_进行tls握手

1.客户端向服务器发送`ClientHello`消息,包括支持的TLS版本、加密套件、随机数等信息。2.服务器收到`ClientHello`消息后,解析其中的信息,并根据配置选择一个加密套件。3....

Spring Boot 单点登录(SSO)实现_spring boot 单点登录jwt

SpringBoot单点登录(SSO)实现全指南单点登录(SingleSign-On,SSO)是一种身份验证机制,允许用户使用一组凭证登录多个相关但独立的系统。在微服务架构和企业级系统中,SS...

源码分享:在pdf上加盖电子签章_pdf如何加盖电子公章

在pdf上加盖电子签章,并不是只是加个印章图片,。而是要使用一对密钥中的私钥对文件进行签字。为啥要用私钥呢?很简单,因为公钥是公开的,其他人才可以用公钥为你证明,这个文件是你签的。这就是我们常说的:私...

微信支付商户API证书到期 怎么更换

微信支付商户API证书到期更换是一个非常重要的操作,需要仔细按照流程进行。如果证书过期,所有通过API的支付、退款等操作都会失败,将直接影响您的业务。请按照以下详细步骤进行操作:重要前提:分清...