FC2ブログ

# ヤコビ法 Jacobi Method
# 引数 方程式 (\@Equations)
# 戻り値 ヤコビ法 (@JacobiMethod )
sub JACOBISEIDELMETHOD{
my ($Equations) = @_;
my @JacobiMethod = ();
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++){
my @PrevApproximation = @Approximation;

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] * $PrevApproximation[$k]);
}

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

# ヤコビ法 Jacobi Method
for(my $i = 0; $i <= $Column; $i++){
$JacobiMethod [$i] = $Approximation[$i];
}

return @JacobiMethod ;
}


参考URL
ヤコビ法 - Wikipedia

一言
収束判定の仕方がわからない
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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