'新建窗體,添加text1,command1,picture1

創(chuàng)新互聯(lián)專注于墨竹工卡網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供墨竹工卡營銷型網(wǎng)站建設,墨竹工卡網(wǎng)站制作、墨竹工卡網(wǎng)頁設計、墨竹工卡網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務,打造墨竹工卡網(wǎng)絡公司原創(chuàng)品牌,更為您提供墨竹工卡網(wǎng)站排名全網(wǎng)營銷落地服務。
Private Sub Command1_Click()
If Text1.Text = "" Then Exit Sub
Dim x() As Single, y() As Single, cnt As Integer
Dim xmax As Single, xmin As Single, ymax As Single, ymin As Single
Dim p() As String, z() As String
Dim xyh As Single, xh As Single, yh As Single, xph As Single, k As Single, b As Single
p = Split(Text1.Text, "/")
For i = 0 To UBound(p)
If p(i) "" Then
z = Split(p(i), "*")
If UBound(z) = 1 Then
If IsNumeric(z(0)) And IsNumeric(z(1)) Then
If cnt = 0 Then xmax = z(0): xmin = z(0): ymax = z(1): ymin = z(1)
If xmax z(0) Then xmax = z(0)
If xmin z(0) Then xmin = z(0)
If ymax z(1) Then ymax = z(1)
If ymin z(1) Then ymin = z(1)
xyh = xyh + z(0) * z(1): xh = xh + z(0): yh = yh + z(1): xph = xph + z(0) ^ 2
ReDim Preserve x(cnt), y(cnt)
x(cnt) = z(0): y(cnt) = z(1): cnt = cnt + 1
End If
End If
End If
Next
Picture1.Cls
Picture1.DrawWidth = 1
If xmax = xmin And ymax = ymin Then
MsgBox "單點無法擬合"
ElseIf xmax = xmin Then
Picture1.Scale (xmin * 0.5, ymax + 0.2 * (ymax - ymin))-(xmin * 1.5, ymin - 0.2 * (ymax - ymin))
zuobiaozhou xmin * 0.5, ymax + 0.2 * (ymax - ymin), xmin * 1.5, ymin - 0.2 * (ymax - ymin)
Picture1.Line (xmax, ymax + 0.2 * (ymax - ymin))-(xmax, ymin - 0.2 * (ymax - ymin)), vbBlue
ElseIf ymax = ymin Then
Picture1.Scale (xmin - 0.2 * (xmax - xmin), ymax * 1.5)-(xmax + 0.2 * (xmax - xmin), ymin * 0.5)
zuobiaozhou xmin - 0.2 * (xmax - xmin), ymax * 1.5, xmax + 0.2 * (xmax - xmin), ymin * 0.5
Picture1.Line (xmin - 0.2 * (xmax - xmin), ymax)-(xmax + 0.2 * (xmax - xmin), ymax), vbBlue
Else
Picture1.Scale (xmin - 0.2 * (xmax - xmin), ymax + 0.2 * (ymax - ymin))-(xmax + 0.2 * (xmax - xmin), ymin - 0.2 * (ymax - ymin))
zuobiaozhou xmin - 0.2 * (xmax - xmin), ymax + 0.2 * (ymax - ymin), xmax + 0.2 * (xmax - xmin), ymin - 0.2 * (ymax - ymin)
k = (xyh - (xh * yh) / cnt) / (xph - xh ^ 2 / cnt)
b = yh / cnt - k * xh / cnt
Picture1.Line (xmin - 0.2 * (xmax - xmin), k * (xmin - 0.2 * (xmax - xmin)) + b)-(xmax + 0.2 * (xmax - xmin), k * (xmax + 0.2 * (xmax - xmin)) + b), vbBlue
End If
Picture1.DrawWidth = 5
For i = 0 To cnt - 1
Picture1.PSet (x(i), y(i)), vbRed
Next
Text1.SetFocus
End Sub
Private Sub Form_Activate()
Text1.SetFocus
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text1.ToolTipText = "橫縱坐標間以乘號*分隔,各點間以除號/分隔。例如:100*100/200*200"
Command1.Caption = "繪圖"
Picture1.AutoRedraw = True
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Not (IsNumeric(Chr(KeyAscii)) Or KeyAscii = 8 Or KeyAscii = 42 Or KeyAscii = 45 Or KeyAscii = 46 Or KeyAscii = 47) Then KeyAscii = 0
End Sub
Function zuobiaozhou(ByVal x1 As Single, y1 As Single, x2 As Single, y2 As Single)
For i = x1 + (x2 - x1) / 5 To x2 Step (x2 - x1) / 5
Picture1.Line (i, y2 + 100 * (y1 - y2) / Picture1.Height)-(i, y2)
Picture1.CurrentX = i - 250 * (x2 - x1) / Picture1.Width
Picture1.CurrentY = y2 + 350 * (y1 - y2) / Picture1.Height
Picture1.Print i
Next
For i = y2 + (y1 - y2) / 5 To y1 Step (y1 - y2) / 5
Picture1.Line (x1, i)-(x1 + 100 * (x2 - x1) / Picture1.Width, i)
Picture1.CurrentX = x1 + 150 * (x2 - x1) / Picture1.Width
Picture1.CurrentY = i + 80 * (y1 - y2) / Picture1.Height
Picture1.Print i
Next
End Function
繪圖是系統(tǒng)內(nèi)部操作的,不需要懂原理
方法就在那里,只有會用和不會用,你的代碼告訴它繪制,它就會繪制。它(方法)究竟如何去繪制的并不是重點,反正它會繪制。
drawline(繪線)方法很簡單,第一個參數(shù)是pen,它確定線條的顏色、寬度和樣式。第二、第三個參數(shù)都是point類型,確定兩個點的位置,繪制直線。
這個是高等數(shù)學里的。做實驗常用的方法。
最小二乘法原理
在我們研究兩個變量(x, y)之間的相互關(guān)系時,通常可以得到一系列成對的數(shù)據(jù)(x1, y1、x2, y2... xm , ym);將這些數(shù)據(jù)描繪在x -y直角坐標系中(如圖1), 若發(fā)現(xiàn)這些點在一條直線附近,可以令這條直線方程如(式1-1)。
Y計= a0 + a1 X (式1-1)
其中:a0、a1 是任意實數(shù)
為建立這直線方程就要確定a0和a1,應用《最小二乘法原理》,將實測值Yi與利用(式1-1)計算值(Y計=a0+a1X)的離差(Yi-Y計)的平方和〔∑(Yi - Y計)2〕最小為“優(yōu)化判據(jù)”。
令: φ = ∑(Yi - Y計)2 (式1-2)
把(式1-1)代入(式1-2)中得:
φ = ∑(Yi - a0 - a1 Xi)2 (式1-3)
當∑(Yi-Y計)平方最小時,可用函數(shù) φ 對a0、a1求偏導數(shù),令這兩個偏導數(shù)等于零。
(式1-4)
(式1-5)
亦即:
m a0 + (∑Xi ) a1 = ∑Yi (式1-6)
(∑Xi ) a0 + (∑Xi2 ) a1 = ∑(Xi, Yi) (式1-7)
得到的兩個關(guān)于a0、 a1為未知數(shù)的兩個方程組,解這兩個方程組得出:
a0 = (∑Yi) / m - a1(∑Xi) / m (式1-8)
a1 = [n∑Xi Yi - (∑Xi ∑Yi)] / [n∑Xi2 - (∑Xi)2 )] (式1-9)
這時把a0、a1代入(式1-1)中, 此時的(式1-1)就是我們回歸的元線性方程即:數(shù)學模型。
在回歸過程中,回歸的關(guān)聯(lián)式是不可能全部通過每個回歸數(shù)據(jù)點(x1, y1、 x2, y2...xm,ym),為了判斷關(guān)聯(lián)式的好壞,可借助相關(guān)系數(shù)“R”,統(tǒng)計量“F”,剩余標準偏差“S”進行判斷;“R”越趨近于 1 越好;“F”的絕對值越大越好;“S”越趨近于 0 越好。
R = [∑XiYi - m (∑Xi / m)(∑Yi / m)]/ SQR{[∑Xi2 - m (∑Xi / m)2][∑Yi2 - m (∑Yi / m)2]} (式1-10) *
在(式1-1)中,m為樣本容量,即實驗次數(shù);Xi、Yi分別任意一組實驗X、Y的數(shù)值。微積分應用課題一 最小二乘法
從前面的學習中, 我們知道最小二乘法可以用來處理一組數(shù)據(jù), 可以從一組測定的數(shù)據(jù)中尋求變量之間的依賴關(guān)系, 這種函數(shù)關(guān)系稱為經(jīng)驗公式. 本課題將介紹最小二乘法的精確定義及如何尋求 與 之間近似成線性關(guān)系時的經(jīng)驗公式. 假定實驗測得變量之間的 個數(shù)據(jù) , , …, , 則在 平面上, 可以得到 個點 , 這種圖形稱為“散點圖”, 從圖中可以粗略看出這些點大致散落在某直線近旁, 我們認為 與 之間近似為一線性函數(shù), 下面介紹求解步驟.
考慮函數(shù) , 其中 和 是待定常數(shù). 如果 在一直線上, 可以認為變量之間的關(guān)系為 . 但一般說來, 這些點不可能在同一直線上. 記 , 它反映了用直線 來描述 , 時, 計算值 與實際值 產(chǎn)生的偏差. 當然要求偏差越小越好, 但由于 可正可負, 因此不能認為總偏差 時, 函數(shù) 就很好地反映了變量之間的關(guān)系, 因為此時每個偏差的絕對值可能很大. 為了改進這一缺陷, 就考慮用 來代替 . 但是由于絕對值不易作解析運算, 因此, 進一步用 來度量總偏差. 因偏差的平方和最小可以保證每個偏差都不會很大. 于是問題歸結(jié)為確定 中的常數(shù) 和 , 使 為最小. 用這種方法確定系數(shù) , 的方法稱為最小二乘法.
當前標題:vb.net做直線擬合,vb擬合曲線
文章轉(zhuǎn)載:http://chinadenli.net/article4/hsjiie.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、小程序開發(fā)、虛擬主機、網(wǎng)站設計、App開發(fā)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)