Dim x() As Double Dim y() As Double Dim xz() As Double Dim c() As Double Dim d() As Double Dim a() As Double Dim am, bm, cm As Double dim m,n as long ’m为点的个数,n为自变量个数,一元当然就是1ReDim x(m, n)'自变量矩阵 ReDim y(m)'因变量矩阵 ReDim xz(n, m)'x()的转置 ReDim c(n, 2 * n)'增广矩阵 ReDim d(n, m)'这个忘了是啥,过渡用的 ReDim a(n)'回归系数矩阵 For i = 1 To m x(i, 1) = 1 Next i For i = 1 To m For j = 2 To n x(i, j) = VSFGrid1.TextMatrix(i, j - 1) Next j Next iFor i = 1 To m y(i) = VSFGrid1.TextMatrix(i, n) Next i'a=(x'*x)^-1*x'*y For i = 1 To n For j = 1 To m xz(i, j) = x(j, i) '转置 Next j Next iFor i = 1 To n For j = 1 To 2 * n If j = i + n Then c(i, j) = 1 Else c(i, j) = 0 End If Next j Next iFor i = 1 To n For j = 1 To n For k = 1 To m c(i, j) = c(i, j) + xz(i, k) * x(k, j) '求xz()*x() Next k Next j Next i For k = 1 To n '用主元除主元所在行的所有元素 am = 1 / c(k, k) '将主元变为1 For j = k To 2 * n c(k, j) = c(k, j) * am Next j'____________________________________ For i = k + 1 To n '将原矩阵变为下三角矩阵 bm = c(i, k) For j = 1 To 2 * n c(i, j) = c(i, j) - c(k, j) * bm Next j Next i Next k '------------------------------------------------ For k = 2 To n For i = 1 To k - 1 '将下三角矩阵变为单位阵 cm = c(i, k) For j = k To 2 * n c(i, j) = c(i, j) - c(k, j) * cm Next j Next i Next k '------------------------------------------------For i = 1 To n For j = 1 To n c(i, j) = c(i, j + n) Next j Next i For i = 1 To n For j = 1 To m For k = 1 To n d(i, j) = d(i, j) + c(i, k) * xz(k, j) Next k Next j Next iFor i = 1 To n For j = 1 To m a(i) = a(i) + d(i, j) * y(j) Next j Next i
Dim y() As Double
Dim xz() As Double
Dim c() As Double
Dim d() As Double
Dim a() As Double
Dim am, bm, cm As Double
dim m,n as long ’m为点的个数,n为自变量个数,一元当然就是1ReDim x(m, n)'自变量矩阵
ReDim y(m)'因变量矩阵
ReDim xz(n, m)'x()的转置
ReDim c(n, 2 * n)'增广矩阵
ReDim d(n, m)'这个忘了是啥,过渡用的
ReDim a(n)'回归系数矩阵
For i = 1 To m
x(i, 1) = 1
Next i
For i = 1 To m
For j = 2 To n
x(i, j) = VSFGrid1.TextMatrix(i, j - 1)
Next j
Next iFor i = 1 To m
y(i) = VSFGrid1.TextMatrix(i, n)
Next i'a=(x'*x)^-1*x'*y
For i = 1 To n
For j = 1 To m
xz(i, j) = x(j, i) '转置
Next j
Next iFor i = 1 To n
For j = 1 To 2 * n
If j = i + n Then
c(i, j) = 1
Else
c(i, j) = 0
End If
Next j
Next iFor i = 1 To n
For j = 1 To n
For k = 1 To m
c(i, j) = c(i, j) + xz(i, k) * x(k, j) '求xz()*x()
Next k
Next j
Next i
For k = 1 To n '用主元除主元所在行的所有元素
am = 1 / c(k, k) '将主元变为1
For j = k To 2 * n
c(k, j) = c(k, j) * am
Next j'____________________________________
For i = k + 1 To n '将原矩阵变为下三角矩阵
bm = c(i, k)
For j = 1 To 2 * n
c(i, j) = c(i, j) - c(k, j) * bm
Next j
Next i
Next k
'------------------------------------------------
For k = 2 To n
For i = 1 To k - 1 '将下三角矩阵变为单位阵
cm = c(i, k)
For j = k To 2 * n
c(i, j) = c(i, j) - c(k, j) * cm
Next j
Next i
Next k
'------------------------------------------------For i = 1 To n
For j = 1 To n
c(i, j) = c(i, j + n)
Next j
Next i
For i = 1 To n
For j = 1 To m
For k = 1 To n
d(i, j) = d(i, j) + c(i, k) * xz(k, j)
Next k
Next j
Next iFor i = 1 To n
For j = 1 To m
a(i) = a(i) + d(i, j) * y(j)
Next j
Next i
用excel函数库或许对你来说简单,但对别人来说可能不简单,你既然觉得简单,那为什么不干脆帮忙帮到底,把代码写出来呢?