FC2ブログ

# ガウス・ザイデル法 Gauss-Seidel Method
# 引数 方程式 (\@Equations)
# 戻り値 ガウス・ザイデル法 (@GaussSeidelMethod)
sub GAUSSSEIDELMETHOD{
my ($Equations) = @_;
my @GaussSeidelMethod = ();
my @Approximation = ();
my $Column = $#$Equations;
my $Row = $#{$$Equations[0]};
my $Limit = $Column * 100;

# 配列数の確認
for(my $i = 1; $i <= $Column; $i++){
if($Row != $#{$$Equations[$i]}){
return 0;
}
}
if($Column != ($Row - 1)){
return 0;
}

# 近似解の初期値
for(my $i = 0; $i <= $Column; $i++){
$Approximation[$i] = 0;
}

# 計算
for(my $i = 0; $i <= $Limit; $i++){
for(my $j = 0; $j <= $Column; $j++){
my $sum = $$Equations[$j][$Row];

# $Column = ($Row - 1);
for(my $k = 0; $k <= $Column; $k++){
next if($j == $k);

$sum = $sum - ($$Equations[$j][$k] * $Approximation[$k]);
}

# 近似解
$Approximation[$j] = $sum / $$Equations[$j][$j];
}
}

# ガウス・ザイデル法 Gauss-Seidel Method
for(my $i = 0; $i <= $Column; $i++){
$GaussSeidelMethod[$i] = $Approximation[$i];
}

return @GaussSeidelMethod;
}


参考URL
ガウス=ザイデル法 - Wikipedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS