![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_05.png?5a7ff87)
最小二乗法のプログラムを作ってみたのですが、
これで動きますか??
データを読みとった後から、つまり途中からなのですが・・・
$ndata、$x,$yはデータから読み取った値でこの前で使われています。
#!/usr/bin/perl
# test1.pl
use strict; use warnings;
my $X = $x[$ndata]
my $Y = $y[$ndata]
my $sg =0;
my $sg1 =0;
my $sg2 =0;
for($i; $i < $ndata;$i++;){
$sg1 = $sg1 + ($X)**2;
$sg2 = $sg2 + ($X);
}
$sg = $ndata * $sg1 - ($sg2)**2;
my $a =0;
my $a1 =0;
my $a2 =0;
my $a3 =0;
my $a4 =0;
for($i; $i < $ndata;$i++;){
$a1 = $a1 + ($X)**2;
$a2 = $a2 + ($Y);
$a3 = $a3 + ($X);
$a4 = $a4 + ($X)*($Y);
}
$a = ( $a1*$a2 - $a3*$a4 ) / $sg
my $b =0;
my $b1 =0;
my $b2 =0;
my $b3 =0;
my $b4 =0;
for($i; $i < $ndata;$i++;){
$b1 = $b1 + ($X)*($Y);
$b2 = $b2 + ($X);
$b3 = $b3 + ($Y);
}
$b = ( $ndata*$b1 - $b2*$b3) / $sg
$Y = $a + ($b * $X)
my $sgy =0;
my $sgy1 =0;
my $sgy2 =0;
for($i;$i < $ndata;$i++){
$sgy2 = $sgy2 + ($Y-$a - $b*$X)**2
}
$sgy1 =$sgy2 /($ndata - 2)
$sgy = sqrt( $sgy1 );
my $sga =0;
my $sgb =0;
$sga = $sgy * sqrt( $a1 / $sg )
$sgb = $sgy * sqrt($ndata / $sg )
print "パラメータA=$a,パラメータB=$b./n";
print "Aの誤差は$sga、Bの誤差は$sgb./n";
No.2ベストアンサー
- 回答日時:
え, えぇと.... Perl 以外でプログラムを作った経験はありますか?
for($X; $X < $ndata;$X++;){
$sg1 = $sg1 + ($X)**2;
$sg2 = $sg2 + ($X);
}
がどのように動くか, 理解できていますか?
ありません。。。
ちなみにperlも始めたばかりです。
$xが2乗されて次々に足されるのが$sg1で
$Xがそのまま足されていくのが$sg2
のつもりで作っているのですが。。。
No.1
- 回答日時:
や, いくらなんでもこれではだめ. 例えば最初の
for($i; $i < $ndata;$i++;){
$sg1 = $sg1 + ($X)**2;
$sg2 = $sg2 + ($X);
}
の部分だけでも
・$i が初期化されていない
・$X が変化していない
という問題がある.
あっ確かに・・・
$xが変化していないというのはわかります。
$iが初期化されていないというのは
my $i=0;
と最初に書けばよいのでしょうか??(iを変化させたい場合)
for($X; $X < $ndata;$X++;){
$sg1 = $sg1 + ($X)**2;
$sg2 = $sg2 + ($X);
}
と直せばよいのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- フランス語 下記のフランス語の英訳は文法的に合っていますか? J’ai donné à mon père le 1 2023/06/25 19:21
- 留学・ワーキングホリデー どちらが正しいですか? 1 2023/05/13 00:57
- 英語 和訳を教えてください 4 2022/12/07 08:25
- 英語 和訳を教えてください 4 2022/06/16 12:01
- 英語 【 論・表 英訳 】 問題 次の文を英訳せよ。ただし、その文は単独であり、前後に文はないとする。 父 1 2022/07/25 17:03
- 英語 「名詞 of 名詞」において、どちらも同一人物が主体となったり所有する名詞の適切な各限定詞について 2 2022/08/18 11:32
- YouTube youtubeからの著作権メールについて 2 2023/02/14 16:12
- 英語 英文について教えて下さい。 2 2022/06/14 10:37
- 英語 a lot of my homeworkはありか? 5 2022/10/13 16:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Net::Telnetでタイムアウト時間...
-
Perlで自分自身の関数名を知る...
-
Rubyのgets関数について
-
Perlで複数の値を返す良い方法...
-
Pythonのマルチプロセスでの並...
-
プロトタイプ宣言のワーニング...
-
シェルでawkを使い行数を取り出...
-
LISPで連想配列の操作?
-
作業域が消える(ように見える)
-
検索機能の作成で困っています
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
セレクトメニューで2つの項目...
-
Python - Excel で Webからデー...
-
formで特定のinputを送信しない...
-
16進の10進変換について
-
構造体の各データの表示につい...
-
文字の横にプルダウンを表示さ...
-
VBA他のブックから値のみ貼付す...
-
pythonで演算子を変数に代入す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CLispのloop内の挙動について
-
Perlで複数の値を返す良い方法...
-
プロトタイプ宣言のワーニング...
-
ハノイの塔の問題で困っており...
-
dieやPerl自体でエラーが発生し...
-
Net::Telnetでタイムアウト時間...
-
print <<"_HTML_"の中でサブル...
-
Net::SSH::Perlについて
-
Win98+PWS4.0でPERLが動作しま...
-
Rubyのgets関数について
-
Perlで use strict して our変数
-
[perl] next と return 同じ意...
-
Perlで自分自身の関数名を知る...
-
Pythonのプログラミングの質問...
-
icmp socket error
-
threads を使ったマルチスレッ...
-
変数に値を代入するのに、まずu...
-
これは動いてくれますか??
-
HASH(0xほげほげ)
-
10進数→2進数
おすすめ情報