劉雄峰,姚思遠(yuǎn)
(三峽大學(xué)電氣與新能源學(xué)院,湖北宜昌,443002)
在電路課程中經(jīng)常涉及到線性方程組的求解,具體的方法有精確法和迭代法,精確法求解不需要采取近似舍入,而是采用初等變換方法求出方程組的解;迭代法則是通過有限次的迭代,在允許的精度范圍內(nèi)求解方程組的近似解,精度要求設(shè)定越高,求解值越趨近與真實值。
MATLAB是美國mathworks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分;MATLAB具有高效的數(shù)值計算及符號計算功能,能使用戶從繁雜的數(shù)學(xué)運(yùn)算分析中解脫出來。
迭代法也稱為轉(zhuǎn)輾法,是一種不斷用變量舊值遞推新值的過程,迭代算法是用計算機(jī)解決數(shù)學(xué)問題的一種基本方法,它利用計算機(jī)運(yùn)算速度快、適合做重復(fù)性操作的特點(diǎn),讓計算機(jī)對一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令或步驟時,都將從變量的原值推出它的一個新值[1]。
設(shè)有線性方程組Ax=b,其中
選取x0作為方程的初始近似解,以之迭代出一個方程組近似解收斂數(shù)組(xk),k≥0。[2]即可將式(1)變?yōu)椋?/p>
根據(jù)初始近似解x0,通過如下的迭代過程可以產(chǎn)生迭代根數(shù)組。
Pxk+1=Qxk+b,k=0,1,...,當(dāng)‖P-Q‖<0時數(shù)組收斂。
線性方程組的解滿足:
將矩陣A作標(biāo)準(zhǔn)分解可得到:A=D+L+U
其中,D=diag(a11,a22,...,amm)
此時可將式(1)變?yōu)椋?/p>
此時,應(yīng)用雅克比迭代法可以得到:
當(dāng)應(yīng)用高斯-賽德爾迭代法可得:
式中 :i=1,...,m;k=1,2,...
計算xi與k-1次迭代值的加權(quán)平均ω作為第k次的迭代值,即:
上式也可整理成:
其中ω稱為松弛因子,要求0<ω<2。當(dāng)ω>1時,上式稱為逐次超松弛迭代法;當(dāng)ω=1時,上式即為高斯-賽德爾迭代法;當(dāng)0<ω<1時,上式稱為低松弛迭代法[2]。
如圖1所示的電路圖中,已知Ue1=8 V,Ue2=4 V,Ue3=2 V,R1=R2=R4=1 Ω,R3=3 Ω,R5=2 Ω,R6=7Ω,利用迭代法求解Il1Il2Il3。
圖1 電路圖
本文將針對該應(yīng)用案例使用MATLAB軟件實現(xiàn)雅克比迭代法、高斯-賽德爾迭代法和逐次超松弛迭代法在求解線性電路方程中的應(yīng)用[3],并對運(yùn)行結(jié)果進(jìn)行分析。(計算精度控制在10-5)
根據(jù)電路等效分析可得:
根據(jù)戴維南定理可得:
代入數(shù)值:
上述方程組對應(yīng)于(1)式中的A、b矩陣:
Step1:編寫雅克比迭代法的程序
Step2:編寫驗證程序
Step3:運(yùn)行驗證程序jacobi.m,得到在10-5精度范圍內(nèi)的Il1Il2Il3值和計算機(jī)迭代次數(shù)如表1所示。
表 1
Step1:編寫高斯-賽德爾迭代法的程序[4]
Step2:編寫驗證程序
Step3:運(yùn)行驗證程序gauss.m,得到在10-5精度范圍內(nèi)的Il1Il2Il3值和計算機(jī)迭代次數(shù)如表2所示。
表2
Step1:編寫逐次超松弛迭代法的程序
Step2:編寫驗證程序
Step3:運(yùn)行驗證程序sor.m,得到在10-5精度范圍內(nèi)的Il1Il2Il3值和計算機(jī)迭代次數(shù)如表3所示。
表3
說明:這里的最佳松弛因子w為1.15,可以通過w取不同值進(jìn)行驗證。
由表1-表3可以看出三種迭代法解線性方程組的收斂速度,三種迭代法達(dá)到要求的精度(例題要求精度:10-5)所需的迭代次數(shù)如下表所示:
表4
分析表4可以得到逐次超松弛迭代法的收斂速度最快,高斯-賽德爾迭代法次之,雅克比迭代法最慢,通過上面的應(yīng)用案例可以知道,高斯-賽德爾迭代法可看作是雅克比迭代法的一種改進(jìn),逐次超松弛迭代法是高斯-賽德爾迭代法的一種修正。鑒于程序的可移植性,在求解更為復(fù)雜的電路時只需要修改程序里的數(shù)據(jù)參數(shù)即可,電路越復(fù)雜越能體現(xiàn)計算機(jī)的高效。
本文使用了MATLAB軟件使電路分析的計算過程得到了極大的簡化,同時也為廣大學(xué)生提供了一種新的解題思路,通過計算機(jī)高效的特點(diǎn),激發(fā)學(xué)生利用編程軟件學(xué)習(xí)專業(yè)知識的興趣,具有一定的參考價值。