數學建模實驗_第1頁
數學建模實驗_第2頁
數學建模實驗_第3頁
數學建模實驗_第4頁
數學建模實驗_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、數學建模實驗本書中的實驗均采用Mathematica軟件,當你輸入命令后,按下Shift+Enter鍵就可執行你的命令.實驗一1使用繪圖命令Plot畫出各種函數的圖形,使用繪圖命令ParametricPlot畫出各種參數方程的圖形.你可以修改其中的參數,以便掌握其使用方法(后面的實驗也如此).(1) PlotSinSqrt1+Cos2x,x,-2Pi,2Pi(2) PlotTanx,x,-10,10,PlotRange->-5,5(3) PlotArcSinx,ArcCosx,x,-1,1,PlotStyle->RGBColor0,0,1,Thickness0.01,RGBColo

2、r1,0,0,Dashing0.05,0.05(4) a1=Plotx,x,-5,5,PlotStyle->RGBColor0,0,1a2=PlotSinx,x,-5,5,PlotStyle->RGBColor0,1,0a3=Plotx+Sinx,x,-5,5,PlotStyle->RGBColor1,0,0Showa1,a2,a3(5) PlotSinx2,x,0,3,AxesLabel->"x value","sin(x2)"(6) PlotSinx2,x,0,3,Axes->None,PlotLabel->&qu

3、ot;sin(x2)"(7) ParametricPlotSint,Cost,t,0,2PiShow%,AspectRatio->Automatic(8) rt_=2Cos3tParametricPlotrtCost,rtSint,t,0,2Pi,AspectRatio->Automatic(9) sgnx_:=-1/;x<0; sgnx_:=0/;x=0; sgnx_:=1/;x>0Plotsgnx,x,-7,7(10) fx_:=x2Sin1/x/;x!=0; fx_:=0/;x=0Plotfx,x,-1,12觀察數列xn= (1+1/n)n的變化趨勢.(

4、1) Fori=1,i<10,i+,Xn=N(1+1/i)i,8;Printi," ",Xn(2) Fori=10,i<=1000000,i*=10,Xn=N(1+1/i)i,10;Printi," ",Xn(3) Xn=Table(1+1/n)n,n,1,1000;ListPlotXn3用Limit命令求極限.(1) Limit(Tanx-Sinx)/x3,x->0(2) Limitx*(Sqrt1+x2-x),x->+Infinity實驗二1用Dfx,x,n 命令求函數f對x的n階微商.(1) DSin3x,x(2) Dx*E

5、x,x,5(3) fx_=Exp7x;f'a2用Dtf 命令求函數f的微分.(1) DtSinxn(2) SetAttributesn,Constant;DtSinxn3隱函數與參數方程確定的函數的微商.(1) y=fx;Dx*y-Ex+Ey=0,xSolve%,f'x(2) DSint,t/DCost,t4求方程x3 3x1 = 0的根.(1) FindRootx3-3x-1=0,x,2(2) Solvex3-3x-1=0,x(3) NSolvex3-3x-1=0,x(4) Plotx3-3x-1,x,-3,3實驗三1用FindMinimum fx,x,x0,x1 命令求函數

6、f在x0,x1附近的極小值.FindMinimum2x3-6x2-18x+7,x,0FindMinimum-2x3+6x2+18x-7,x,02根據二階微商檢驗法編制Mathematica程序求出f (x) = 2x3 6x2 18x + 7所有的駐點,再求出極小值(點)、極大值(點).Clearf;fx_:=2x3-6x2-18x+7;root=Solvef'x=0,x;maxpoint=;minpoint=;noanswer=;delta=Dfx,x,2/.root;Fori=1,i<=Lengthdelta,i+,Ifdeltai<0,maxpoint=Appendm

7、axpoint,x/.rooti,fx/.rooti,Ifdeltai>0,minpoint=Appendminpoint,x/.rooti,fx/.rooti,nopoint=Appendnopoint,x/.rooti,fx/.rooti;Print"max_point=", maxpoint;Print"min_point=", minpoint;Print"I don't know=", nopoint實驗四1編制Mathematica程序觀察曲邊梯形y = x2, 0x1.5的面積.Clearf;Clearx;

