数学建模实验_第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

提交评论