ページ 11

javascript 最小二乗法のコード

Posted: 2021年12月05日(日) 20:19
by コイキング
cscript のプログラミングで、最小二乗法により(x,x^2*e^x)をデータとして誤差が最小になるような一次式を求める下記のようなコードを書いたのですが、
これを実行しようとすると、(13,2){var S_0 =S_calc(xs,0); の場所で「オブジェクトを指定してください」とのエラーが出ます。。。なぜでしょうか。
手探りでやっているので、いろいろ間違えあると思います。

コード:

var xs=[];
var ys=[];

for(i=0;i<1000;i++){
xs[i] = 0.9+0.2*Math.random() ;
ys[i] = xs[i] * xs[i] * Math.exp(xs[i]) ;
}

least_square(xs,ys);

function least_square(xs,ys) {
var mat = [];
var S_0 = S_calc(xs,0);
var S_1 = S_calc(xs,1);
var S_2 = S_calc(xs,2);
var T_0 = T_calc(xs,ys,0);
var T_1 = T_calc(xs,ys,1);
mat[0] = [S_2,S_1,T_1];
mat[1] = [S_1,S_0,T_0];
return solve_linear_equations(mat);

Re: javascript 最小二乗法のコード

Posted: 2021年12月06日(月) 08:44
by みけCAT
呼び出そうとしている関数 S_calc が定義されていないためにエラーになっていると考えられます。
提示されたコードの後ろに

コード:

}

function S_calc(a,b) { return 0; }
function T_calc(a,b,c) { return 0; }
function solve_linear_equations(a) { return 0; }
を追加すると、エラーは出なくなりました。

Re: javascript 最小二乗法のコード

Posted: 2021年12月06日(月) 22:13
by コイキング
なんて初歩的なミス。。別のコードとごっちゃになってました。
他作ったのコードにこれと似たようなものを書いてました。。おかげさまで出来ました!ありがとうございます!