嗨,我是新来的,所以,如果我做错了,请告诉我。
我正在使用Microsoft Visual Studio 2013,并在一个图表区域中有一个包含4个系列的图表。这些系列中的2个包含数据点,另外两个是相应的趋势线。我需要趋势线的渐变来预测我的代码中的未来Y值,但是当我尝试使用线性回归以编程方式/数学方式进行此操作时,我得到了溢出错误,因为我在x轴上使用了日期的数据类型对于数学,当我将x-dif作为等式底部的平方时,它产生了一个非常大的数字。
有没有人找到其他工作? 产生错误的位是lngCycleXTakeXAverageSquaredTotal和lngRunXTakeXAverageSquaredTotal部分
Dim i As Integer
Dim lngRunXTotal As Long
Dim dblRunYTotal As Double
Dim lngCycleXTotal As Long
Dim dblCycleYTotal As Double
Dim lngRunXAverage As Long
Dim dblRunYAverage As Double
Dim lngCycleXAverage As Long
Dim dblCycleYAverage As Double
Dim lngRunXYTakeAveragesTotal As Long
Dim lngRunXTakeXAverageSquaredTotal As Long
Dim lngCycleXYTakeAveragesTotal As Long
Dim lngCycleXTakeXAverageSquaredTotal As Long
Dim dblRunGrad As Double
Dim dblCycleGrad As Double
Dim dblRunYIntercept As Double
Dim dblCycleYIntercept As Double
Dim dblRunYMin As Double
Dim dblRunYMax As Double
Dim datRunXMin As Date
Dim datRunXMax As Date
Dim dblCycleYMin As Double
Dim dblCycleYMax As Double
Dim datCycleXMin As Date
Dim datCycleXMax As Date
For i = 0 To intRunningRecordsCatch - 1
lngRunXTotal += CDate(dgvRunningSpeeds.Rows(i).Cells(0).Value).ToFileTime
dblRunYTotal += dgvRunningSpeeds.Rows(i).Cells(1).Value
Next
lngRunXAverage = lngRunXTotal / intRunningRecordsCatch
dblRunYAverage = dblRunYTotal / intRunningRecordsCatch
i = 0
For i = 0 To intCyclingRecordsCatch - 1
lngCycleXTotal += CDate(dgvCyclingSpeeds.Rows(i).Cells(0).Value).ToFileTime
dblCycleYTotal += dgvCyclingSpeeds.Rows(i).Cells(1).Value
Next
lngCycleXAverage = lngCycleXTotal / intCyclingRecordsCatch
dblCycleYAverage = dblCycleYTotal / intCyclingRecordsCatch
For i = 0 To intRunningRecordsCatch - 1
lngRunXYTakeAveragesTotal += ((CDate(dgvRunningSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngRunXAverage) * (dgvRunningSpeeds.Rows(i).Cells(1).Value - dblRunYAverage))
**lngRunXTakeXAverageSquaredTotal += (CDate(dgvRunningSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngRunXAverage) * (CDate(dgvRunningSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngRunXAverage)**
Next
dblRunGrad = lngRunXYTakeAveragesTotal / lngRunXTakeXAverageSquaredTotal
For i = 0 To intCyclingRecordsCatch - 1
lngCycleXYTakeAveragesTotal += ((CDate(dgvCyclingSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngCycleXAverage) * (dgvCyclingSpeeds.Rows(i).Cells(1).Value - dblCycleYAverage))
lngCycleXTakeXAverageSquaredTotal += (CDate(dgvCyclingSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngCycleXAverage) * (CDate(dgvCyclingSpeeds.Rows(i).Cells(0).Value).ToFileTime - lngCycleXAverage)
Next
dblCycleGrad = lngCycleXYTakeAveragesTotal / lngCycleXTakeXAverageSquaredTotal
dblRunYIntercept = dblRunYTotal - (dblRunGrad * lngRunXTotal)
dblCycleYIntercept = dblCycleYTotal - (dblCycleGrad * lngCycleXTotal)
datRunXMin = datMinDateCatch
dblRunYMin = (datMinDateCatch.ToFileTime * dblRunGrad) + dblRunYIntercept
datRunXMax = DateTime.Now
dblRunYMax = (DateTime.Now.ToFileTime * dblRunGrad) + dblRunYIntercept
datCycleXMin = datMinDateCatch
dblCycleYMin = (datMinDateCatch.ToFileTime * dblCycleGrad) + dblCycleYIntercept
datCycleXMax = DateTime.Now
dblCycleYMax = (DateTime.Now.ToFileTime * dblCycleGrad) + dblCycleYIntercept
chaSpeedsGraph.Series("Running Line of Best Fit").Points.AddXY(datRunXMin, dblRunYMin)
chaSpeedsGraph.Series("Running Line of Best Fit").Points.AddXY(datRunXMax, dblRunYMax)
chaSpeedsGraph.Series("Cycling Line of Best Fit").Points.AddXY(datCycleXMin, dblCycleYMin)
chaSpeedsGraph.Series("Cycling Line of Best Fit").Points.AddXY(datCycleXMax, dblCycleYMax)