重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

質問したのですが、初心者すぎて何を言われているか分からないので、1部取り出しました。

和の二乗と二乗の和
この二つの和を求めたいです。
プログラム途中からで$X、$Y、$ndataは既に使われています。


my $X = $x[$ndata]
my $Y = $y[$ndata]

my $sg =0;
my $sg1 =0;
my $sg2 =0;

for($x; $x < $ndata;$x++;){
$sg1 = $sg1 + ($X)**2;
$sg2 = $sg2 + ($X);
}
$sg = $ndata * $sg1 - ($sg2)**2;

これが前に質問したものです。
http://oshiete1.goo.ne.jp/qa5603956.html

できれば間違っているところを直したプログラムを書いていただけると嬉しいです。それと前に質問した中で、他にも違うところがあったら直していただけると助かります。

A 回答 (4件)

え・・・っと


@xにいくつかの数値が入っていて、その和の二乗&二乗の和の合計を求めるのでしょうか?
最初の2行(行末の;が抜けてますよ)は削除して、$ndataの存在は忘れて、

foreach my $X (@x) {  #配列@xに含まれる各数値を$Xに代入して
$sg1 = $sg1 + $X ** 2;  #二乗の和
$sg2 = $sg2 + $X;  #和(後で二乗する)
}
$sg = $sg1 + $sg2 ** 2;  #二乗の和&和の二乗の合計

こういう感じではないかと推測します。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2010/02/10 23:45

> 間違っているところを直したプログラムを書いていただけると嬉しい


ということで、プログラムを作ることが目的ではなく最小二乗法を
使ってデータ処理をしたいのだと思いました。

「perl 最小二乗法」で検索すると利用可能なプログラムがすぐに
見つかりますよ。提示されたプログラムは似ているようで、
計算式が違っているような気がします。
    • good
    • 0
この回答へのお礼

そうですそうです!!

ありがとうございました

お礼日時:2010/02/10 23:46
    • good
    • 0
この回答へのお礼

これ見たんですけれど、よく分からなかったんですね・・・

ありがとうございました

お礼日時:2010/02/10 23:46

Perlの問題の前に、日本語の問題をクリアしましょう。



> 和の二乗と二乗の和
> この二つの和を求めたいです。

まず「和の二乗」とは「何と何の和、の二乗」を意味するのか。
次いで「二乗の和」とは「何の二乗と、何を足した和」であるのか。

また「この二つの和」の一方は、後者の「二乗の和」と
推測されますが、もう一方は何であるのか。

その辺りが全く不明です。

つまり何をしたいのかが分からないので、
貴殿の書いたコードが、貴殿の意図と違うのかどーかも判断できません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!