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

宝安营销型网站制作谁分享一个免费网站2021

宝安营销型网站制作,谁分享一个免费网站2021,建设干部培训中心网站,个人网站 内容建设线性代数算法 一、向量的加减乘除1. 向量加法2. 向量减法3. 向量数乘4. 向量点积5. 向量叉积 二、矩阵的加减乘除1. 矩阵加法2. 矩阵减法3. 矩阵数乘4. 矩阵乘法 常用数学库 线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在…

线性代数算法

  • 一、向量的加减乘除
    • 1. 向量加法
    • 2. 向量减法
    • 3. 向量数乘
    • 4. 向量点积
    • 5. 向量叉积
  • 二、矩阵的加减乘除
    • 1. 矩阵加法
    • 2. 矩阵减法
    • 3. 矩阵数乘
    • 4. 矩阵乘法
  • 常用数学库

线性代数是数学的一个分支,用于研究线性方程组及其解的性质、向量空间及其变换的性质等。在计算机科学领域中,线性代数常用于图形学、机器学习、计算机视觉等领域。本文将详细介绍 JS 中常用的线性代数算法,并提供代码示例。

一、向量的加减乘除

向量是有大小和方向的量,通常用一列数表示。向量的加减乘除运算也是线性代数中的基本运算。

1. 向量加法

向量加法计算两个向量相加的结果。

例如:给定两个二维向量:

a ⃗ = [ 1 2 ] , b ⃗ = [ 3 4 ] \vec{a}=\begin{bmatrix} 1 \\ 2 \end{bmatrix},\vec{b}=\begin{bmatrix} 3 \\ 4 \end{bmatrix} a =[12],b =[34]

则它们的和为:

a ⃗ + b ⃗ = [ 4 6 ] \vec{a}+\vec{b}=\begin{bmatrix} 4 \\ 6 \end{bmatrix} a +b =[46]

代码实现:

function addVectors(a, b) {if (a.length !== b.length) return null;return a.map((n, i) => n + b[i]);
}

2. 向量减法

向量减法计算两个向量相减的结果。

例如:给定两个三维向量:

a ⃗ = [ 1 3 2 ] , b ⃗ = [ 4 1 5 ] \vec{a}=\begin{bmatrix} 1 \\ 3 \\ 2 \end{bmatrix},\vec{b}=\begin{bmatrix} 4 \\ 1 \\ 5 \end{bmatrix} a = 132 ,b = 415

则它们的差为:

a ⃗ − b ⃗ = [ − 3 2 − 3 ] \vec{a}-\vec{b}=\begin{bmatrix} -3 \\ 2 \\ -3 \end{bmatrix} a b = 323

代码实现:

function subtractVectors(a, b) {if (a.length !== b.length) return null;return a.map((n, i) => n - b[i]);
}

3. 向量数乘

向量数乘是将一个向量的每个元素乘以一个标量。

例如:给定一个三维向量:

a ⃗ = [ 1 3 2 ] \vec{a}=\begin{bmatrix} 1 \\ 3 \\ 2 \end{bmatrix} a = 132

则它乘以标量 k = 2 k=2 k=2 的结果为:

k a ⃗ = 2 [ 1 3 2 ] = [ 2 6 4 ] k \vec{a}=2\begin{bmatrix} 1 \\ 3 \\ 2 \end{bmatrix}=\begin{bmatrix} 2 \\ 6 \\ 4 \end{bmatrix} ka =2 132 = 264

代码实现:

function scalarMultiply(vector, scalar) {return vector.map(n => n * scalar);
}

4. 向量点积

向量点积(也称为内积或数量积)计算两个向量的乘积的和。

例如:给定两个三维向量:

a ⃗ = [ 1 3 2 ] , b ⃗ = [ 4 1 5 ] \vec{a}=\begin{bmatrix} 1 \\ 3 \\ 2 \end{bmatrix},\vec{b}=\begin{bmatrix} 4 \\ 1 \\ 5 \end{bmatrix} a = 132 ,b = 415

则它们的点积为:

a ⃗ ⋅ b ⃗ = 1 × 4 + 3 × 1 + 2 × 5 = 17 \vec{a} \cdot \vec{b}=1 \times 4 + 3 \times 1 + 2 \times 5 = 17 a b =1×4+3×1+2×5=17

