曲線擬合源代碼_第1頁
曲線擬合源代碼_第2頁
曲線擬合源代碼_第3頁
曲線擬合源代碼_第4頁
曲線擬合源代碼_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

OptionExplicitDimX()AsSingle,Y()AsSingleDimA(20,20)AsSingle,MAsInteger,B()AsSingle'最多取20次的擬合DimNAsInteger,IAsInteger,JAsIntegerDimxiaoA()AsSingleDimXminAsSingle,XmaxAsSingleDimYminAsSingle,YmaxAsSingleDimXoAsSingle,YoAsSinglePrivateSubZuoDian(X()AsSingle,Y()AsSingle)DimXLAsSingleDimYLAsSingleN=UBound(X):Picture1.Cls '確定數(shù)組的指定維的最大可用下標Xmin=X(1):Xmax=X(1):Xo=X(1):Yo=Y(1)Ymin=Y(1):Ymax=Y(1)ForI=1ToNIfXmin>X(I)Then '(實現(xiàn)比較問題)Xmin=X(I)Xo=Xmin:Yo=Y(I) '后面畫曲線時用到EndIfIfXmax<X(I)ThenXmax=X(I)IfYmin>Y(I)ThenYmin=Y(I)IfYmax<Y(I)ThenYmax=Y(I)NextIXL=Xmax-Xmin:YL=Ymax-YminPicture1.Scale(Xmin-XL/10,Ymax+YL/10)-(Xmax+XL/10,Ymin-YL/10)Picture1.DrawWidth=5ForI=1ToNPicture1.PSet(X(I),Y(I)),vbRed'(將對象上的點設為指定顏色)NextIPicture1.DrawWidth=1Picture1.Line(Xmin,Ymin)-(Xmax,Ymax),vbBlue,BPicture1.RefreshEndSubPrivateSubHuaQuXian(xiaoA()AsSingle)CallZuoDian(X,Y)DimYsumAsSingle,IiAsSingleForIi=XminToXmaxStep(Xmax-Xmin)/100Ysum=0ForJ=1ToMYsum=Ysum+xiaoA(J)*IiA(J-1)NextJPicturel.Line(Xo,Yo)-(Ii,Ysum)Xo=Ii:Yo=YsumNextIiEndSubPrivateSubCommand1_Click()DimFileNameAsStringDimXstrAsString,YstrAsStringOnErrorGoToerrhandleCommonDialog1.InitDir=App.Path設置初始路徑 數(shù)據(jù)導入CommonDialog1.FileName=""清除文件名CommonDialog1.ShowOpen顯示“打開”對話框FileName=CommonDialog1.FileName保存文件名IfLen(CommonDialog1.FileName)>0Then'File=FreeFile()'獲得可用文件號OpenFileNameForInputAs#1打開文件EndIfI=0MousePointer=11DoWhileEOF(1)=FalseI=I+1ReDimPreserveX(I)ReDimPreserveY(I)MSFlexGrid1.Rows=I+1Input#1,Xstr,Ystr'分別輸入各數(shù)據(jù)MSFlexGrid1.TextMatrix(I,1)=XstrX(I)=Val(Xstr)MSFlexGrid1.TextMatrix(I,2)=YstrY(I)=Val(Ystr)MSFlexGrid1.TextMatrix(I,0)=ILoopClose#1:N=I '檢驗一下N是否對???CallZuoDian(X,Y)errhandle:MousePointer=0ExitSubMousePointer=0EndSubPrivateSubCommand2_Click()'曲線擬合DimXhAsIntegerM=Val(Combo1.Text)+1EraseB:ErasexiaoA:EraseA '必不可少***********重新初始化大小固定的數(shù)組的元素,以及釋放動態(tài)數(shù)組的存儲空間ReDimB(M):ReDimxiaoA(1ToM)'形成方程組的各元素A(1,1)=NForI=1ToNB(1)=B(1)+Y(I)NextIForJ=2ToMForI=1ToNA(1,J)=A(1,J)+X(I)人(J-1)NextINextJForI=2ToMForJ=1ToMForXh=1ToNA(I,J)=A(I,J)+X(Xh)A(I+J-2)IfJ=1ThenB(I)=B(I)+X(Xh)a(I-1)*Y(Xh)EndIfNextXhNextJNextICallJieFangCheng(A,B,xiaoA)ForI=1ToMText1.Text=Text1.Text&"a"&I-1&"="&xiaoA(I)&";"NextIDimStrAsString:Str="y="ForI=1ToM '寫方程IfI<MThenStr=Str&xiaoA(I)&"xA"&I-1&"+"ElseStr=Str&xiaoA(I)&"xA"&I-1EndIfNextITextl.Text=Textl.Text&vbCrLf&曲線方程:"&vbCrLf&StrCallHuaQuXian(xiaoA)EndSubPrivateSubCommand3_Click()DimXzhiAsSingle,YzhiAsSingleXzhi=Val(Text2.Text)Yzhi=0ForJ=1ToMYzhi=Yzhi+xiaoA(J)*XzhiA(J-1)NextJText3.Text=YzhiEndSubPrivateSubForm_Load()ForI=0To2MSFlexGridl.ColAlignment(I)=4NextIForI=1To20MSFlexGrid1.TextMatrix(I,0)=INextIEndSubPrivateSubJieFangCheng(A()AsSingle,B()AsSingle,X()AsSingle)N=UBound(B)DimTempAAsSingle,LAsInteger,KAsInteger,KkAsIntegerDimIiAsInteger,ChuShuAsSingle,SumAsSingleForI=1ToNL=0:Kk=0ForJ=IToNIfA(J,I)=0ThenL=L+1NextJForJ=IToN-LIfA(J,I)=0ThenKk=Kk+1ForK=IToNTempA=A(J,K)A(J,K)=A(N-Kk+1,K)A(N-Kk+1,K)=TempANextKTempA=B(J):B(J)=B(N-Kk+1):B(N-Kk+1)=TempAEndIfNextJForIi=IToN-LChuShu=A(Ii,I)ForJ=IToNA(Ii,J)=A(Ii,J)/ChuShuNextJB(Ii)=B(Ii)/ChuShuNextIiForIi=I+1ToN-LForJ=IToNA(Ii,J)=A(Ii,J)-A(I,J)NextJB(Ii)=B(Ii)-B(I)NextIiNextIFor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論