




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
《數(shù)值分析》作業(yè)學院:機械學院專業(yè):機械工程姓名:趙博學號:2014520024日期:2
第二章作業(yè)P48_2給出的數(shù)值表如下:x0.40.50.60.70.8lnx-0.916291-0.693147-0.510826-0.356675-0.223144問:用線性插值及二次插值計算ln0.54的近似值。答:VB程序如下:OptionExplicitSubczfl(ByRefx()AsSingle,y()AsSingle,nAsInteger,x1AsDouble,fAsDouble)Dimi,jAsIntegerDimpAsSingleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addf=0Fori=0Tonp=1Forj=0TonIfi<>jThenp=p*(x1-x(j))/(x(i)-x(j))EndIfNextjwsmysheet.cells(i+1,1)=Str(p)wsmysheet.cells(i+1,2)=Str(p*y(i))f=f+p*y(i)Nextiwsmysheet.cells(n+1,3)="最終結果"+Str(f)appexcel.Visible=TrueEndSubPrivateSubCommand1_Click(IndexAsInteger)Dimx()AsSingleDimy()AsSingleDimnAsIntegerDimkAsIntegerDimfAsDoublek=0n=Val(Text1.Text)ReDimx(n)ReDimy(n)Open"czfl.txt"ForOutputAs#1Print#1,Text3.TextClose#1Open"czfl.txt"ForInputAs#1DoWhileNotEOF(1)Input#1,x(k),y(k)'Printx(k),y(k)k=k+1LoopClose#1SelectCaseIndexCase0Callczfl(x(),y(),Text1.Text,Text2.Text,f)Case1Callczfnt(x(),y(),Text1.Text,Text2.Text,f)EndSelectEndSubSubczfnt(ByRefx()AsSingle,y()AsSingle,nAsInteger,x1AsDouble,fAsDouble)Dimi,jAsIntegerDimk,lAsIntegerDimsAsDoubleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addf=y(0)s=1Forj=1TonFori=nTojStep-1y(i)=(y(i)-y(i-1))/(x(i)-x(i-j))wsmysheet.cells(i,j)=Str(y(i))NextiNextjFork=1Tons=s*(x1-x(l))f=f+s*y(k)Nextkwsmysheet.cells(n,n+1)="最終結果"+Str(f)appexcel.Visible=TrueEndSub結果:線性插值0.6-0.415890.4-0.20433最終結果-.620218614056672二次插值-0.120.1099550.84-0.582240.28-0.14303最終結果-.615319814966043
第三章作業(yè)P95_16.觀測物體的直線運動,得到一下數(shù)據(jù):時間t(s)00.91.93.03.95.0距離s(m)010305080110求運動方程。答:vb程序如下:(窗體見工程文件)OptionExplicitOptionBase1Sublufj(nAsInteger,a()AsSingle,b()AsSingle)DimiAsInteger,jAsInteger,kAsIntegerDimsAsSingleFori=2Tona(i,1)=a(i,1)/a(1,1)NextiFori=2TonForj=iTons=0Fork=1Toi-1s=s+a(i,k)*a(k,j)Nextka(i,j)=a(i,j)-sNextjForj=i+1Tons=0Fork=1Toi-1s=s+a(j,k)*a(k,i)Nextka(j,i)=(a(j,i)-s)/a(i,i)NextjNextiFori=1Tons=0Forj=1Toi-1s=s+a(i,j)*b(j)Nextjb(i)=b(i)-sNextiFori=nTo1Step-1s=0Forj=i+1Tons=s+a(i,j)*b(j)Nextjb(i)=(b(i)-s)/a(i,i)NextiEndSubSubdxnh(nAsInteger,mAsInteger,x()AsSingle,y()AsSingle,a()AsSingle,c()AsSingle)DimiAsInteger,jAsInteger,kAsSingleDimsAsSingleFori=1Tom+1Forj=iTom+1s=0Fork=1Tons=s+x(k)^(i+j-2)Nextka(i,j)=sa(j,i)=sNextjNextiFori=1Tom+1s=0Fork=1Tons=s+y(k)*x(k)^(i-1)Nextkc(i)=sNextiFori=1Tom+1a(i,m+2)=c(i)NextiCalllufj(m+1,a(),c())EndSubSubxy(nAsInteger,x()AsSingle,y()AsSingle,z()AsSingle,aAsSingle,bAsSingle)DimsumAsSingle,sumxAsSingle,sumyAsSingleDimsumxyAsSingle,sumxxAsSingleDimxavAsSingle,yavAsSingle,iAsIntegerFori=1Tonsum=sum+z(i)sumx=sumx+x(i)*z(i)sumy=sumy+y(i)*z(i)sumxy=sumxy+x(i)*y(i)*z(i)sumxx=sumxx+x(i)^2*z(i)Nextixav=sumx/sumyav=sumy/sumb=(sum*sumxy-sumx*sumy)/(sum*sumxx-sumx^2)a=yav-b*xavEndSubPrivateSubCombo1_Click()DimIndexAsIntegerIndex=Combo1.ListIndexSelectCase(Index)Case0:Command2.Visible=FalseLabel4.Visible=FalseText3.Visible=FalseLabel1.Caption="請輸入實驗數(shù)據(jù)x(i),y(i),及每組數(shù)據(jù)出現(xiàn)的次數(shù)z(i):n=1,2,3,4,5...如:"Text1.Text="3.2,4,2"&vbCrLf&"3.7,4.5,4"Label3.Visible=TrueText2.Visible=TrueCommand1.Visible=TrueCase1:Command1.Visible=FalseText2.Text="0"Text3.Text="0"Label1.Caption="請輸入實驗數(shù)據(jù)x(i),y(i):n=1,2,3,4,5...如:"Text1.Text="3.2,4"&vbCrLf&"3.7,4.5"Label3.Visible=TrueText2.Visible=TrueLabel4.Visible=TrueText3.Visible=TrueCommand2.Visible=TrueEndSelectEndSubPrivateSubCommand1_Click()Dimx()AsSingle,y()AsSingle,z()AsSingleDimnAsInteger,iAsIntegerDimbAsSingle,aAsSingleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddOpen"shuju.txt"ForOutputAs#1Print#1,Text1.TextClose#1n=Val(Text2.Text)Open"shuju.txt"ForInputAs#1ReDimx(n)ReDimy(n)ReDimz(n)Fori=1TonInput#1,x(i),y(i),z(i)wsmysheet.cells(1,i)=Str(x(i))wsmysheet.cells(2,i)=Str(y(i))wsmysheet.cells(3,i)=Str(z(i))NextiClose#1Callxy(n,x(),y(),z(),a,b)Open"yicijigeuo.txt"ForOutputAs#1Print#1,"所求的一元線性擬合方程為:"+"Y=";a;"+";b;"X"Close#1wsmysheet.cells(4,n+1)="最終結果:"+"Y="+Str(a)+"+"+Str(b)+"X"appexcel.Visible=TrueEndSubPrivateSubCommand2_Click()Dimx()AsSingle,y()AsSingle,a()AsSingle,c()AsSingleDimiAsInteger,jAsInteger,mAsInteger,nAsInteger,fstrAsStringn=Val(Text2.Text)m=Val(Text3.Text)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddOpen"shuju.txt"ForOutputAs#1Print#1,Text1.TextClose#1Open"shuju.txt"ForInputAs#1ReDimx(n)ReDimy(n)ReDimc(m+1)ReDima(m+1,m+2)Fori=1TonInput#1,x(i),y(i)wsmysheet.cells(1,i)=Str(x(i))wsmysheet.cells(2,i)=Str(y(i))'Printx(i);y(i)'PrintNextiClose#1Calldxnh(n,m,x(),y(),a(),c())fstr="Y="Fori=1Tom+1wsmysheet.cells(3,i)=Str(c(i))Ifi=m+1Thenfstr=fstr+Str(c(i))&"x^"&(i-1)Elsefstr=fstr+Str(c(i))&"x^"&(i-1)&"+"EndIfNextiOpen"duocijigeuo.txt"ForOutputAs#1Print#1,"所求的多次擬合方程為:"+fstrClose#1wsmysheet.cells(4,n+1)="最終結果:"+fstrappexcel.Visible=TrueEndSubPrivateSubForm_Load()Label1.Caption="下面的文本框為實驗數(shù)據(jù)輸入框"Combo1.AddItem"一次線性擬合",0Combo1.AddItem"多項式擬合",1EndSub結果:一次多項式擬合結果00.91.933.950.610305080110111111最終結果:Y=-7.550592+22.25376X第四章作業(yè)P135_2.(1).分別用梯形公式和辛普森公式計算下列積分答:vb程序如下:OptionExplicitDimindexAsIntegerPrivateSubCombo1_Click()index=Combo1.ListIndexSelectCase(index)Case0:Label3.Visible=TrueText1.Visible=TrueLabel1.Caption="你選擇的是復化梯形求積公式"Case1:Label3.Visible=TrueText1.Visible=TrueLabel1.Caption="你選擇的是復化辛普森積公式"Case2:Label3.Visible=FalseText1.Visible=FalseLabel1.Caption="你選擇的是柯斯特求積公式"EndSelectEndSubPrivateSubCommand1_Click()Dima,bAsIntegerDimfAsDoubleDimnAsIntegera=0b=1n=Val(Text1.Text)SelectCase(index)Case0:Calltx(a,b,f,n)Case1:Callxps(a,b,f,n)Case2:Callkst(a,b,f)EndSelectEndSubSubtx(ByRefa,b,f1AsDouble,nAsInteger)DimiAsIntegerDimc()AsDoubleDimsumAsDoubleDimhAsDoubleReDimc(n-1)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addwsmysheet.cells(1,1)=Str(a)wsmysheet.cells(1,2)=Str(f(a))wsmysheet.cells(n+1,1)=Str(b)wsmysheet.cells(n+1,2)=Str(f(b))h=(b-a)/nFori=1Ton-1c(i)=a+i*hwsmysheet.cells(i+1,1)=Str(c(i))wsmysheet.cells(i+1,2)=Str(f(c(i)))sum=sum+f(c(i))Nextif1=(b-a)*(f(a)+2*sum+f(b))/16wsmysheet.cells(n+1,3)=Str(f1)appexcel.Visible=TrueEndSubSubxps(ByRefa,b,f2AsDouble,nAsInteger)DimiAsIntegerDimx()AsDoubleDimy()AsDoubleDimsumAsDoubleDimsum1AsDoubleDimhAsDoubleReDimx(n)ReDimy(n-1)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addwsmysheet.cells(1,1)=Str(a)wsmysheet.cells(1,2)=Str(f(a))wsmysheet.cells(2*n+1,1)=Str(b)wsmysheet.cells(2*n+1,2)=Str(f(b))h=(b-a)/nFori=0To3x(i)=a+i*h+h/2sum=sum+f(x(i))wsmysheet.cells(2*i+2,1)=Str(x(i))wsmysheet.cells(2*i+2,2)=Str(f(x(i)))NextiFori=1To3y(i)=a+i*hsum1=sum1+f(y(i))wsmysheet.cells(2*i+1,1)=Str(y(i))wsmysheet.cells(2*i+1,2)=Str(f(y(i)))Nextif2=h*(f(a)+4*sum+2*sum1+f(b))/6wsmysheet.cells(2*n+1,3)=Str(f2)appexcel.Visible=TrueEndSubSubkst(ByRefa,b,f3AsDouble)Dimc(4)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddDimiAsIntegerFori=0To4c(i)=a+i*(b-a)/4wsmysheet.cells(i+1,1)=Str(c(i))wsmysheet.cells(i+1,2)=Str(f(c(i)))Nextif3=(b-a)*(7*f(c(0))+32*f(c(1))+12*f(c(2))+32*f(c(3))+7*f(c(4)))/90wsmysheet.cells(5,3)=Str(f3)appexcel.Visible=TrueEndSubPrivateSubForm_Load()Combo1.AddItem"復化梯形求積公式",0Combo1.AddItem"復化辛普森求積公式",1Combo1.AddItem"科特斯求積公式",2EndSub結果:1.梯形公式000.1253.11E-020.256.15E-020.3759.06E-020.50.1176470.6250.1423490.750.1643840.8750.18360710.20.1114022.辛普森公式000.1253.11E-020.256.15E-020.3759.06E-020.50.1176470.6250.1423490.750.1643840.8750.18360710.20.111572
第五章作業(yè)P177_10.用平方根法解方程組,這里用的是高斯主消元法答:vb程序如下:(窗體見工程文件)OptionExplicitOptionBase1SubGS(nAsInteger,a()AsSingle,x()AsSingle)DimiAsInteger,kAsInteger,sAsInteger,jAsIntegerDimyinziAsSingle,maxAsSingle,bAsSingleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddFork=1TonFori=1Ton+1wsmysheet.cells(k,i)=Str(a(k,i))NextiNextkwsmysheet.cells(n+1,1)="消元變換的最終形式:"Fork=1Ton-1max=Abs(a(k,k))s=k'選列最大元素Fori=kTonIfAbs(a(i,k))>maxThens=imax=Abs(a(i,k))EndIfNexti'交換兩列Fori=1Ton+1max=a(k,i)a(k,i)=a(s,i)a(s,i)=maxNexti'約化,進行行變換Fori=k+1Tonyinzi=a(i,k)/a(k,k)Forj=kTon+1a(i,j)=a(i,j)-a(k,j)*yinziNextjNextiNextkPrintFori=1TonForj=1Ton+1wsmysheet.cells(n+1+i,j)=Str(Format(a(i,j),"######0.0000"))NextjNextix(n)=a(n,n+1)/a(n,n)wsmysheet.cells(1,n+2)="計算的最終結果:"wsmysheet.cells(n,n+3)="x"+"("+Str(n)+")"wsmysheet.cells(n,n+4)=Str(x(n))Fori=n-1To1Step-1b=0Forj=i+1Tonb=b+a(i,j)*x(j)Nextjx(i)=(a(i,n+1)-b)/a(i,i)wsmysheet.cells(i,n+3)="x"+"("+Str(i)+")"wsmysheet.cells(i,n+4)=Str(x(i))Nextiappexcel.Visible=TrueEndSubPrivateSubCommand1_Click()Dima()AsSingle,x()AsSingle,nAsInteger,iAsInteger,jAsIntegern=Val(Text2.Text)Open"shuju.txt"ForOutputAs#1Print#1,Text1.TextClose#1Open"shuju.txt"ForInputAs#1ReDima(n,n+1)ReDimx(n)Fori=1TonForj=1TonInput#1,a(i,j)NextjPrintNextiFori=1TonInput#1,a(i,n+1)NextiClose#1CallGS(n,a(),x())EndSub結果:2-114計算的最終結果:x(1)1.111111-1-235x(2)0.7777781316x(3)2.555556消元變換的最終形式:2-11403.50.54003.85719.8571第六章作業(yè)P209_1.設方程組用雅可比迭代法及高斯—塞德爾迭代法解此方程組,要求當時迭代終止。答:vb程序如下:OptionExplicitOptionBase1DimindexAsIntegerSubykb(nAsInteger,a()AsSingle,x()AsSingle,flatAsDouble)DimiAsInteger,jAsInteger,kAsIntegerDimsum1AsSingle,sum2AsSingleDimmaxAsSingleDimy()AsSingle,z()AsSingleReDimy(n)ReDimz(n)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddFori=1TonForj=1Ton+1wsmysheet.cells(i,j)=Str(a(i,j))NextjNextiwsmysheet.cells(n+1,1)="初始向量為:"Fori=1Tonwsmysheet.cells(n+2,i)=Str(x(i))Nextik=0DoFori=1Tonsum1=0sum2=0Forj=1Toi-1sum1=sum1+a(i,j)*x(j)NextjForj=i+1Tonsum2=sum2+a(i,j)*x(j)Nextjy(i)=(a(i,n+1)-sum1-sum2)/a(i,i)NextiFori=1Tonz(i)=Abs(y(i)-x(i))x(i)=y(i)Nextimax=z(1)Fori=1TonIfz(i)>maxThenmax=Abs(z(i))EndIfNextik=k+1LoopUntilmax<flatwsmysheet.cells(1,n+2)="最終結果為:"Fori=1Tonwsmysheet.cells(i,n+3)=Str(x(i))Nextiwsmysheet.cells(n+3,1)="迭代次數(shù):"wsmysheet.cells(n+3,2)=Str(k)appexcel.Visible=TrueEndSubSubGS(nAsInteger,a()AsSingle,x()AsSingle,flatAsDouble)DimiAsInteger,jAsInteger,kAsIntegerDimsum1AsSingle,sum2AsSingleDimmaxAsSingleDimy()AsSingle,z()AsSingleReDimy(n)ReDimz(n)DimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddFori=1TonForj=1Ton+1wsmysheet.cells(i,j)=Str(a(i,j))NextjNextiwsmysheet.cells(n+1,1)="初始向量為:"Fori=1Tonwsmysheet.cells(n+2,i)=Str(x(i))Nextik=0DoFori=1Tonsum1=0sum2=0Forj=1Toi-1sum1=sum1+a(i,j)*x(j)NextjForj=i+1Tonsum2=sum2+a(i,j)*x(j)Nextjy(i)=(a(i,n+1)-sum1-sum2)/a(i,i)z(i)=Abs(y(i)-x(i))x(i)=y(i)Nextimax=z(1)Fori=1TonIfz(i)>maxThenmax=Abs(z(i))EndIfNextik=k+1LoopUntilmax<flatwsmysheet.cells(1,n+2)="最終結果為:"Fori=1Tonwsmysheet.cells(i,n+3)=Str(x(i))Nextiwsmysheet.cells(n+3,1)="迭代次數(shù):"wsmysheet.cells(n+3,2)=Str(k)appexcel.Visible=TrueEndSubPrivateSubCombo1_Click()index=Combo1.ListIndexSelectCase(index)Case0:Command1.Caption="高斯—賽德爾迭代法"Case1:Command1.Caption="雅可比迭代法"EndSelectEndSubPrivateSubCommand1_Click()Dima()AsSingle,x()AsSingle,nAsInteger,iAsInteger,jAsInteger,flatAsDoublen=Val(Text2.Text)flat=Val(Text3.Text)Open"shuju.txt"ForOutputAs#1Print#1,Text1.TextClose#1Open"shuju.txt"ForInputAs#1ReDima(n,n+1)ReDimx(n)'Fori=1TonForj=1TonInput#1,a(i,j)NextjNextiFori=1TonInput#1,a(i,n+1)NextiFori=1TonInput#1,x(i)NextiClose#1SelectCase(index)Case0:CallGS(n,a(),x(),flat)Case1:Callykb(n,a(),x(),flat)EndSelectEndSubPrivateSubForm_Load()Combo1.AddItem"高斯—賽德爾迭代法",0Combo1.AddItem"雅可比迭代法",1EndSub結果:1、高斯-賽德爾迭代法521-12最終結果為:-4.00003-142202.9999832-31032.000001初始向量為:000迭代次數(shù):82、雅可比迭代法521-12最終結果為:-4-142202.9999742-31032初始向量為:000迭代次數(shù):18
第七章P238_7.用下列方法求在x0=2附近的根,根的準確值x*=1.87938524···,要求計算結果精確到四位有效數(shù)字。(1)用牛頓法;(2)用弦截法,取x0=2,x1=1.9;答:vb程序如下:DimindexAsIntegerPrivateSubCombo1_Click()index=Combo1.ListIndexSelectCase(index)Case0:Label1.Caption="你選擇的是牛頓法:"Label3.Visible=FalseText3.Visible=FalseCase1:Label1.Caption="你選擇的是弦截法:"Label3.Visible=TrueText3.Visible=TrueEndSelectEndSubPrivateSubCommand1_Click()DimaAsSingle,bAsSingle,flatAsSingleflat=Val(Text1.Text)SelectCase(index)Case0:a=Val(Text2.Text)Callnd(a,flat)Case1:a=Val(Text2.Text)b=Val(Text3.Text)Callxj(a,b,flat)EndSelectEndSubSubxj(aAsSingle,bAsSingle,flatAsSingle)DimiAsInteger,kAsIntegerDimx(0To20)AsDoubleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addx(0)=ax(1)=bk=0Dok=k+1x(k+1)=x(k)-(x(k)-x(k-1))/(hanshu(x(k))-hanshu(x(k-1)))*hanshu(x(k))LoopUntilAbs(x(k+1)-x(k))/Abs(x(k+1))<flatFori=0Tok+1wsmysheet.cells(i+1,1)=Str(i)wsmysheet.cells(i+1,2)=Str(x(i))Nextiappexcel.Visible=TrueEndSubSubnd(aAsSingle,flatAsSingle)DimiAsIntegerDimx(0To100)AsDoubleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.Addx(0)=a'x(1)=bk=-1Dok=k+1x(k+1)=x(k)-hanshu1(x(k))LoopUntilAbs(x(k+1)-x(k))/Abs(x(k+1))<flatFori=0Tok+1wsmysheet.cells(i+1,1)=Str(i)wsmysheet.cells(i+1,2)=Str(x(i))Nextiappexcel.Visible=TrueEndSubPrivateSubForm_Load()Combo1.AddItem"牛頓法",0Combo1.AddItem"弦截法",1EndSub運行結果:1、牛頓法:0211.88888921.87945231.87938541.8793852、弦截法:0211.921.88109431.87941141.87938551.879385第八章P276_3_(1).用冪法計算下列矩陣的主特征值及對應的特征向量當特征值有3位小數(shù)穩(wěn)定時迭代終止。答:vb程序如下:OptionExplicitOptionBase1DimindexAsIntegerSubcm(ByRefNAsInteger,x()AsSingle,A()AsSingle,z()AsSingle,_epsAsSingle,sAsInteger,v2AsSingle)Dimv1AsSingle,iAsInteger,jAsInteger,sumAsSingle,b()AsSingleReDimb(N)v1=x(1)DoWhileAbs(v2-v1)>=epsv1=v2s=s+1Fori=1ToNsum=0Forj=1ToNsum=sum+A(i,j)*x(j)Nextjz(i)=sumNextiv2=z(1)Fori=1ToNIfAbs(z(i))>Abs(v2)Thenv2=z(i)EndIfb(i)=z(i)NextiIfAbs(v2-v1)<=epsThenExitDoFori=1ToNx(i)=b(i)/v2NextiLoopEndSubPrivateSubCombo1_Click()index=Combo1.ListIndexSelectCase(index)Case0Label1.Caption="你選擇的是求主特征值;請輸入元素A=a(i,j)(i,j=1,2,...n)及初值向量x(i)(i=1,2,...n)"Command1.Caption="求主特征值"Case1Label1.Caption="你選擇的是求最小特征值;請輸入元素A=a(i,j)(i,j=1,2,...n)及初值向量x(i)(i=1,2,...n)"Command1.Caption="求最小特征值"EndSelectEndSubPrivateSubCommand1_Click()DimA()AsSingle,x()AsSingle,z()AsSingleDimNAsInteger,MAsInteger,sAsInteger,iAsInteger,jAsInteger,epsAsSingle,v2AsSingleDimappexcelAsObjectDimwbmybookAsObjectDimwsmysheetAsObjectSetappexcel=CreateObject("excel.application")Setwbmybook=appexcel.workbooks.AddSetwsmysheet=appexcel.worksheets.AddN=Val(Text2.Text)Open"shuju.dat"ForOutputAs#1Print#1,Text1.TextClose#1eps=0.00001Open"shuju.dat"ForInputAs#1M=2*NReDimA(N,M)ReDimx(N)ReDimz(N)Print"矩陣A(i,j)"Fori=1ToNForj=1ToNInput#1,A(i,j)wsmysheet.cells(i,j)=A(i,j)NextjForj=N+1ToMIfi=j-NThenA(i,j)=1ElseA(i,j)=0EndIfNextjPrintNextiwsmysheet.cells(N+1,1)="初值向量:"Fori=1ToNInput#1,x(i)wsmysheet.cells(N+2,i+1)=x(i)NextiClose#1PrintSelectCase(index)Case0:Callcm(N,x(),A(),z(),eps,s,v2)wsmysheet.cells(N+3,1)="最大特征值是:"wsmysheet.cells(N+3,2)=Format(v2,"#0.######")Case1:CallNJ(N,M,A())'求逆Fori=1ToNForj=N+1ToMA(i,j-N)=A(i,j)NextjNextiCallcm(N,x(),A(),z(),eps,s,v2)wsmysheet.cells(N+3,1)="最大特征值是:"wsmysheet.cells(N+3,2)=Format(v2,"#0.######")EndSelectwsmysheet.cells(N+4,1)="對應特征向量分量是:"Fori=1ToNwsmysheet.cells(N+5,i+1)=Format(z(i)/v2,"#0.######")Nextiappexcel.Visible=TrueEndSubSubNJ(ByRefNAsInteger,MAsInteger,A()AsSingle)DimiAsInteger,jAsInteger,kAsInteger,bAsSingleFori=1ToNForj=1To2*NIf(j>N)ThenIfi=j-NThenA(i,j)=1ElseA(i,j)=0EndIfEndIfNextjNextiFork=1ToNb=A(k,k)Forj=kToMA(k,j)=A(k,j)/bNextjFori=1ToNIf(i<>k)Thenb=A(i,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學英語教學論文怎樣在農(nóng)村的英語課堂上培養(yǎng)學生的自信與興趣
- 跨境投資決策中的法律風險分析
- 零售業(yè)節(jié)日期間消費者心理與營銷策略
- 給同學們的建議書(7篇)
- 金融行業(yè)自動化解決方案概覽
- 浙江2025年01月浙江省臺州市風景園林學會2025年招考1名編外工作人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 高頻通信中的高效脈沖變壓器設計
- 鐵路乘務員安全帶的正確佩戴方法講解
- 美發(fā)員工工薪合同范本
- 稅務師《財務與會計VIP》黃金提分卷一(含答案)
- 加油站合作經(jīng)營協(xié)議書范本
- 人工智能對輿情管理的價值
- 地理-河南省部分重點高中九師聯(lián)盟2024-2025學年高三下學期2月開學考試試題和答案
- 老年護理相關法律法規(guī)
- 《陶瓷工藝技術》課件
- 變更強制措施的申請書
- 供電所安全演講
- 供應鏈韌性提升與風險防范-深度研究
- 《淞滬會戰(zhàn)》課件
- 《智能制造技術基礎》課件-第4章 加工過程的智能監(jiān)測與控制
- 初一家長會課件96108
評論
0/150
提交評論