8、fx_=x2;a=0;b=N1.5;m=0;g=Plotfx,x,a,b,PlotStyle->RGBColor1,0,0,DisplayFunction->Identity;Forj=3,j<=10,j+,m=j;tt1=;tt2=;Fori=0,i<m,i+,x1=a+(b-a)i/m;x2=x1+(b-a)/m;tt1=Appendtt1,GraphicsRGBColor0,1,0,Rectanglex1,0,x2,fx2;tt2=Appendtt2,GraphicsRGBColor0,0,1,Rectanglex1,fx1,x2,0;Print"&qu

9、ot;Showtt1,tt2,g,DisplayFunction->$DisplayFunction,PlotLabel->m"個分割點的圖示"2用Integratefx,x 命令求原函數,用NIntegratefx,x,a,b 命令求定積分的近似值.(1) Fx_=IntegrateTanx2,xFPi/6-F0(2) NIntegrateTanx2,x,0,Pi/6(3) Fx_=Integrate1/(x*Sqrtx2-1),x(4) NIntegrate1/(x*Sqrtx2-1),x,1,+Infinity(5) Fx_=Integrate1/Cosx

10、3,xFPi/3-F0(6) NIntegrateSinx2/(1+Ex),x,-Pi/4,Pi/43用Integrate命令計算二次積分.求dy:Integrate2x*y,x,0,1/2,y,x,1-x實驗五1求微分方程y'+ ysinx = sin3x的通解:DSolvey'x+yxSinx=Sinx3,yx,x2求微分方程的y'-ytanx = secx,y(0) = 0的特解:DSolvey'x-yxTanx=Secx,y0=0,yx,x3求微分方程y"+ 6y'+9y = 10sinx,y(0) = 0,y '(0) = 0

11、的特解:DSolveDyx,x,2+6y'x+9yx=10Sinx, y0=0,y'0=0,yx,x實驗六1用Plot3D等命令繪制曲面的圖形(1) 馬鞍面:Plot3Dx2/4-y2/9,x,-8,8,y,-15,15,PlotPoints->60,BoxRatios->1,1,1,PlotRange->-5,5(2) 橢圓拋物面:Plot3Dx2/4-y2/9,x,-8,8,y,-15,15,PlotPoints->20,BoxRatios->1,1,1,PlotRange->0,15(3) 球面與柱面:t1=ParametricPlot

12、3DCosuSinv,SinuSinv,Cosv,u,0,2Pi,v,0,Pi,PlotPoints->50t2=ParametricPlot3D(1+Cosu)/2,Sinu/2,v,u,0,2Pi,v,0,1,PlotPoints->50Showt1,t2(4) 單葉雙曲面:ParametricPlot3DSecuSinv,2SecuCosv,3Tanu,u,-Pi/4,Pi/4,v,0,2Pi,PlotPoints->80(5) 雙葉雙曲面:t1=ParametricPlot3DTanuSinv,2TanuCosv,2Secu,u,-Pi/3,Pi/3,v,0,2Pi,

13、PlotRange->-4,4,BoxRatios->1,1,3t2=ParametricPlot3DTanuSinv,2TanuCosv,-2Secu,u,-Pi/3,Pi/3,v,0,2Pi,PlotRange->-4,4,BoxRatios->1,1,3Showt1,t2(6) 墨西哥帽:Plot3DCosSqrtx2+y2,x,-10,10,y,-10,10,PlotPoints->30,Lighting->True(7) 石子垂直落入水中形成的水紋面:Clearf;fx_,y_:=Ifx2+y2!=0,SinSqrtx2+y2/Sqrtx2+y2,

14、1Plot3Dfx,y,x,-6Pi,6Pi,y,-6Pi,6Pi,Ticks->None,Boxed->False,Axes->False,Mesh->False,PlotPoints->80,BoxRatios->8,8,1,PlotRange->-1,1函數,為使顯示效果比較好,將x、y、z軸方向的顯示比例為8:8:1(BoxRatios->8,8,1),并且不顯示坐標軸(Axes->False)、數值標記(Ticks->None)、立體框線(Boxed->False)以及網格線(Mesh->False)2用Cont

