二次式に対する最小自乗法

多くの実験で得られるデータの関数は直線に近づくが必ずしも本当に一次ではない。
ほぼ一次に近い挙動はしばしば二次式によってうまく表される。

二次式に対する最小自乗法の手順は、三つの正規方程式があることを除けば一次式の
場合と同様である。具体的な式についてはテキストを参照してください。
10 ' Pprogram QLSQ
15 DATA 8
20 DATA 1.1,1.3, 2.3,2.2, 3.2,3.4, 4.1,3.9, 5.2,5.1, 6.1,6.0
25 DATA 7.1,7.2, 8!,8.1
30 ' 汎用の二次の最小自乗法 によるカーブフィッティング
40 DIM X(50), Y(50), Z(50)
50 S1=0 : S2=0 : S3=0 : S4=0 : S5=0 : S6=0 : S7=0 : S8=0
60 READ N : ' データの対の数
70 FOR I=1 TO N
80 READ X(I),Y(I)
90 S1=S1+X(I)
100 S2=S2+Y(I)
110 S3=S3+X(I)^2
120 S4=S4+X(I)^3
130 S5=S5+X(I)^4
140 S6=S6+X(I)*Y(I)
150 S7=S7+X(I)^2*Y(I)
160 NEXT I
170 D=N*(S3*S5-S4^2)-S1*(S1*S5-S3*S4)+S3*(S1*S4-S3^2)
180 A=N*(S3*S7-S4*S6)-S1*(S1*S7-S3*S6)+S2*(S1*S4-S3^2)
190 B=N*(S6*S5-S7*S4)-S2*(S1*S5-S3*S4)+S3*(S1*S7-S3*S6)
200 C=S2*(S3*S5-S4^2)-S1*(S6*S5-S4*S7)+S3*(S6*S4-S3*S7)
210 FOR I=1 TO N
220 Z(I)=A/D*X(I)^2+B/D*X(I)+C/D
230 S8=S8+(Y(I)-Z(I))^2
240 NEXT I
250 PRINT "次のデータの組を使用した:"
260 PRINT " X Y Yの期待値"
270 FOR I=1 TO N
280 PRINT X(I), Y(I), Z(I)
290 NEXT I
300 PRINT "二次曲線の方程式は:"
310 PRINT "Y=";A/D;"X**2 + (";B/D;")X + (";C/D;")"
320 PRINT "Yの標準偏差は ";SQR(S8/(N-1))
330 END

qlsq.bas


2002 Copyright 木原 寛