日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab ilu函数,不完全 LU 分解

發布時間:2023/12/14 循环神经网络 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab ilu函数,不完全 LU 分解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ilu

不完全 LU 分解

語法

ilu(A,setup)

[L,U] = ilu(A,setup)

[L,U,P] = ilu(A,setup)

說明

ilu 生成一個單位下三角矩陣、一個上三角矩陣和一個置換矩陣。

ilu(A,setup) 計算 A 的不完全 LU 分解。setup 是一個最多包含五個設置選項的輸入結構體。這些字段必須嚴格按照下表所示方法命名。您可以在此結構體中包含任意數目的字段,并以任意順序定義這些字段。忽略任何其他字段。

字段名稱說明type分解的類型。type 的值包括:

'nofill'(默認) - 執行具有 0 填充級別的 ILU 分解(稱為 ILU(0))。如果將 type 設置為 'nofill',則僅使用 milu 設置選項;所有其他字段都將被忽略。

'crout' - 執行 ILU 分解的 Crout 版本,稱為 ILUC。如果將 type 設置為 'crout',則僅使用 droptol 和 milu 設置選項;所有其他字段都將被忽略。

'ilutp' - 執行帶閾值和選擇主元的 ILU 分解。

如果未指定 type,則會執行 0 填充級別的 ILU 分解。在將 type 設置為 'ilutp' 的情況下,僅會執行選擇主元的分解。

droptol不完全 LU 分解的調降容差。droptol 是一個非負標量。默認值為 0,這會生成完全的 LU 分解。

U 的非零項滿足

abs(U(i,j)) >= droptol*norm(A(:,j)),

但對角線元除外(無論是否滿足標準,系統都保留了這些元)。在使用主元調整 L 的元之前,將根據局部調降容差檢驗這些元,這同樣適用于 L 中的非零值

abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j).

milu修改后的不完全 LU 分解。milu 的值包括:

'row' - 生成行總和修正的不完全 LU 分解。新構成的因子列中的條目從上三角因子 U 的對角線中減去,并保留列總和。也即 A*e =

L*U*e,其中 e 是由 1 組成的向量。

'col' - 生成列總和修正的不完全 LU 分解。新構成的因子列中的條目從上三角因子 U 的對角線中減去,并保留列總和。即 e'*A =

e'*L*U。

'off'(默認值)- 不生成修正的不完全 LU 分解。

udiag如果 udiag 為 1,上三角因子的對角線上的任何零都將替換為局部調降容差。默認值為 0。

threshPivot threshold between 0(強制對角線數據透視)和 1 之間的主元閾值(默認值),該閾值始終選擇數據透視表中的列的最大量值條目。

ilu(A,setup) 返回 L+U-speye(size(A)),其中 L 為單位下三角矩陣,U 為上三角矩陣。

[L,U] = ilu(A,setup) 分別在 L 和 U 中返回單位下三角矩陣和上三角矩陣。

[L,U,P] = ilu(A,setup) 返回 L 中的單位下三角矩陣、U 中的上三角矩陣和 P 中的置換矩陣。

局限性

ilu 僅適用于稀疏方陣。

示例

從一個稀疏矩陣開始,并計算 LU 分解。

A = gallery('neumann', 1600) + speye(1600);

setup.type = 'crout';

setup.milu = 'row';

setup.droptol = 0.1;

[L,U] = ilu(A,setup);

e = ones(size(A,2),1);

norm(A*e-L*U*e)

ans =

1.4251e-014

此示例顯示 A 和 L*U(其中 L 和 U 由修正的 Crout ILU 給出)具有相同的行總和。

從一個稀疏矩陣開始,并計算 LU 分解。

A = gallery('neumann', 1600) + speye(1600);

setup.type = 'nofill';

nnz(A)

ans =

7840

nnz(lu(A))

ans =

126478

nnz(ilu(A,setup))

ans =

7840

此示例顯示 A 具有 7840 個非零值,完全 LU 分解具有 126478 個非零值,不完全 LU 分解(采用 0 填充級別)具有 7840 個非零值,數量與 A 的數量相同。

提示

這些不完全分解可很好地用作通過 BICG(雙共軛梯度)、GMRES(廣義最小殘差法)等迭代方法求解的線性方程組的預條件子。

參考

[1] Saad, Yousef, Iterative Methods

for Sparse Linear Systems, PWS Publishing

Company, 1996, Chapter 10 - Preconditioning

Techniques.

擴展功能

分布式數組

使用 Parallel Computing Toolbox? 在群集的組合內存中對大型數組進行分區。

用法說明和限制:

如果在結構體數組 setup 中包含字段 type,則必須將其設置為 'nofill'。

總結

以上是生活随笔為你收集整理的matlab ilu函数,不完全 LU 分解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。