VB开发的N次多项式拟和程序.docx

上传人:b****8 文档编号:9985922 上传时间:2023-02-07 格式:DOCX 页数:11 大小:15.52KB
下载 相关 举报
VB开发的N次多项式拟和程序.docx_第1页
第1页 / 共11页
VB开发的N次多项式拟和程序.docx_第2页
第2页 / 共11页
VB开发的N次多项式拟和程序.docx_第3页
第3页 / 共11页
VB开发的N次多项式拟和程序.docx_第4页
第4页 / 共11页
VB开发的N次多项式拟和程序.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

VB开发的N次多项式拟和程序.docx

《VB开发的N次多项式拟和程序.docx》由会员分享,可在线阅读,更多相关《VB开发的N次多项式拟和程序.docx(11页珍藏版)》请在冰豆网上搜索。

VB开发的N次多项式拟和程序.docx

VB开发的N次多项式拟和程序

PrivateSubCommand1_Click()

Fori=0ToText1.Count-1

Text1(i).Text=""

Nexti

DimEAsInteger

DimTmpAsDouble

K=Val(Combo2.Text)'数据组数

N=Val(Combo1.Text)*3'n次方的多项式拟合;实际是3*N+1个元素

Callgrid

'xi,yi,x2,x3,x3,x4,,xi*yi,xi^2*yi

ReDimData(K+1,N+1)

T=Val(Combo1.Text)*2

F=Val(Combo1.Text)

E=F+1

ReDima(E,E+1)

ReDimX(E)

Fori=1To10

Data(i,0)=i

Nexti

OpenApp.Path&"\X.dat"ForInputAs1'

Fori=1ToK

Input#1,Data(i,1)

Nexti

Close#1

OpenApp.Path&"\Y.dat"ForInputAs1'

Fori=1ToK

Input#1,Data(i,2)

Nexti

Close#1

Forj=3To(T+1)

Fori=1ToK

Tmp=Data(i,1)

Data(i,j)=Tmp^(j-1)

Nexti

Nextj

'X^(n)*Y

ForP=1ToF'3

Fori=1ToK'9

Q=2*F+P+1

Data(i,Q)=Data(i,1)^(P)*Data(i,2)

Nexti

NextP

DimsumAsDouble

sum=0

Forj=1To(N+1)

Fori=1ToK

sum=Data(i,j)+sum

Nexti

Data(K+1,j)=sum

sum=0

Nextj

a(1,1)=K

a(1,2)=Data(K+1,1)

Forj=3ToE

a(1,j)=Data(K+1,j)

Nextj

a(2,1)=Data(K+1,1)

Forj=2ToF+1

a(2,j)=Data(K+1,j+1)

Nextj

'*************************************************

F=F

Fori=1ToE'列

Forj=3ToE'行

P=j+2-3+i

a(j,i)=Data(K+1,P)

Nextj

Nexti

X

(1)=Data(K+1,2)

ForP=1ToF'3

Q=2*F+P+1

X(P+1)=Data(K+1,Q)

NextP

Forj=1ToE

a(j,E+1)=X(j)

Nextj

DimZmax,HmaxAsDouble

'Fori=1ToE

'Forj=1ToE+1

'

'MSFlexGrid1.TextMatrix(i-1,j-1)=a(i,j)

'Nextj

'Nexti

Fori=1To(E-1)

Zmax=Abs(a(i,i))

Hmax=i

Forj=i+1ToE

If(Abs(a(j,i))>Zmax)Then

Hmax=j

Zmax=Abs(a(j,i))

EndIf

Nextj

'*****************************************

If(Hmax<>i)Then

ForK=iToE+1

T=a(Hmax,K)

a(Hmax,K)=a(i,K)

a(i,K)=T

NextK

EndIf'****************************

Forj=i+1ToE

Y=a(j,i)/a(i,i)

ForK=iToE+1

a(j,K)=a(j,K)-a(i,K)*Y

NextK

Nextj

Nexti

X(E)=a(E,E+1)/a(E,E)

Fori=E-1To1Step-1

Y=0

Forj=EToi+1Step-1

Y=Y+a(i,j)*X(j)

Nextj

X(i)=(a(i,E+1)-Y)/a(i,i)

Nexti

Forj=1ToE

Text1(j-1).Text=X(j)

Nextj

'

MSFlexGrid2.TextMatrix(0,1)="X"

MSFlexGrid2.TextMatrix(0,2)="Y"

Fori=3To2*F+1

P=i-1

MSFlexGrid2.TextMatrix(0,i)="X^"&(P)

Nexti

Fori=1ToF

P=2*F+i

MSFlexGrid2.TextMatrix(0,P+1)="X^"&(i)&"*Y"

Nexti

Fori=1To(Val(Combo2.Text)+1)