代码实现:

function dotProduct(a, b) {if (a.length !== b.length) return null;return a.reduce((sum, n, i) => sum + n * b[i], 0);
}

5. 向量叉积

向量叉积(也称为外积或向量积)计算两个向量的垂直于它们所在平面的法向量。向量叉积只适用于三维向量。

例如:给定两个三维向量:

a ⃗ = [ 1 3 2 ] , b ⃗ = [ 4 1 5 ] \vec{a}=\begin{bmatrix} 1 \\ 3 \\ 2 \end{bmatrix},\vec{b}=\begin{bmatrix} 4 \\ 1 \\ 5 \end{bmatrix} a = 132 ,b = 415

则它们的叉积为:

a ⃗ × b ⃗ = [ 13 3 − 11 ] \vec{a} \times \vec{b}=\begin{bmatrix} 13 \\ 3 \\ -11 \end{bmatrix} a ×b = 13311

代码实现:

function crossProduct(a, b) {if (a.length !== 3 || b.length !== 3) return null;const [ax, ay, az] = a;const [bx, by, bz] = b;return [ay * bz - az * by, az * bx - ax * bz, ax * by - ay * bx];
}

二、矩阵的加减乘除

矩阵是由若干行若干列的数排成的矩形阵列,通常用两个下标表示。矩阵的加减乘除运算也是线性代数中的基本运算。

1. 矩阵加法

矩阵加法计算两个矩阵相加的结果。

例如:给定两个 2 × 2 2 \times 2 2×2 的矩阵:

[ 1 2 3 4 ] , [ 5 6 7 8 ] \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} , \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} [1324],[5768]

则它们的和为:

[ 6 8 10 12 ] \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix} [610812]

代码实现:

function addMatrices(a, b) {if (a.length !== b.length || a[0].length !== b[0].length) return null;return a.map((row, i) => row.map((n, j) => n + b[i][j]));
}

2. 矩阵减法

矩阵减法计算两个矩阵相减的结果。

例如:给定两个 3 × 3 3 \times 3 3×3 的矩阵:

[ 1 3 2 4 8 5 6 1 2 ] , [ 2 1 5 3 6 4 1 7 3 ] \begin{bmatrix} 1 & 3 & 2 \\ 4 & 8 & 5 \\ 6 & 1 & 2 \end{bmatrix} , \begin{bmatrix} 2 & 1 & 5 \\ 3 & 6 & 4 \\ 1 & 7 & 3 \end{bmatrix} 146381252 , 231167543

则它们的差为:

[ − 1 2 − 3 1 2 1 5 − 6 − 1 ] \begin{bmatrix} -1 & 2 & -3 \\ 1 & 2 & 1 \\ 5 & -6 & -1 \end{bmatrix} 115226311

代码实现:

function subtractMatrices(a, b) {if (a.length !== b.length || a[0].length !== b[0].length) return null;return a.map((row, i) => row.map((n, j) => n - b[i][j]));
}

3. 矩阵数乘

矩阵数乘是将一个矩阵的每个元素乘以一个标量。

例如:给定一个 2 × 2 2 \times 2 2×2 的矩阵:

[ 1 3 2 5 ] \begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix} [1235]

则它乘以标量 k = 2 k=2 k=2 的结果为:

2 × [ 1 3 2 5 ] = [ 2 6 4 10 ] 2 \times \begin{bmatrix} 1 & 3 \\ 2 & 5 \end{bmatrix}=\begin{bmatrix} 2 & 6 \\ 4 & 10 \end{bmatrix} 2×[1235]=[24610]

代码实现:

function scalarMultiplyMatrix(matrix, scalar) {return matrix.map(row => row.map(n => n * scalar));
}

4. 矩阵乘法

矩阵乘法计算两个矩阵相乘的结果。矩阵乘法满足结合律,但不满足交换律。即 A × B ≠ B × A A \times B \neq B \times A A×B=B×A

例如:给定两个 2 × 3 2 \times 3 2×3 3 × 2 3 \times 2 3×2 的矩阵:

