Processing math: 100%

熱門文章

2024年7月8日 星期一

克希荷夫定律與矩陣運算

作者:王一哲
日期:2024年7月8日



原理


當電路上只有電池與電阻器,但又不是單純的串聯、並聯電路時,可以利用克希荷夫定律 (Kirchhoff's circuit laws) 求所有的分支電流。克希荷夫定律有兩個定則
  1. 節點定則:對於電路上的某個節點而言,流入、流出的電流量值相等,實際上就是電荷守恆
  2. 迴路定則:對於電路上的某個迴路而言,繞一圈回到出發點時電位相等,實際上就是能量守恆
下圖是 WikiPedia 克希荷夫定律英文版條目的例子

由圖中右方的節點可得 i1=i2+i3 由上方的迴路可得 ε1i1R1i2R2=0 由下方的迴路可得 i3R3ε2ε1+i2R2=0 整理以上3式可得 {i1i2i3=0i1R1i2R2=ε1i2R2i3R3=ε1+ε2  {1i1+(1)i2+(1)i3=0R1i1+(R2)i2+0i3=ε10i1+R2i2+(R3)i3=ε1+ε2 如果轉換成矩陣型式 [111R1R200R2R3][i1i2i3]=[0ε1ε1+ε2] 假設代入的數值分別為 R1=100 Ω, R2=200 Ω, R3=300 Ω, ε1=3 V, ε2=4 V 電流分別為 i1=11100 A, i2=4275 A, i3=3220 A

2024年7月7日 星期日

使用 Python 及 C++ 計算矩陣乘法、反矩陣

作者:王一哲
日期:2024年7月7日



前言


矩陣乘法及反矩陣的運算會出現在高中數學教材之中,同時也可以運用在物理課程之中,例如克希荷夫定律求分支電流。我之前都是直接用 NumPy 處理,為了更了解運算的過程,我再花了一些時間研究不使用 NumPy 的寫法。

矩陣乘法


運算原則


矩陣橫的部分為列 (row)、直的部分為欄 (column),如果某個矩陣共有 m 列、n 欄,則這個矩陣的維度 (dimension)m×n。假設 A 矩陣的維度為 m×nB 矩陣的維度為 n×p,則兩個矩陣相乘 AB 的維度為 m×p。如果兩個矩陣要相乘,第一個矩陣的欄與第二個矩陣的列數量必須相等。需要特別注意,矩陣乘法沒有交換性。 假設矩陣 A=[a0,0a0,1a0,2a1,0a1,1a1,2]=[A1A2] B=[b0,0b0,1b0,2b1,0b1,1b1,2]=[B1B2] 相乘的結果 AB=[a0,0b0,0+a0,1b1,0+a0,0b0,1+a0,1b1,1+a1,0b0,0+a1,1b1,0+a1,0b1,1+a0,1b1,1+]=A1B1+A2B2+