15、ourPlot命令繪制函數的等高線ContourPlotx2-y2,x,-6,6,y,-6,6,Contours->20,PlotPoint->50,ContourShading->FalseContours->20表示繪制20條等高線,PlotPoint->50表示采樣點數為50,ContourShading->False表示去掉陰影部分3求多元函數的偏微商(1) D3x*y2-2y+5x2*y2,x(2) D3x*y2-2y+5x2*y2,y(3) D3x*y2-2y+5x2*y2,x,2(4) D3x*y2-2y+5x2*y2,y,2(5) D3x*y

16、2-2y+5x2*y2,x,y(6) D3x*y2-2y+5x2*y2,x,y/.x->-1,y->2實驗七利用根的存在定理求方程的根實驗目的:1. 掌握根的存在定理;2. 會用根的存在定理求方程的近似根;3. 具有初級編程能力;4. 學會使用Mathematica軟件求方程的根.實驗原理:根的存在定理:若函數f(x) 在閉區間 a, b 上連續,且f(a)f(b)0,則在 (a, b) 內至少有一點x ,使f(x )=0.根據上述定理,可在 (a, b) 內任取一點c,當f(c)0時,f(a)f(c)0和f(c)f(b)0中有且只有一個成立,這樣可縮小根的存在區間長度. 依次進行

17、下去,直到區間長度小于給定精度e 0為止.給定e 0,0l1,求方程近似根x 的迭代步驟: 賦初值x0 = a,x1 = b,n = 2,轉向; 計算xn= (1 - l ) xn-2 + l xn-1,轉向; 當f(xn)f(xn-2)0時,xn-1 = xn-2,轉向;當f(xn)f(xn-2) = 0時,取x = xn停; 當 | xn-xn-1|e 時,取x =(1 - l ) xn-1 + l xn停;否則,令n = n + 1,轉向.實驗內容:1. 按下列方法分別求出方程sinx- x = 1在( -2,2)內的近似根,比較跌代次數. 編程求解. 取 l = 0.5,e = 0.0

18、01,e = 0.0001;編程求解. 取 l = 0.618,e = 0.001,e = 0.0001; 使用Mathematica軟件,格式如下:FindRootSinx-x=1,x,-1按 Shift + Enter 鍵得到結果. 2. 將上述方程換成其他形式.實驗八定積分的近似計算實驗目的:1. 利用梯形法近似計算定積分的值;2. 利用拋物線法近似計算定積分的值;3. 具有初級編程能力;4. 學會使用Mathematica軟件計算定積分的值.實驗原理:利用定積分的定義近似計算定積分的值.1. 梯形法: 設分點a = x0x1x2xn-1xn = b將區間 a, b 分成n等分,記yk

19、= f(xk),k= 0,1,2, n. 則 f(x)dx = ( y0 + yn )/2 + y1 + y2 + + yn-1(b - a)/n.2. 拋物線法: 設分點a = x0x1x2x2n-1x2n = b將區間 a, b分成2n等分,記yk = f(xk),k= 0,1,2, 2n. 則 f(x)dx = ( y0 + y2n ) + 2( y2 + y4 + + y2n-2) + 4( y1 + y3 + + y2n-1)(b - a)/6n.實驗內容:1. 利用梯形法和拋物線法近似計算定積分dx的值(取n =10,精確到0.0001).2. 用Mathematica軟件計算定積

20、分dx的值. 格式如下:NIntegrateExp-x2,x,0,13. 給出正態分布函數表. 實驗九捕食-被捕食模型實驗目的:1. 了解連續捕食-被捕食模型;2. 了解離散捕食-被捕食模型;3. 了解常微分方程初值問題的數值解法原理;4. 能夠獨立編程解初值問題的微(差)分方程(組);5. 學會使用Mathematica軟件解微分方程(組).實驗原理:捕食-被捕食模型參考教材大學數學P236237,P251-252(略).常微分方程初值問題的數值解法原理:一階常微分方程的一般形式y(x)= f(x, y)一階常微分方程組的一般形式y1(x)= f(x, y1, y2, , yn),y2(x)

