基底變換是線性代數的基礎,藉由基底變換矩陣,我們可以在不同基底之間轉換向量的座標表示。線性對映則描述了向量空間之間的線性變換關係,其矩陣表示與所選基底密切相關。內積的概念則賦予向量空間幾何意義,可用於定義向量的長度、角度和正交性,並進一步應用於正交投影等重要概念。在函式空間中,內積的定義也得以推廣,例如計算函式之間的正交性。這些概念在機器學習、圖形學等領域都有廣泛應用,例如降維、特徵提取等。
線性代數中的基底變換與線性對映
基底變換是線性代數的核心概念之一,它允許我們在不同的基底之間轉換向量的座標表示。理解基底變換對於理解線性對映至關重要,因為線性對映的矩陣表示取決於所選的基底。本文將深入探討基底變換、線性對映及其相關的矩陣表示,並透過具體範例進行說明。
基底與基底變換
給定兩個基底 $B$ 和 $B’$,我們可以透過基底變換矩陣 $P$ 來實作兩個基底之間的座標轉換。基底變換矩陣 $P$ 的作用是將 $B’$ 基底下的座標轉換為 $B$ 基底下的座標。
範例:二維向量空間中的基底變換
假設 $B = {b_1, b_2}$ 和 $B’ = {b’_1, b’_2}$ 是 $\mathbb{R}^2$ 的兩個基底。我們可以計算基底變換矩陣 $P$,使得 $P$ 將 $B’$ 基底下的座標轉換為 $B$ 基底下的座標。
import numpy as np
# 定義基底 B 和 B'
b1 = np.array([1,0])
b2 = np.array([0,1])
b1_prime = np.array([1,1])
b2_prime = np.array([1, -1])
# 計算基底變換矩陣 P
P = np.column_stack((b1_prime, b2_prime))
print("基底變換矩陣 P:")
print(P)
內容解密:
此程式碼展示瞭如何計算基底變換矩陣 $P$。首先,我們定義了兩個基底 $B$ 和 $B’$。然後,透過將 $B’$ 的基向量作為列向量堆積疊成矩陣來計算 $P$。這個矩陣 $P$ 可以將 $B’$ 基底下的座標轉換為 $B$ 基底下的座標。
graph LR A[定義基底B和B'] --> B[計算基底變換矩陣P] B --> C[座標轉換]
圖表翻譯:
此圖示展示了基底變換的過程。首先定義兩個基底 $B$ 和 $B’$,然後計算基底變換矩陣 $P$,最後利用 $P$ 進行座標轉換。
線性對映與矩陣表示
線性對映 $\Phi: \mathbb{R}^2 \to \mathbb{R}^3$ 可以透過矩陣 $A_\Phi$ 來表示。給定基底 $B$ 和 $C$,分別是 $\mathbb{R}^2$ 和 $\mathbb{R}^3$ 的基底,我們可以計算 $A_\Phi$,使得 $A_\Phi$ 將 $B$ 基底下的座標轉換為 $C$ 基底下的座標。
範例:線性對映的矩陣表示
假設 $\Phi(b_1) = c_1 + c_2$ 和 $\Phi(b_2) = c_2 + c_3$,其中 $B = {b_1, b_2}$ 和 $C = {c_1, c_2, c_3}$ 分別是 $\mathbb{R}^2$ 和 $\mathbb{R}^3$ 的基底。我們可以計算線性對映 $\Phi$ 的矩陣表示 $A_\Phi$。
import numpy as np
# 定義基底 B 和 C
b1 = np.array([1,0])
b2 = np.array([0,1])
c1 = np.array([1,0,0])
c2 = np.array([0,1,0])
c3 = np.array([0,0,1])
# 定義線性對映 Phi
def phi(b):
if np.array_equal(b, b1):
return c1 + c2
elif np.array_equal(b, b2):
return c2 + c3
# 計算線性對映的矩陣表示 A_Phi
A_Phi = np.column_stack((phi(b1), phi(b2)))
print("線性對映的矩陣表示 A_Phi:")
print(A_Phi)
內容解密:
此程式碼展示瞭如何計算線性對映 $\Phi$ 的矩陣表示 $A_\Phi$。首先,我們定義了線性對映 $\Phi$ 在基底 $B$ 下的作用,然後將 $\Phi(b_1)$ 和 $\Phi(b_2)$ 作為列向量堆積疊成矩陣來計算 $A_\Phi$。這個矩陣 $A_\Phi$ 可以將 $B$ 基底下的座標轉換為 $C$ 基底下的座標。
graph LR A[定義線性對映Phi] --> B[計算矩陣表示A_Phi] B --> C[座標轉換]
圖表翻譯:
此圖示展示了線性對映 $\Phi$ 的矩陣表示的計算過程。首先定義線性對映 $\Phi$,然後計算其矩陣表示 $A_\Phi$,最後利用 $A_\Phi$ 進行座標轉換。
內積與其相關應用
內積是線性代數中的一個重要概念,尤其是在向量空間的研究中扮演關鍵角色。內積不僅可以幫助我們理解向量的幾何特性,還可以用於定義向量的長度和向量之間的距離。
對稱性和正定性
在探討內積之前,我們需要了解兩個重要的性質:對稱性和正定性。一個雙線性對映 $\Omega : V \times V \to \mathbb{R}$ 如果滿足 $\Omega(x, y) = \Omega(y, x)$,則被稱為對稱的。此外,如果對於所有非零向量 $x$,$\Omega(x, x) > 0$ 且 $\Omega(0,0) = 0$,則 $\Omega$ 是正定的。
內積的定義
給定一個向量空間 $V$ 和一個雙線性對映 $\Omega : V \times V \to \mathbb{R}$,如果 $\Omega$ 是對稱且正定的,那麼 $\Omega$ 被稱為 $V$ 上的一個內積,通常記作 $\langle x, y \rangle$。具有內積的向量空間 $(V, \langle \cdot, \cdot \rangle)$ 被稱為內積空間或具有內積的向量空間。
import numpy as np
# 定義內積
def inner_product(x, y):
return np.dot(x, y)
# 示例用法
x = np.array([1,2])
y = np.array([3,4])
print("內積結果:", inner_product(x, y))
內容解密:
此程式碼展示瞭如何計算兩個向量的內積。內積是透過將兩個向量的對應元素相乘並求和來計算的。這個內積函式可以用於計算向量之間的相似度或定義向量的長度。
graph LR A[定義向量x和y] --> B[計算內積] B --> C[輸出內積結果]
圖表翻譯:
此圖示展示了內積的計算過程。首先定義兩個向量 $x$ 和 $y$,然後計算它們的內積,最後輸出內積結果。
解析幾何學中的度量、角度與正交性
在解析幾何學中,內積空間的概念是理解向量長度、向量間距離以及角度的基礎。本文將深入探討度量(metric)、角度(angle)以及正交性(orthogonality)的定義與應用,並結合具體例項進行說明。
度量(Metric)與向量間的距離
在向量空間 $V$ 中,度量 $d$ 是一種將兩個向量對映到實數的函式,定義為 $d : V \times V \rightarrow \mathbb{R}$,滿足以下條件:
- 正定性:$d(x, y) \geqslant 0$,且 $d(x, y) = 0$ 當且僅當 $x = y$。
- 對稱性:$d(x, y) = d(y, x)$。
- 三角不等式:$d(x, z) \leqslant d(x, y) + d(y, z)$。
值得注意的是,度量並不一定需要內積來定義,只要有範數(norm)即可定義度量。
正交補空間與超平面描述
在三維向量空間中,平面 $U$ 可以透過描述其正交補空間 $U^\perp$ 來表示。單位向量 $w$ 與平面 $U$ 正交,構成 $U^\perp$ 的基底向量。根據正交分解定理,任意向量 $x$ 可唯一分解為: $$ x = \sum_{m=1}^{M} \lambda_m b_m + \sum_{j=1}^{D-M} \psi_j b^\perp_j ,, $$ 其中 $(b_1, \ldots, b_M)$ 是 $U$ 的一組基底,而 $(b^\perp_1, \ldots, b^\perp_{D-M})$ 則是 $U^\perp$ 的基底。
正交補空間的應用
正交補空間的概念可用於描述高維空間中的超平面。對於給定的子空間 $U$,其正交補空間 $U^\perp$ 提供了另一種描述 $U$ 的方式。在三維空間中,與平面 $U$ 正交的向量 $w$ 稱為該平面的法向量。所有與 $w$ 正交的向量均位於平面 $U$ 上。
函式的內積
內積的概念可以推廣至函式空間。對於兩個函式 $u: \mathbb{R} \to \mathbb{R}$ 和 $v: \mathbb{R} \to \mathbb{R}$,其內積定義為: $$ \langle u, v \rangle := \int_a^b u(x)v(x) , dx ,, $$ 其中 $a$ 和 $b$ 為有限的積分上下限。當該內積為0時,稱 $u$ 和 $v$ 為正交函式。
例項分析
考慮 $u(x) = \sin(x)$ 和 $v(x) = \cos(x)$,其乘積 $f(x) = \sin(x)\cos(x)$ 為奇函式。因此,在區間 $[-\pi, \pi]$ 上的積分為0,表明 $\sin(x)$ 和 $\cos(x)$ 是正交的。
import numpy as np
from scipy.integrate import quad
# 定義函式 u(x) 和 v(x)
def u(x):
return np.sin(x)
def v(x):
return np.cos(x)
# 計算內積
def inner_product_u_v(a, b):
integrand = lambda x: u(x) * v(x)
result, _ = quad(integrand, a, b)
return result
# 示例用法
a = -np.pi
b = np.pi
print("內積結果:", inner_product_u_v(a, b))
內容解密:
此程式碼展示瞭如何計算兩個函式 $u(x) = \sin(x)$ 和 $v(x) = \cos(x)$ 在區間 $[-\pi, \pi]$ 上的內積。透過數值積分方法計算內積,結果表明 $\sin(x)$ 和 $\cos(x)$ 在該區間上是正交的。
graph LR A[定義函式u(x)和v(x)] --> B[計算內積] B --> C[輸出內積結果]
圖表翻譯:
此圖示展示了計算函式內積的過程。首先定義兩個函式 $u(x)$ 和 $v(x)$,然後計算它們的內積,最後輸出內積結果。
正交投影
正交投影是線性變換的一種重要形式,在圖形學、編碼理論、統計學和機器學習等領域有廣泛應用。在處理高維資料時,正交投影可以將資料投影到低維空間,同時最大限度地保留原始資料的資訊。
投影的定義
給定向量空間 $V$ 及其子空間 $U$,線性對映 $\pi: V \to U$ 稱為投影,若其滿足 $\pi^2 = \pi \circ \pi = \pi$。投影矩陣 $P_\pi$ 滿足 $P_\pi^2 = P_\pi$ 的性質。
一維子空間上的投影
考慮一維子空間 $U \subseteq \mathbb{R}^n$,其基底向量為 $b$。對於任意向量 $x \in \mathbb{R}^n$,其在 $U$ 上的正交投影 $\pi_U(x)$ 是 $U$ 中與 $x$ 最接近的向量。利用幾何關係可得:
import numpy as np
def orthogonal_projection(x, b):
"""計算向量x在由b張成的一維子空間上的正交投影"""
b_normalized = b / np.linalg.norm(b) # 標準化基底向量
projection = np.dot(x, b_normalized) * b_normalized
return projection
# 示例用法
x = np.array([3,4])
b = np.array([1,0])
projection = orthogonal_projection(x, b)
print("正交投影結果:", projection)
內容解密:
此程式碼實作了向量 $x$ 在由向量 $b$ 張成的一維子空間上的正交投影。首先對基底向量 $b$ 進行標準化處理,然後計算 $x$ 在 $b$ 方向上的投影,最終傳回投影向量。該實作利用了向量內積運算,具有良好的數值穩定性。
graph TD A[輸入向量x與基底b] --> B[標準化基底向量] B --> C[計算x在b上的投影] C --> D[傳回投影結果]
圖表翻譯:
此圖示描述了正交投影的計算流程。首先輸入待投影向量 $x$ 和基底向量 $b$,接著對 $b$ 進行標準化處理。然後計算 $x$ 在標準化後的 $b$ 上的投影,最後傳回計算結果。該流程清晰地展示了正交投影的實作步驟。
從技術架構視角來看,基底變換和線性對映是線性代數的根本,它們的矩陣表示是理解與應用線性變換的關鍵。本文深入淺出地解釋了基底變換矩陣的建構,以及如何利用它實作不同基底下的座標轉換。更進一步,文章闡述了線性對映的矩陣表示,並以程式碼範例展示瞭如何計算。然而,僅僅理解矩陣運算是不夠的,必須掌握其背後的幾何意義,才能真正理解線性變換的精髓。文章也探討了內積、度量、正交性等核心概念,並將其延伸至函式空間,展現了線性代數的廣泛應用性。對於想深入學習線性代數的讀者,理解這些概念至關重要。玄貓認為,熟練掌握基底變換和線性對映,能有效提升解決複雜線性問題的能力,並為進一步學習機器學習、電腦圖學等領域奠定堅實的數學基礎。對於工程師而言,建議深入研究不同線性變換的特性及其在實際問題中的應用,例如降維、資料壓縮、影像處理等。未來,隨著量子計算的發展,線性代數的重要性將更加凸顯,值得持續關注其在量子演算法和量子機器學習中的應用。