導讀:有些錯,不是你算錯
工程實務常遇到:
· 同一公式
· 同一程式· 不同電腦
· 結果差很多
問題常常不在程式,而在:
👉 問題本身「體質很差」
這個體質指標:
條件數(Condition Number)
一、條件數在量什麼?
條件數衡量:
👉 輸入誤差被放大到輸出誤差的倍率
二、基本定義(矩陣)
cond(A) = ||A|| · ||A⁻¹||
通常使用 2-norm:
cond₂(A) = σₘₐₓ / σₘᵢₙ
其中 σ 為奇異值。
三、工程直覺
cond ≈ 1 → 健康問題
cond 很大 → 病危問題
四、幾何圖像
矩陣把圓形拉成橢圓:
長軸 / 短軸 = 條件數
五、為什麼條件數大會痛苦?
小小輸入誤差 ε
輸出誤差 ≈ cond · ε
六、與 SVD 的關係
A = U Σ Vᵀ
cond₂(A) = σₘₐₓ / σₘᵢₙ
最直接。
七、什麼時候容易出現高條件數?
· 欄向量幾乎線性相關
· 尺度差很大
· 模型設計不良
八、工程影響
· 解線性方程
· 最小平方法
· 反矩陣計算
· 機器學習
九、改善方法
· 正規化
· 重新縮放
· 正則化(regularization)
· 改用 SVD
十、一句話記住
條件數描述問題有多容易被誤差摧毀
🧮 實務演練題:計算條件數
給定:
A =
⎡ 1 0 ⎤
⎣ 0 0.01 ⎦
求 cond₂(A),並解釋意義
解析:
AᵀA =
⎡ 1 0 ⎤
⎣ 0 0.0001 ⎦
其特徵值:
λ₁ = 1
λ₂ = 0.0001
奇異值:
σ₁ = 1
σ₂ = 0.01
cond₂(A) = 1 / 0.01 = 100
🎯 工程意義
✔ 輸入誤差會被放大約 100 倍
✔ 問題數值上非常敏感
🔑 收斂
有些問題不是難,而是先天有病