21、= f(x, y1, y2, , yn),向量形式Y(x)=F(x, Y )柯西初值問題(Cauchy問題)Y(x)=F(x, Y ), Y (x0 )=Y0 .主要算法 顯式歐拉(Euler)方法yk +1 = yk + f(xk , yk )h + O(h2), xk +1 = xk + h, k = 0,1,2,. 隱式歐拉(Euler)方法yk +1 = yk + f(xk +1, yk +1 )h + O(h2), xk +1 = xk + h, k = 0,1,2,. 龍格-庫塔(Runge-Kutta)方法 二階龍格-庫塔法K1 = f(xk , yk ), K2 = f(xk

22、+ h/2, yk + K1h/2 ), yk +1 = yk + K2h. 四階龍格-庫塔法K1 = f(xk , yk ),K2 = f(xk + h/2, yk + K1h/2 ), K3 = f(xk + h/2, yk + K2h/2 ), K2 = f(xk + h, yk + K3 ), yk +1 = yk + (K1 + 2K2 + 2K3 + K4)h/6.實驗內容:1. 使用Mathematica軟件解下列微分方程(組):y+ ysinx = sin3x,格式如下:DSolveyx+yxSinx=Sinx3,yx,xy-ytanx = secx,y(0) = 0, 格式如

23、下:DSolveyx-yxTanx=Secx,y0=0,yx,x 格式如下:DSolvext=2xt-0.25xtyt,yt=-yt+0.01xtyt,yt,xt,t2. 獨立編程, 使用顯式歐拉方法解下列微分方程(組), 并畫出其圖形:y-ytanx = secx,y(0) = 0.x (0) = 100, y (0) = 8.3. 獨立編程解差分方程(組):yn+2 - yn+1 -3 yn=0, y0 = 1, y1 = 2. 求y20, y21, y22 .xn+1 =1.003xn - 0.0001 xn yn,yn+1 =-0.91yn + 0.0002 xn yn,xn= 400

24、,yn=10,這里的xn與yn都取近似正整數值,求當n為多少時,xn400,yn10? 何時xn最大? 最小? yn最大? 最小?實驗十解矩陣方程及線性方程組實驗目的:1.掌握初等行變換化矩陣為行階梯形和行最簡形的方法;2.掌握解矩陣方程的方法;3.掌握解線性方程組的方法;4.具有初級編程能力;5.學會使用Mathematica軟件解矩陣方程及線性方程組.實驗原理:將矩陣A = (aij )m×n化為行階梯形的方法: 設r =1,c =1,執行. 是否有aic0(rim),若是轉到,否則轉到; 將第i行與第r行互換,再將第i ( i = r +1, r +2, , m )行各元素減去

25、第r行的aic/arc倍,記r +1為r,轉到; 記c +1為c,若r = m或c = n終止,否則轉到.將矩陣化為行最簡形的方法類似,是從右下向左上,且將行首非零元變為1.用初等行變換求逆矩陣: 將(AI )化為行最簡形即可.解線性方程組的方法: 將增廣矩陣化為行最簡形即可.實驗內容:22277764245740128949334132688858953855261. 按下列要求解矩陣方程:X = 自編程序; 用Mathematica軟件,格式如下:A=2,8,9,4,9,3,3,4,1,3,2,6,8,8,8,5,8,9,5,3,8,5,5,2,6B=2,2,2,7,7,7,6,4,2,4

26、,5,7,4,0,1InverseA.B5x1 + 5x2 + 3x3 + 3x4 + 8x5 = 3,2x1 + 3x2 + 2x3 + 5x4 + 8x5 = 9,7x1 + x2 + 9x3 + 9x4 + 2x5 = 7.2. 按下列要求解線性方程組: 自編程序; 用Mathematica軟件,格式如下:Solve5x1+5x2+3x3+3x4+8x5=3,2x1+3x2+2x3+5x4+8x5=9,7x1+x2+9x3+9x4+2x5=7實驗十一最小二乘預測實驗目的:1.掌握最小二乘法原理;2.會用線性模型預測;3.會用平方模型預測;4.具有初級編程能力.實驗原理:設兩個變量之間對應

27、關系如下: (x1, y1), (x2, y2 ), , (xn, yn),建立兩個變量之間的函數關系(數學模型) y = f(x),使得誤差平方和 nk =1S = f(xi ) -yi 2最小.線性模型y = ax + b,.平方模型y = ax2 + bx + c,誤差平方和 nk =1S = (a+ bxi + c) - yi 2其駐點滿足線性方程組 實驗內容:表1給出了奧林匹克運動(19561984)100m自由泳男女獲勝者成績(時間).表1年份獲勝者(男)國家時間(秒)獲勝者(女)國家時間(秒)1956Hendricks(Aus.)55.4Fraser(Aus.)62.01960D

