選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

矩陣

矩陣是數字的集合。

矩陣是一個矩形陣列

矩陣按排列。

矩陣維度

這個矩陣1行和3

C =  
2 5 3

矩陣的維度是 (1x3)。


這個矩陣有2行和3

C =  
2 5 3
4 7 1

矩陣的維度是 (2x3)。


方陣

方陣是行數和列數相等的矩陣。

n×n 矩陣稱為 n 階方陣。

2x2 矩陣(2 階方陣)

C =  
1 2
3 4

4x4 矩陣(4 階方陣)

C =  
1 -2 3 4
5 6 -7 8
4 3 2 -1
8 7 6 -5

對角矩陣

對角矩陣的對角線元素有值,其餘元素為

C =   
2 0 0
0 5 0
0 0 3


標量矩陣

標量矩陣的對角線元素相等,其餘元素為

C =   
3 0 0 0
0 3 0 0
0 0 3 0
0 0 0 3

單位矩陣

單位矩陣的對角線為1,其餘為0

這是 1 的矩陣等價物。符號是I

I =   
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

將任何矩陣乘以單位矩陣,結果等於原矩陣。


零矩陣

零矩陣(空矩陣)只有零。

C =   
0 0 0
0 0 0

相等矩陣

如果每個元素都對應,則矩陣相等

2 5 3
4 7 1
  =  
2 5 3
4 7 1

負矩陣

矩陣的負數很容易理解

  -  
-2 5 3
-4 7 1
  =  
2 -5 -3
4 -7 -1

JavaScript 中的線性代數

線上性代數中,最簡單的數學物件是標量

const scalar = 1;

另一個簡單的數學物件是陣列

const array = [ 1, 2, 3 ];

矩陣是二維陣列

const matrix = [ [1,2],[3,4],[5,6] ];

向量可以寫成只有一列的矩陣

const vector = [ [1],[2],[3] ];

向量也可以寫成陣列

const vector = [ 1, 2, 3 ];

JavaScript 矩陣運算

在 JavaScript 中進行矩陣運算很容易變成混亂的迴圈。

使用 JavaScript 庫可以為您省去很多麻煩。

最常用的用於矩陣運算的庫之一叫做math.js

您可以用一行程式碼將其新增到您的網頁中

使用 math.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.3.2/math.js"></script>

矩陣相加

如果兩個矩陣的維度相同,我們可以將它們相加

2 5 3
4 7 1
 + 
4 7 1
2 5 3
 = 
6 12 4
6 12 4

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// 矩陣加法
const matrixAdd = math.add(mA, mB);

// 結果 [ [2, 1], [5, 2], [8, 3] ]

自己動手試一試 »


矩陣相減

如果兩個矩陣的維度相同,我們可以將它們相減

2 5 3
4 7 1
 - 
4 7 1
2 5 3
 = 
-2 -2 2
2 2 -2

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);
const mB = math.matrix([[1,-1], [2,-2], [3,-3]]);

// 矩陣減法
const matrixSub = math.subtract(mA, mB);

// 結果 [ [0, 3], [1, 6], [2, 9] ]

自己動手試一試 »

要相加或相減矩陣,它們必須具有相同的維度。


標量乘法

雖然行和列中的數字稱為矩陣,但單個數字稱為標量

將矩陣與標量相乘很容易。只需將矩陣中的每個數字乘以標量

2 5 3
4 7 1
   x 2 =   
4 10 6
8 14 2

示例

const mA = math.matrix([[1, 2], [3, 4], [5, 6]]);

// 矩陣乘法
const matrixMult = math.multiply(2, mA);

// 結果 [ [2, 4], [6, 8], [10, 12] ]

自己動手試一試 »

示例

const mA = math.matrix([[0, 2], [4, 6], [8, 10]]);

// 矩陣除法
const matrixDiv = math.divide(mA, 2);

// 結果 [ [0, 1], [2, 3], [4, 5] ]

自己動手試一試 »


轉置矩陣

轉置矩陣意味著替換行與列。

交換行和列時,您會圍繞對角線旋轉矩陣。

A =   
1 2
3 4
    AT =  
1 3
2 4

矩陣乘法

矩陣乘法更加困難。

只有當矩陣 A 的數與矩陣 B 的數相同時,我們才能將兩個矩陣相乘。

然後,我們需要計算一個“點積”

我們需要將 A 的每一列的數字與 B 的每一行的數字相乘,然後將這些乘積相加

示例

const mA = math.matrix([1, 2, 3]);
const mB = math.matrix([[1, 4, 7], [2, 5, 8], [3, 6, 9]]);

// 矩陣乘法
const matrixMult = math.multiply(mA, mB);

// 結果 [14, 32, 50]

自己動手試一試 »

解釋

A B C
1 2 3
 x 
1 4 7
2 5 8
3 6 9
 = 
14 32 50

(1,2,3) * (1,2,3) = 1x1 + 2x2 + 3x3 =14
(1,2,3) * (4,5,6) = 1x4 + 2x5 + 3x6 =32
(1,2,3) * (7,8,9) = 1x7 + 2x8 + 3x9 =50

如果您知道如何進行矩陣乘法,就可以解決許多複雜的方程。

示例

你賣玫瑰。

  • 紅玫瑰每朵 3 美元
  • 白玫瑰每朵 4 美元
  • 黃玫瑰每朵 2 美元
  • 星期一您賣了 260 朵玫瑰
  • 星期二您賣了 200 朵玫瑰
  • 星期三您賣了 120 朵玫瑰

所有銷售額是多少?

Red Rose$3 White$4 Yellow$2
週一1208060
週二907040
週三604020

示例

const mA = math.matrix([3, 4, 2]);
const mB = math.matrix([[120, 90, 60], [80, 70, 40], [60, 40, 20]);

// 矩陣乘法
const matrixMult = math.multiply(mA, mB);

// 結果 [800, 630, 380]

自己動手試一試 »

解釋

A B
$3$4$2
 x 
120 90 60
80 70 40
60 40 20
 = 
$800 $630 $380
 = 
$1810

(3,4,2) * (120,80,60)= 3x120 + 4x80 + 2x60 = 800
(3,4,2) * (90,70,40)= 3x90 + 4x70 + 2x40 = 630
(3,4,2) * (60,40,20)= 3x60 + 4x40 + 2x20 = 380

矩陣分解

在 AI 中,您需要知道如何分解矩陣。

矩陣分解是線性代數中的一個關鍵工具,尤其是線上性最小二乘法中。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援