国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VB做曲線擬合

本文主要是代碼,附帶詳細(xì)注釋

最小二乘法多次曲線擬合的VB實(shí)現(xiàn)

'窗體代碼

Option Explicit

'****************************************************************************************************'
'   編程世界:www.ibiancheng.cn
'   X()                     Double 實(shí)型一維數(shù)組,長(zhǎng)度為 n 。
 
存放給定 n 個(gè)數(shù)據(jù)點(diǎn)的 X 坐標(biāo)。 **
'   Y()------Double 實(shí)型一維數(shù)組,長(zhǎng)度為 n 。存放給定 n 個(gè)數(shù)據(jù)點(diǎn)的 Y 坐標(biāo)。
'   n-------Integer 變量。給定數(shù)據(jù)點(diǎn)的個(gè)數(shù)。 **
'   a()------Double 實(shí)型一維數(shù)組,長(zhǎng)度為 m 。返回 m-1 次擬合多項(xiàng)式的 m 個(gè)系數(shù)。
'   m-------Integer 變量。擬合多項(xiàng)式的項(xiàng)數(shù),即擬合多項(xiàng)式的最高次數(shù)為 m-1。
'   要求 m<=n 且m<=20。若 m>n 或 m>20 ,則本函數(shù)自動(dòng)按 m=min{n,20} 處理。
'   rdblAverageX--Double 變量,返回給定n個(gè)數(shù)據(jù)點(diǎn)的 X 坐標(biāo)的平均值
'   dt()------Double 實(shí)型一維數(shù)組,長(zhǎng)度為 3。其中:
'   dt(0) 返回?cái)M合多項(xiàng)式與數(shù)據(jù)點(diǎn)誤差的平方和;
'   dt(1) 返回?cái)M合多項(xiàng)式與數(shù)據(jù)點(diǎn)誤差的絕對(duì)值之和;
'   dt(2) 返回?cái)M合多項(xiàng)式與數(shù)據(jù)點(diǎn)誤差絕對(duì)值的最大值。
 
'*****************************************************************************************************'


Public Sub Iapcir(X() As Double, Y() As Double, ByVal n As Integer, ByRef a() As Double, ByVal m As Integer, ByRef rdblAverageX As Double, ByRef dt() As Double)

Dim I As Integer, J As Integer, K As Integer
Dim Z As Double, P As Double, C As Double, G As Double, Q As Double, D1 As Double, D2 As Double
Dim S(19) As Double, T(19) As Double, B(19) As Double

For I = 0 To m - 1
a(I) = 0
Next I

If m > n Then m = n
If m > 20 Then m = 20

Z = 0#

For I = 0 To n - 1
rdblAverageX = rdblAverageX X(I)
Z = Z X(I) / (1# * n)
Next I
rdblAverageX = rdblAverageX / n

B(0) = 1#
D1 = 1# * n
P = 0#
C = 0#

For I = 0 To n - 1
P = P (X(I) - Z)
C = C Y(I)
Next I

C = C / D1
P = P / D1
a(0) = C * B(0)

If m > 1 Then
T(1) = 1#
T(0) = (-1) * P
D2 = 0#
C = 0#
G = 0#
For I = 0 To n - 1
Q = X(I) - Z - P
D2 = D2 Q * Q
C = C Y(I) * Q
G = G (X(I) - Z) * Q * Q
Next I

C = C / D2
P = G / D2
Q = D2 / D1
D1 = D2
a(1) = C * T(1)
a(0) = C * T(0) a(0)
End If

For J = 2 To m - 1
S(J) = T(J - 1)
S(J - 1) = (-1) * P * T(J - 1) T(J - 2)

If J >= 3 Then
For K = J - 2 To 1 Step -1
S(K) = (-1) * P * T(K) T(K - 1) - Q * B(K)
Next K
End If

S(0) = (-1) * P * T(0) - Q * B(0)

D2 = 0#
C = 0#
G = 0#

For I = 0 To n - 1
Q = S(J)

For K = J - 1 To 0 Step -1
Q = Q * (X(I) - Z) S(K)
Next K

D2 = D2 Q * Q
C = C Y(I) * Q
G = G (X(I) - Z) * Q * Q
Next I

C = C / D2
P = G / D2
Q = D2 / D1
D1 = D2
a(J) = C * S(J)
T(J) = S(J)

For K = J - 1 To 0 Step -1
a(K) = C * S(K) a(K)
B(K) = T(K)
T(K) = S(K)
Next K
Next J

dt(0) = 0#
dt(1) = 0#
dt(2) = 0#

For I = 0 To n - 1
Q = a(m - 1)

For K = m - 2 To 0 Step -1
Q = a(K) Q * (X(I) - Z)
Next K

P = Q - Y(I)

If Abs(P) > dt(2) Then
dt(2) = Abs(P)
End If
dt(0) = dt(0) P * P
dt(1) = dt(1) Abs(P)
Next I

End Sub


說(shuō)明:這是將一段工業(yè)數(shù)據(jù)(不規(guī)則曲線)擬合成一條光滑的曲線,Excel有同樣的功能,經(jīng)驗(yàn)證,該過(guò)程得到的二次方程比Excel要更準(zhǔn)確.


方程:Y = a(0) a(1) * (X - X1) a(2) * (X - X1)^2 …… a(n) * (X - X1)^n


其中X1為X軸上的平均值


驗(yàn)證方法:可以用一組不規(guī)則的數(shù)據(jù)經(jīng)過(guò)該程序得到方程式后,代入你的不規(guī)則數(shù)得到另一組數(shù)據(jù),用Excel來(lái)比較這兩組數(shù)據(jù)有何不同.

有X軸和Y軸系列不規(guī)則曲線點(diǎn):X(50),Y(50),


欲得到二次方程式各項(xiàng)系數(shù)為a(2),X軸系列點(diǎn)平均值X1,dt(2)見(jiàn)首樓,則:


函數(shù)調(diào)用方法:Call Iapcir(X, Y,50, a, 3, X1, dt)

直接調(diào)用此函數(shù)即可
 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
定義VB數(shù)據(jù)類型常識(shí)
VB6.0自定義函數(shù)中的參數(shù)問(wèn)題
VB.net學(xué)習(xí)筆記(四)數(shù)據(jù)類型
【VB6】自制旋鈕控件
vc vb dll 參數(shù)傳遞
R語(yǔ)言的loess函數(shù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服