📄 medfit.txt
字号:
Public NDATAT, XT(1000), YT(1000), ARR(1000), AA, ABDEVT
Sub MEDFIT(X(), Y(), NDATA, A, B, ABDEV)
SX = 0#
SY = 0#
SXY = 0#
SXX = 0#
For J = 1 To NDATA
XT(J) = X(J)
YT(J) = Y(J)
SX = SX + X(J)
SY = SY + Y(J)
SXY = SXY + X(J) * Y(J)
SXX = SXX + X(J) ^ 2
Next J
NDATAT = NDATA
DEL = NDATA * SXX - SX ^ 2
AA = (SXX * SY - SX * SXY) / DEL
BB = (NDATA * SXY - SX * SY) / DEL
CHISQ = 0#
For J = 1 To NDATA
CHISQ = CHISQ + (Y(J) - (AA + BB * X(J))) ^ 2
Next J
SIGB = Sqr(CHISQ / DEL)
B1 = BB
F1 = ROFUNC(B1)
B2 = BB + Abs(3 * SIGB) * Sgn(F1)
F2 = ROFUNC(B2)
1 If F1 * F2 > 0# Then
BB = 2# * B2 - B1
B1 = B2
F1 = F2
B2 = BB
F2 = ROFUNC(B2)
GoTo 1
End If
SIGB = 0.01 * SIGB
2 If Abs(B2 - B1) > SIGB Then
BB = 0.5 * (B1 + B2)
If BB = B1 Or BB = B2 Then GoTo 3
F = ROFUNC(BB)
If F * F1 >= 0# Then
F1 = F
B1 = BB
Else
F2 = F
B2 = BB
End If
GoTo 2
End If
3 A = AA
B = BB
ABDEV = ABDEVT / NDATA
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -