西安交通大学1西安交通大学实验报告课程:高数实验班级:自动化32姓名:张文杰学号:2130504049日期:2014年4月20日西安交通大学21、计算值其它公式:请按照上述公式分别编程计算并与111(1)4(1)3521nn(1)就精度与叠加次数进行比较,能得出什么结论??解:(1)按照以下的程序得到n取不同的值(1)式计算的的近似值formatlongx=1:6;%首先计算原函数的由10的1到6次方展开时的值forn=10.^x%利用循环一次性将公式展开为不同的次数s=0;digits(25);fork=1:ns=s+4*(-1)^(k+1)/(2*k-1);%计算出的近似值endvpa(s,25)%定义精度为25位end(2)分别计算a,b,c,d四个公式的的近似值x=1:6;form=10.^x%计算上面四个公式的不同展开次数的值fa=0;fb=0;fc=0;fd=0%分别表示四个等式的值digits(25);fork=1:mfa=fa+1/(2*k-1)^2;fb=fb+(-1)^(k-1)/k^2;fc=fc+(-1)^(k-1)/(2*k-1)^3;fd=fd+sin(2*k-1)/(2*k-1)^3;endfa=vpa(sqrt(8*fa),25)fb=vpa(sqrt(12*fb),25)fc=vpa((32*fc)^(1/3),25)fd=vpa((1+sqrt(1+32*fd))/2,25)%end%(3)将体现四个公式收敛情况的图形画到一个直角坐标系上.)12()12sin(8)1()(,)12()1(32)(,)1(12)(,)12(18)(1313131212122nnnnnnnndncnbna西安交通大学3pfa=[];pfb=[];pfc=[];pfd=[];ps=[];%绘制出体现收敛速度的图像t=100;%选取的项数为150step=5;%步长选为5forj=10:step:t%fa=0;fb=0;fc=0;fd=0;s=0;fork=1:jfa=fa+1/(2*k-1)^2;fb=fb+(-1)^(k-1)/k^2;fc=fc+(-1)^(k-1)/(2*k-1)^3;fd=fd+sin(2*k-1)/(2*k-1)^3;s=s+4*(-1)^(k+1)/(2*k-1);endpfa=[pfa,sqrt(8*fa)];pfb=[pfb,sqrt(12*fb)];pfc=[pfc,(32*fc)^(1/3)];pfd=[pfd,(1+sqrt(1+32*fd))/2];%ps=[ps,s];endj=10:step:t;plot(j,pfa,'b',j,pfb,'g',j,pfc,'r',j,pfd,'y',j,ps,'k')%绘制收敛的图像程序的运行结果:叠加次数函数结果函数结果原函数的不同展开次数的值ans=3.04183961892940324389659ans=3.131592903558553686593768ans=3.1405926538397941349956ans=3.141492653590034489496929ans=3.141582653589719775766298ans=3.141591653589774324473183N=10fa=3.10962545798864775647985fb=3.132977195469482278866735fc=3.141526087929505717255552fd=3.141538602696021698079676N=100fa=3.138407967067091242086008fb=3.141498114035649713571274fc=3.141592586052465385648702fd=3.141592599756393155985279N=1000fa=3.141274327602740168430273fb=3.141591699614915800253812fc=3.141592653522246259001349fd=3.141592653631021470062024西安交通大学4结果分析:当叠加次数N=100000时五个公式分别精确到第3、4、7、14、13位,由此可见当叠加次数相同的情况下,精确度的顺序由大到小为cdba(1)式,这也正好验证了幂级数展开式中级数越高,收敛的速度也就越快,结果也就越精确。绘图运行结果:结果分析:已设定a\b\c\d分别为黑色、绿色、红色、黄色,由结果可以直观的看出c的收敛速度是最快的,a是最慢的与以上的数字实验结果一致。实验体会:本次实验没有按照书上的程序分别代入不同的n值来进行多次运行,而是采N=10000fa=3.141560822439948719164704fb=3.141592644041437232260705fc=3.141592653589793238462643fd=3.141592653589710071315722N=100000fa=3.141589470489344115833319fb=3.141592653494265530156326fc=3.141592653589793238462643fd=3.141592653589793238462643N=1000000fa=3.141592335279969727679372fb=3.141592653588781924867135fc=3.141592653589793238462643fd=3.141592653589793238462643西安交通大学5取了for循环,一次性算出六个不同展开次数的精确值,节约了大量的时间。在将运行结果导入报告时,直接用excel将数据导入了表格(相当的方便啊,,以前都没发现,一个一个的输入)过程总结:做的时候有还好几处都是参数弄混了,也报不出来错,但就是运行不出来,那个汗哪!!!!!!!!!!!!!为了避免麻烦,将所有的程序放在一起运行,一起出结果,所以结果很直观。2、基于关系式102411dxx,利用蒙特卡洛方法近似计算解:运用蒙特卡洛方法编制程序如下:n=input('请输入产生点的个数:')m=0;fori=1:na=rand(1,2);ifa(1)^2+a(2)^2=1m=m+1;endendmypi=4*m/n运行结果:pi请输入产生点的个数:1000n=1000mypi=3.104000000000000请输入点的个数N=Mypi=100010003.104000000000000500050003.13280000000000010000100003.14240000000000050000500003.1369600000000001000001000003.146760000000000西安交通大学6结果分析:通过依次增大输入点的个数观察结果发现,这种方法的精确度无法保证,点的个数越多,不一定就精确度越高,而且计算的速度超慢(试过1000000000)老半天没反应,只能弃疗。3、设有一制作均匀的冰淇淋可以看做由圆锥面和球面围成,采用取随机数的方法,用蒙特卡洛法计算这个冰淇淋的体积。解:程序:s=0;n=input('请输入产生点的个数:');fori=1:na=rand(1,2)-1;b=rand(1,1)*2;ifsqrt(a(1)^2+a(2)^2)=b(1)&&b(1)=1+sqrt(1-a(1)^2-a(2)^2)s=s+1;endendv=8*s/n运行结果:请输入产生点的个数:10000v=3.206400000000000请输入产生点的个数:10000v=3.139112000000000请输入产生点的个数:10000v=3.133600000000000请输入产生点的个数:10000v=3.160800000000000结果分析:算出来后不知对不对,就用理论算法做出来是,之后就肆无忌惮的带值算结果真的好随机啊,以上是我带相同的点进去,差别是如此的大总结:对了,这次试验中间出了点小事故由于不清楚rand(1,2)只产生1——2之间的随机数,吃了不少苦头,检查了半天算出来老是零点几。。。。。。。。。练习八4、某医院每日至少需要护士人数如表所示西安交通大学7班次时间段人数班次时间段人数16:00-10:0060418:00-22:0050210:00-14:0070522:00-2:0020314:00-18:006062:00-6:0030值班护士的人数每班护士在值班开始时向病房报道,连续工作8小时,医院至少需要多少护士才能满足值班要求?解:(1)问题分析:这是一个求最优解的问题,满足的两个大条件是每人工作8小时,且每个时间段都有人数限制,现在可以将所有24小时的班展现在同一时刻,每个时刻的人数均大于等于规定人数即可。建立模型:设第i个班次开始上班的护士数为ix,建立以下模型123456minzxxxxxx161223344556607060..5020300,1,26ixxxxxxstxxxxxxxi编写程序:c=[1,1,1,1,1,1];a=[-1,0,0,0,0,-1;-1,-1,0,0,0,0;0,-1,-1,0,0,0;0,0,-1,-1,0,0;0,0,0,-1,-1,0;0,0,0,0,-1,-1];b=[-60;-70;-60;-50;-20;-30];x=linprog(c,a,b)miny=c*x程序运行的结果:x=西安交通大学842.000028.000035.000015.000010.000020.0000miny=150.0000结果分析:由此可以得出护士的总人数应至少为150人。5、某工厂利用甲,乙两种原料生产A1,A2,A3三种产品。每月可供应的原料数量(单位:t),每万件产品所需各种原料的数量及每万件产品的价格如表所示:原料价格表原料每万件产品所需原料(t)每月原料供应量A1A2A3甲431180乙263200价格(万元/万件)1254试制定每月的最优生产计划,使得总收益最大。解:与上题差不多,就是简单地线性规划求解的问题建立模型:设三种产品的数量分别为,1,2,3iix,Maxy=1231254xxx12312343180..2632000,1,2,3istixxxxxxx编写下列程序:西安交通大学9c=[-12;-5;-4];a=[4,3,1;2,6,3];b=[180;200];aeq=[];beq=[];vlb=[0;0;0];vub=[];[x,fval]=linprog(c,a,b,aeq,beq,vlb,vub)maxy=-fval运行结果:x=34.00000.000044.0000fval=-584.0000maxy=584.0000结果分析:当生产34万件A1产品,,44万件A2产品是总收益最大为584万元。总结:这个题本来挺简单地,也明白linrog函数只能求最小值,做的时候只知道把最后结果乘以负号但是C矩阵给忘了,导致最后结果出现了复数,不过很快就纠正过来了。6、一公司拟在某市东,南,西三区建立门市部,拟议中有7个位置(1,2,7)iiA可供选择,规定东区在12,3,AAA三点中至多选两个。西区在45AA两点中至少选一个,南区在6,7AA两个点中至少选一个,并知道如选用iA点,则投资为ib元,估计每年可获利润为ic元,但投资总额不超过B元,问应选择哪几个点可使年利润最大?西安交通大学10解:假设当选中(1,2,7)iiA时对应的投资额为30,20,40,10,50,60,40.对应的可获利润为,110,140,130,150,190,130,170,总投资不超过150,所以可以建立以下的数学模71711234567max2..