28、evitt(Aus.)55.2Fraser(Aus.)61.21964Schollander(U.S.)53.4Fraser(Aus.)59.51968Wenden(Aus.)52.2Henne(U.S.)60.01972Spitz(U.S.)51.22Neilsen(U.S.)58.591976Montgomery(U.S.)49.99Ender(G.D.R.)55.651980Wothe(G.D.R.)50.40Krauss(G.D.R.)54.791984Gaines(U.S.)49.80Steinseifer(U.S.)55.92試根據表1提供的數據,建立100m自由泳成績y與年份x之

29、間的數學模型,并用此模型預測1988,1992,1996,2000,2004年100m自由泳男女獲勝者的成績.實驗十二計算機仿真實驗實驗目的:1. 掌握全概率公式與貝葉斯公式;2. 了解計算機仿真方法;3. 了解蒙特卡羅法(Monte Carlo method), 具有初級編程能力.實驗原理:全概率公式: 設A 1, A2, , An為兩兩互斥事件,B是A 1 + A2 + + An的子事件,則P(B)=P(A1)P(B|A1) + P(A2)P(B|A2) + + P(An)P(B|An).貝葉斯公式: P(Ak|B)= P(Ak )P(B| Ak )/P(B).計算機仿真: 就是在計算機上

30、模擬各種實際系統的運行過程. 計算機仿真通常用來產生規定分布的隨機變量.對于任意隨機變量x ,其分布函數為F(x),設 h =F(x )的分布函數為G(y),則G(y) = Ph y= PF(x ) y= Px F -1( y)= y,這說明h 服從0,1的均勻分布.一般的編程語言都提供了均勻分布隨機數發生器.應用隨機數模擬試驗的方法通常稱為蒙特卡羅法(Monte Carlo method). 蒙特卡羅法不僅適用于處理隨機性問題, 如存貯、排隊、質量檢驗、市場營銷、社會救急、生態競爭和傳染病等問題;也可處理定性問題, 如計算多重積分、解積分方程及微分方程、解整數規劃(特別是非線性整數規劃)等.

31、應用蒙特卡羅法解規劃問題的基本思想是:先估計各個變量的大致取值范圍,每次試驗從中隨機取出一個樣本點,然后判斷它是否為可行點. 若是則將其目標函數值與上一次的目標函數值相比較,記錄下較優目標函數值與其樣本點;否則重新抽樣。直到試驗次數達到指定值或可行點數達到指定值為止.實驗內容:1. 設有兩個口袋,甲袋中盛有兩個白球,一個黑球,乙袋中盛有一個白球,兩個黑球.由甲袋任取一個球放入乙袋,再從乙袋中取出一個球.若從乙袋中取出的球是白球,那么從甲袋中取出放入乙袋的球是白球還是黑球?用計算機模擬上述過程1000次,問理論判斷是正確的有多少次?2. 用計算機模擬隨機變量x j (x) =的取值200次.3.

32、 用計算機模擬隨機變量x N (120,102 )的取值800次,并畫出統計直方圖.4. 應用蒙特卡羅法解非線性規劃問題:max z = - 2x2 - y2 + xy + 8x + 3ys.t. 3 x + y = 10x0, y0.C語言簡介(僅介紹本實驗所用到的)1.標識符標識符是由程序員定義的單詞,如函數名、變量名等. 標識符是由大小寫字母、數字和下劃線組成的,并以字母和下劃線開始.2.關鍵字void (無值型) char (字符型) int (整數型) long (長整數型) float (浮點型) double (雙精度浮點型)if (如果) else (或者)for (循環) w

