大虾们请帮帮小弟!--急求vb课程设计”直线拟合”的源代码.

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:18:26
知道的请发到我的邮箱baidu_zhidao_kui@163.com
用文本框输入5,6,7,8,9,10个可选数据组数(用单选框来选择组数)用最小二乘法拟合直线,图最好有个动态坐标轴,输入数据后有个按钮点击,绘图。。。小弟初学,不会做,先谢谢了!

Public Function CaLineParam(ByRef XY_X() As Double, ByRef XY_Y() As Double, ByRef LineK As Double, ByRef LineB As Double) As String
On Error GoTo Err_Exit:
'直线拟合
'"[Y]=" & LineK & "*[X]+" & LineB
Dim I As Integer, J As Integer, K As Integer
Dim Sx As Double, Sxx As Double, Sy As Double, Sxy As Double
Sx = 0: Sxx = 0: Sy = 0: Sxy = 0

J = Max(LBound(XY_X), LBound(XY_Y))
K = Min(UBound(XY_X), UBound(XY_Y))
For I = J To K
Sx = Sx + XY_X(I)
Sxx = Sxx + XY_X(I) ^ 2
Sy = Sy + XY_Y(I)
Sxy = Sxy + XY_X(I) * XY_Y(I)
Next

I = K - J + 1
LineK = (Sx * Sy - I * Sxy) / (Sx ^ 2 - I * Sxx)
LineB = (Sy - Sx * LineK) / I

If LineB < 0 Then
CaLineParam = "[Y]=" & LineK & "*[X]" & LineB
ElseIf LineB = 0 Then
CaLineParam