主要内容

分享到配列使用した直接によるによる线路形式系の求解

分享到大声な,たとえば大规模な线路代问题などは适し适しますますなどは,分享。 一种 X = B. の形式の线路方程式を并列で求解求解方法MLDIVIDE.を使用して解くことができるため、コードを変更する必要はありません。

分享配列は,クライアントワークスペースのデータをマシンまたはクラスター并列プールにまたははしますますしワーカー配列のますをメモリ保存しますが,他のワーカーますがし配列のと通信にアクセスすることもます。分享到は,非非行,

直接法による线路方程程式求解では通讯,交货行程 一种 を分解して解を計算します。MLDIVIDE. 一种 の构造と, 一种 が非スパースまたはスパースのいずれであるかに応じて、一連の直接ソルバー メソッドから 1 つを選択します。

この例では,既知の厳密解 X を使用して, 斧头 = B. の形式の単纯単纯线路方程式系を方法を示します式式は,行程 一种 および列ベクトル B. によってによって定义されれ解 X ももベクトルです。この例の方程式系は,非非行列スパース行列使使し定义されいます。なコードは同じです。

关键词,反复ソルバーと分类配列の用法ををた例は,分享到配列使用した反复によるによる线路形式系の求解を参照してください。

非スパース行列系の求解

まず,分数行程 一种 をクライアントのメモリ内内の数一种としてとして定义して,この行列を关联分散式に渡して,同じ行列の分享バージョンad关键词关联分散式を使用品,matlabは既定のクラスター设定を使し,并列プールを自动的にし。

n = 1E3;a = randi(100,n,n);Adist =分布(a);

ここで,右辺のベクトル B. を定义できます。このこの例, B. 一种 の行和として定义ています。これこれ, 一种 X = B. の厳密解は X 精确的 = [ 1 1 ] T. の形式になります。

b = sum(a,2);bdist = sum(adist,2);

は分类配列配列を定理BDIST.最后データはにされのに,直接的な保存さをし求めた解と比较に,厳密解に,厳密解に,厳密解に,に,にに,にに,にに,にに,にに,厳密解に,にに,にに,ににに,ににに,ににたと比较にに,请しににににににににににににーににににににににににににににににににににににににににに

XEX = ONE(N,1);xdistex = sone(n,1,'分散式');

-MLDIVIDE.をを用して,方程式を求解できます.matlabでは,特殊子子\をを用してMLDIVIDE.を呼び出すことができます。MLDIVIDE.は分散配列を自動的にサポートするため、分散された方程式系を解くためにコードを変更する必要はありません。

解を计算した,得られた结果 X の各要素と X 精确的 のの各予测値ととのをチェックできでき

x = a \ b;err = abs(xex-x);xdist = adist \ bdist;errdist = abs(xdistex-xdist);图形子图(2,1,1)半机(Err,'o');标题(“具有完整矩阵的线性方程系统”);ylabel('绝对错误');Xlabel('x'中的元素);ylim([10e-17,10e-13])子图(2,1,2)半机(errdist,'o');标题(“具有分布式完整矩阵的线性方程系统”);ylabel('绝对错误');Xlabel('x'中的元素);ylim([10e-17,10e-13])

分别配列とクライアントに保存れれた配列のいずれでも X の计算结果と厳密な结果 X 精确的 ととの绝対误差はわずかわずかいずれの配列タイプでもも解のの配列でで同じ同じのの配列配列でで同じ

意思(错误)
ans = 1.6031e-13
意思(errdist)
ans = 1.2426e-13

スパース行列系の求解

分数配列はデータも格式できます。偏执行 一种 を作物成するに,斯普兰Speye.をスパース数行とスパース行列を直接生成します。 一种 が特異行列またはほぼ特異行列 (いずれも分解が困難) として作成されることを回避できます。

n = 1E3;密度= 0.2;a = sprand(n,n,密度)+ speye(n);Adist =分布(a);

右辺のベクトル B. 一种 の行の和として選択した場合、非スパース行列系の解と同じ形式の厳密解が得られます。

b = sum(a,2);bdist = sum(adist,2);XEX = ONE(N,1);xdistex = sone(n,1,'分散式');

非スパース行列のののとに,これでMLDIVIDE.をを用しし直接この形形系をををををををを値の误差たとでき予测の误差ををチェックでき

x = a \ b;err = abs(xex-x);xdist = adist \ bdist;errdist = abs(xdistex-xdist);图形子图(2,1,1)半机(Err,'o');标题(“客户端稀疏矩阵的线性方程系统”);ylabel('绝对错误');Xlabel('x'中的元素);ylim([10e-17,10e-13])子图(2,1,2)半机(errdist,'o');标题(“具有分布式稀疏矩阵的线性方程系统”);ylabel('绝对错误');Xlabel('x'中的元素);ylim([10e-17,10e-13])

非スパース行列系系ののとに,クライアント上の配列と分类

意思(错误)
ans = 1.6031e-13
意思(errdist)
ans = 1.2426e-13

计算が完了したら,并列并列プールを削除でき。关联GCP.は现出处于の并列プールオブジェクトをため,在のプールを削除でき。

删除(GCP('noicreate'));

解の精密のの

一种 が大規模でスパースな特定タイプの係数行列である場合、直接の分解よりも効率的に方程式系を解く方法があります。このような場合、反復法で線形方程式系を解く方がより効率的である可能性があります。反復法では一連の近似解が生成されて最終結果に収束します。反復法を使用し、大規模でスパースな入力行列を指定して線形方程式を解く方法の例は、分享到配列使用した反复によるによる线路形式系の求解を参照してください。

参考

||

关键词する