Forj=1ToN+1

MSFlexGrid2.TextMatrix(i,j)=Data(i,j)

Nextj

Nexti

Fori=0ToMSFlexGrid2.Cols-1

MSFlexGrid2.ColAlignment(i)=4

'MSFlexGrid2.TextMatrix(i,15)=X

(1)+X

(2)*Data(i,1)+X(3)*Data(i,1)^2+X(4)*Data(i,1)^3+X(5)*Data(i,1)^4+X(6)*Data(i,1)^5+X(7)*Data(i,1)^6

Nexti

DimA0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10AsDouble

A0=Val(Text1(0).Text)

A1=Val(Text1

(1).Text)

A2=Val(Text1

(2).Text)

A3=Val(Text1(3).Text)

A4=Val(Text1(4).Text)

A5=Val(Text1(5).Text)

A6=Val(Text1(6).Text)

A7=Val(Text1(7).Text)

A8=Val(Text1(8).Text)

A9=Val(Text1(9).Text)

A10=Val(Text1(10).Text)

MSFlexGrid2.TextMatrix(0,3)="VB(=Y)"

MSFlexGrid2.TextMatrix(0,5)="VB(-Y)"

Fori=1ToVal(Combo2.Text)

MSFlexGrid2.Row=i

MSFlexGrid2.Col=3

MSFlexGrid2.CellBackColor=&HC0FFC0

MSFlexGrid2.Row=i

MSFlexGrid2.Col=2

MSFlexGrid2.CellBackColor=&H80C0FF

C=Val(MSFlexGrid2.TextMatrix(i,1))

D=A0+A1*C+A2*C^2+A3*C^3+A4*C^4+A5*C^5+A6*C^6+A7*C^7+A8*C^8+A9*C^9+A10*C^10

MSFlexGrid2.TextMatrix(i,3)=Format(D,"0.00000")

'MSFlexGrid2.TextMatrix(i,3)=Int(D)

MSFlexGrid2.Row=i

MSFlexGrid2.Col=5

MSFlexGrid2.CellBackColor=&HC0FFC0

MSFlexGrid2.TextMatrix(i,5)=Format(D-Val(MSFlexGrid2.TextMatrix(i,2)),"0.00000")

Nexti

Text2.Text="Y="&Text1(0).Text&"+"&Val(Text1

(1).Text)&"*x"&"+"&Val(Text1

(2).Text)&"*x^2"&"+"&Val(Text1(3).Text)&"*x^3"

EndSub

Subgrid()

'

'Forj=0ToMSFlexGrid1.Cols-1

'

'MSFlexGrid1.ColWidth(j)=800

'

'Nextj

'Forj=0ToMSFlexGrid1.Cols-1

'

'MSFlexGrid1.ColAlignment(j)=4

'

'Nextj

Forj=0ToMSFlexGrid2.Cols-1

MSFlexGrid2.ColWidth(j)=1200

Nextj

EndSub

PrivateSubCommand2_Click()

DimA0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10AsDouble

A0=Val(Text3(0).Text)

A1=Val(Text3

(1).Text)

A2=Val(Text3

(2).Text)

A3=Val(Text3(3).Text)

A4=Val(Text3(4).Text)

A5=Val(Text3(5).Text)

A6=Val(Text3(6).Text)

A7=Val(Text3(7).Text)

A8=Val(Text3(8).Text)

A9=Val(Text3(9).Text)

A10=Val(Text3(10).Text)

MSFlexGrid2.TextMatrix(0,4)="Excel(=Y)"

MSFlexGrid2.TextMatrix(0,6)="Excel(-Y)"

Fori=1ToVal(Combo2.Text)

MSFlexGrid2.Row=i

MSFlexGrid2.Col=4

MSFlexGrid2.CellBackColor=&HC0FFFF

C=Val(MSFlexGrid2.TextMatrix(i,1))

D=A0+A1*C+A2*C^2+A3*C^3+A4*C^4+A5*C^5+A6*C^6+A7*C^7+A8*C^8+A9*C^9+A10*C^10

MSFlexGrid2.TextMatrix(i,4)=Format(D,"0.00000")

MSFlexGrid2.Row=i

MSFlexGrid2.Col=6

MSFlexGrid2.CellBackColor=&HC0FFFF

MSFlexGrid2.TextMatrix(i,6)=Format(D-Val(MSFlexGrid2.TextMatrix(i,2)),"0.00000")

Nexti

EndSub

PrivateSubCommand3_Click()

Fori=0ToText1.Count-1

Text3(i).Text=""

Nexti

EndSub

PrivateSubForm_Load()

Fori=0ToText1.Count-1

Text1(i).Text=""

Text3(i).Text=""

Nexti

Callgrid

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1