[ 1 2 3 4 5 6 ] , [ 7 8 9 10 11 12 ] \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} , \begin{bmatrix} 7 & 8 \\ 9 & 10 \\ 11 & 12\end{bmatrix} [142536], 791181012
以下是两个 2×3 和 3×2 矩阵的乘法的 JavaScript 代码示例:

// 2x3 矩阵
const matrixA = [[1, 2, 3],[4, 5, 6]
];// 3x2 矩阵
const matrixB = [[7, 8],[9, 10],[11, 12]
];// 2x2 结果矩阵
const resultMatrix = [[0, 0],[0, 0]
];// 矩阵乘法
for (let i = 0; i < 2; i++) {for (let j = 0; j < 2; j++) {let sum = 0;for (let k = 0; k < 3; k++) {sum += matrixA[i][k] * matrixB[k][j];}resultMatrix[i][j] = sum;}
}// 输出结果
console.log(resultMatrix);

输出结果为:

[[58, 64],[139, 154]
]

上述代码中,我们首先定义了两个矩阵 matrixAmatrixB,然后定义了一个结果矩阵 resultMatrix,该矩阵的大小为 2×2。

接下来,我们通过三层循环实现了矩阵乘法。外层两个循环控制结果矩阵的行列数,内层循环计算结果矩阵中每个元素的值。

最后,我们输出了结果矩阵的值。

常用数学库

在 JavaScript 中实现线性代数算法需要使用数学库,比如 Math.js 或者 NumJS。

以下是 Math.js 的示例代码:

// 创建矩阵
const matrix1 = math.matrix([[1, 2], [3, 4]]);
const matrix2 = math.matrix([[5, 6], [7, 8]]);// 加法
const addResult = math.add(matrix1, matrix2);
console.log(addResult); // 输出 [[6, 8], [10, 12]]// 矩阵乘法
const multiplyResult = math.multiply(matrix1, matrix2);
console.log(multiplyResult); // 输出 [[19, 22], [43, 50]]// 转置
const transposeResult = math.transpose(matrix1);
console.log(transposeResult); // 输出 [[1, 3], [2, 4]]// 求逆矩阵
const inverseResult = math.inv(matrix1);
console.log(inverseResult); // 输出 [[-2, 1], [1.5, -0.5]]

以上是一些常见的线性代数算法的示例代码。使用数学库可以方便地实现复杂的线性代数计算。

http://www.yayakq.cn/news/731609/

相关文章:

  • 东莞市锂电池网站建设django网站开发视频教程
  • 分类信息网站系统cms珍爱网建设网站的目的
  • 推荐几个安全没封的网站西部数码网站站点
  • 做餐饮要看的网站wordpress企业类模板下载
  • 集团门户网站建设方案怎么做淘宝企业网站
  • 专业网站推广服务咨询潮流资讯类网站建设策划
  • 响应式网站的费用北京好的网站开发
  • 网站开发 程序开发阶段短网址生成器在线
  • 县总工会网站建设情况做网站先付款
  • 网站建设业务开展方案wordpress精简代码
  • 著名网站设计师天猫网站是怎么做seo优化的
  • 台州建设网站公司免费引流推广工具
  • 网站空间管理系统网站能当做创业来做吗
  • 昆明网站做的好的公司如何在app上做网站
  • 公司建网站多少钱一个月手机端搜索引擎排名
  • 巴中网站建设有限公司php模板源码
  • 网站建设金手指15什么为网站建设提供基础素材
  • 网站外链隐形框架开放大学门户网站建设
  • 做网站需要哪些准备cdn wordpress ip统计
  • 手机端怎么网站建设连山网站建设
  • 成都网站公司网站建设设计师做私单网站
  • 临湘建设局网站二级域名搜索
  • 网站开发便宜上上海网站设计建设
  • 网站微信登录怎么做的云空间网站
  • 音乐网站 模板卖游戏辅助的网站怎么建设
  • 自己做视频网站有点卡阿里云主机 多个网站
  • 上海网站制作网站建设建筑公司发展愿景
  • 设计网站公司只找亿企邦微信运营商
  • 网站本地环境搭建网址搜索域名查询
  • 怎么网站设计.net网站如何优化