33、hile (循環) break (滿足一定的條件終止循環)return (返回函數值)3.函數形式類型 函數名(參數)4.庫函數簡介double sin(double x) double cos(double x) double exp(double x) double log(double x)double sqrt(double x) double pow(double x, double y)double fabs(double x) int abs(int x)int printf(const char *format, .); 屏幕格式化輸出函數FILE *fopen(const c

34、har *filename, const char *mode); 文件打開int fprintf(FILE *fp, const char *format, .); 文件格式化輸出函數int fgetc(FILE *fp); 從文件中讀出一字符int fclose(FILE *fp); 文件關閉void far setcolor(int color); 設置輸出顏色void far line(int x1, int y1, int x2, int y2); 畫直線void far rectangle(int left, int top, int right, int bottom); 畫矩形

35、unsigned far getpixel(int x, int y); 讀出點(x, y)的顏色void far putpixel(int x, int y, int pixelcolor); 畫點int random(int Num), 均勻產生0到Num-1中的一個隨機數5.示例計算9!#include<stdio.h>void main(void) int i; long n; n=1; for(i=1;i<=9;i+)n*=i; printf("n9!=%ldn",n); getch();6. Turbo C(2.0) 編輯命令F3 錄入文件F9

36、 編譯Ctrl+F9 運行Ctrl+KB 定義塊首Ctrl+KK 定義塊尾Ctrl+KC 塊粘貼Ctrl+KV 塊移動Ctrl+Y 刪除當前行7.部分源程序程序LAB1_1.C 求出方程sinx- x = 1在( -2,2)內的近似根#include<stdio.h>#include<math.h>float f(float x) return sin(x)-x-1;void main(void) float r=0.618,x0=-2,x1=2,x; int n=0; while(1) n+; x=(1-r)*x0+r*x1; if(f(x)*f(x0)<0.0

37、)x1=x; else if(f(x)*f(x1)<0.0)x0=x; else break; if(fabs(x1-x0)<0.001)break; printf("n=%d, x=%fn",n,x); getch();程序LAB2_3.C 給出正態分布函數表#include<stdio.h>#include<math.h>float f(float x) return exp(-x*x/2); void main(void) float x,x0,x1=0.0,F=0,h=0.0001; long n=0; FILE *fp; int

38、 i=0,p; fp=fopen("x.c","w"); for(x1=0.0;x1<0.04;x1+=0.001) n=0; F=0; x0=-10; for(x=x0+h;x<x1;x+=h) if(n%2)F+=2*f(x); else F+=4*f(x); n+; F+=f(x0)+f(x1); F/=3; F*=h; F*=0.39894; printf("x=%5.3f, F=%6.4fn",x1,F); i+; p=F*10000; fprintf(fp,"%d,",p); if(i=10

39、) i=0; fprintf(fp,"n"); if(p=9999)break; fclose(fp); getch();程序LAB3_2_1.C 解下列微分方程y-ytanx = secx,y(0) = 0, 并畫出其圖形:#include <stdio.h>#include <math.h>#include <graphics.h>float f(float x,float y) return y*sin(x)/cos(x)+1/cos(x);void main(void) int i=DETECT,j; float x=0.0,y=

40、0.0,h=0.005; char *str="0.00" initgraph(&i,&j," "); setviewport(0,0,639,479,1); cleardevice(); setbkcolor(BLUE); setcolor(WHITE); line(20,200,620,200); for(i=0;i<10;i+) line(20+i*60,195,20+i*60,200); str0=48+3*i/10; str2=48+3*i%10; outtextxy(20+i*60,205,str); for(i=0;i

41、<600;i+) y=y+f(x,y)*h; x+=h; putpixel(i+20,200-y*10,GREEN); getch(); closegraph();程序LAB3_2_2.C 解下列微分方程組x (0) = 100, y (0) = 8, 并畫出其圖形:#include <stdio.h>#include <math.h>#include <graphics.h>float f1(float x,float y) return 2*x-0.25*x*y; float f2(float x,float y) return -y+0.01*x

42、*y; void main(void) int i=DETECT,j; float x=99.0,y=7.9,h=0.015; initgraph(&i,&j," "); setviewport(0,0,639,479,1); cleardevice(); for(i=0;i<600;i+) x=x+f1(x,y)*h; y=y+f2(x,y)*h; putpixel(i+20,(102.5-x)*60,GREEN); putpixel(i+20,(8.6-y)*600,WHITE); getch(); closegraph();程序LAB4.C 將矩

