算法介紹
矩陣求逆在程序中很常見,主要應用于求Billboard矩陣。按照定義的計算方法乘法運算,嚴重影響了性能。在需要大量Billboard矩陣運算時,矩陣求逆的優化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。
高斯-約旦法(全選主元)求逆的步驟如下:
首先,對于 k 從 0 到 n - 1 作如下幾步:
從第 k 行、第 k 列開始的右下角子陣中選取絕對值最大的元素,并記住次元素所在的行號和列號,在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。
m(k, k) = 1 / m(k, k)
m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k
m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k
m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k
最后,根據在全選主元過程中所記錄的行、列交換的信息進行恢復,恢復的原則如下:在全選主元過程中,先交換的行(列)后進行恢復;原來的行(列)交換用列(行)交換來恢復。
標簽:
算法
矩陣求逆
程序
上傳時間:
2015-04-09
上傳用戶:wang5829
提供一個人工免疫算法源程序,其算法過程包括:
1.設置各參數
2.隨機產生初始群體——pop=initpop(popsize,chromlength)
3.故障類型編碼,每一行為一種!code(1,:),正常;code(2,:),50%;code(3,:),150%。實際故障測得數據編碼,這里Unnoralcode,188%
4.開始迭代(M次):
1)計算目標函數值:歐氏距離[objvalue]=calobjvalue(pop,i)
2)計算群體中每個個體的適應度fitvalue=calfitvalue(objvalue)
3)選擇newpop=selection(pop,fitvalue) objvalue=calobjvalue(newpop,i) %
交叉newpop=crossover(newpop,pc,k) objvalue=calobjvalue(newpop,i) %
變異newpop=mutation(newpop,pm) objvalue=calobjvalue(newpop,i) %
5.求出群體中適應值最大的個體及其適應值
6.迭代停止判斷。
標簽:
人工免疫
算法
源程序
上傳時間:
2014-01-01
上傳用戶:trepb001