43、陣化為行階梯型,化為行最簡型#include<stdio.h>#include<math.h>#define MAXR 20#define MAXC 40/*解線性方程組,以下是其增廣矩陣*/float M_BMAXRMAXC=1,-2,2,1,-3,2,1,1,-2,-1,3,4,0,-5,1;void f1(int m,int n) int i,j,r=0,c=0; float x0; printf("n以下將矩陣化為行階梯型n"); for(i=0;i<m;i+) for(j=0;j<n;j+)printf("%8.2f&

44、quot;,M_Bij); printf("n"); printf("按任一健繼續.n"); getch(); while(c<n) for(i=r;i<m;i+)if(fabs(M_Bic)>=0.0001)break; if(i<m) if(i!=r)for(j=0;j<n;j+)x0=M_Bij;M_Bij=M_Brj;M_Brj=x0; x0=M_Brc; for(j=0;j<n;j+)M_Brj/=x0; for(i=r+1;i<m;i+) x0=M_Bic;for(j=0;j<n;j+)M_Bi

45、j-=x0*M_Brj; r+; for(i=0;i<m;i+) for(j=0;j<n;j+)printf("%8.2f",M_Bij); printf("n"); printf("按任一健繼續.n"); getch(); c+; if(r=m)break; printf("n以下將行階梯型化為行最簡型n"); while(r) r-; for(j=0;j<n-1;j+)if(fabs(M_Brj)>=0.0001)break; c=j; for(i=0;i<r;i+) x0=M_B

46、ic; for(j=0;j<n;j+)M_Bij-=x0*M_Brj; for(i=0;i<m;i+) for(j=0;j<n;j+)printf("%8.2f",M_Bij); printf("n"); printf("按任一健繼續.n"); getch(); printf("完畢,按任一健退出.n"); getch();void f2(int n) int i,j; for(i=0;i<n;i+)for(j=0;j<n;j+) if(i!=j)M_Bin+j=0; else M_B

47、in+j=1; f1(n,2*n);void main(void) f1(3,5); 程序LAB6_3.C 模擬產生服從N(120,400)分布的隨機變量800次, 并畫出統計直方圖#include <stdio.h>#include <stdlib.h>#include <math.h>#include <graphics.h>int Np4000=/*下列數據為標準正態分布函數值×10000, 由程序LAB2_3.C 產生*/5000,5003,5007,5011,5015,5019,5023,5027,5031,5035,;int

48、 f(int p) int i; for(i=0;i<4000;i+)if(Npi>=p)break; return i;void main(void) int i,j,x; float F,X800; randomize(); printf("nn"); for(i=0;i<800;i+) x=random(10000); if(x<5000)F=-f(10000-x); else F=f(x); F*=0.001; Xi=120+20*F; printf("%8.2f",Xi); getch(); i=DETECT; init

49、graph(&i,&j," "); setviewport(0,0,639,479,1); cleardevice(); setbkcolor(BLUE); setcolor(WHITE); line(20,400,620,400); j=20; for(F=90;F<150;F+=3) x=0; for(i=0;i<800;i+)if(Xi>=F&&Xi<F+5)x+=4; rectangle(j,400-x,j+30,400); j+=30; getch(); closegraph();程序2000A01.C 統計

50、文件2000A1.txt中ATCG的個數#include<stdio.h>void main(void) int n=-1,ATCG404=0,0; char c; FILE *fp; fp=fopen("2000A1.txt","r"); while(c=fgetc(fp)!=EOF) if(c='.')n; else if(c='a')ATCGn0; else if(c='t')ATCGn1; else if(c='c')ATCGn2; else if(c='g

51、9;)ATCGn3; fclose(fp); for(n=0;n<40;n)printf("%d,%d,%d,%d,n",ATCGn0,ATCGn1,ATCGn2,ATCGn3); getch();附 Mathematica入門簡介一 多功能計算器1算術運算Mathematica是多功能的計算工具. 它的最基本的功能是進行算術四則運算. 例如:In1:=2*(3+4)-2(2+1)Out1=6這里In1后面輸入的是一個算術表達式. 其中代表乘冪. 算術表達式里的括號只允許是圓括號(無論有多少層). 當輸入的式子中的所有數字都不含小數點時,輸出結果是完全精確的. 如:In2:=2100 | In2:=2.100Out2=1267650605

溫馨提示

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

評論

0/150

提交評論