《管理数学实验》实验报告班级姓名实验1:MATLAB的数值运算【实验目的】(1)掌握MATLAB变量的使用(2)掌握MATLAB数组的创建,(3)掌握MA TLAB数组和矩阵的运算。
(4)熟悉MATLAB多项式的运用【实验原理】矩阵运算和数组运算在MA TLAB中属于两种不同类型的运算,数组的运算是从数组元素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。
【实验步骤】(1)使用冒号生成法和定数线性采样法生成一维数组。
(2)使用MA TLAB提供的库函数reshape,将一维数组转换为二维和三维数组。
(3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑运算。
(4)使用MA TLAB绘制指定函数的曲线图,将所有输入的指令保存为M文件。
【实验内容】(1)在[0,2*pi]上产生50个等距采样数据的一维数组,用两种不同的指令实现。
0:(2*pi-0)/(50-1):2*pi 或linspace(0,2*pi,50)(2)将一维数组A=1:18,转换为2×9数组和2×3×3数组。
reshape(A,2,9)ans =Columns 1 through 71 3 5 7 9 11 132 4 6 8 10 12 14Columns 8 through 915 1716 18reshape(A,2,3,3)ans(:,:,1) =1 3 52 4 6ans(:,:,2) =7 9 118 10 12 ans(:,:,3) =13 15 17 14 16 18(3)A=[0 2 3 4 ;1 3 5 0],B=[1 0 5 3;1 5 0 5],计算数组A 、B 乘积,计算A&B,A|B,~A,A= =B,A>B 。
A.*Bans=0 0 15 121 15 0 0 A&Bans =0 0 1 11 1 0 0 A|Bans =1 1 1 11 1 1 1~Aans =1 0 0 00 0 0 1A==Bans =0 0 0 01 0 0 0A>=Bans =0 1 0 11 0 1 0(4)绘制y= 0.53t e -t*t*sin(t),t=[0,pi]并标注峰值和峰值时间,添加标题y= 0.53t e -t*t*sint ,将所有输入的指令保存为M 文件。
a=0.5 b=1/3t=0:0.001:piy=a*exp(b*t)-t.*t.*sin(t) [y_max,t_max]=max(y)t_text=['t=',num2str(t(t_max))] y_text=['y=',num2str(y_max)]max_text=char('maximum',t_text,y_text) tit=['y=a*exp(',num2str(b),'t)-t*t*sin(t)'] hold on plot(t,y,'y.')plot(t(t_max),y_max,'r')text(t(t_max)+0.3,y_max+0.1,max_text)title(tit),xlabel('t'),ylabel('y'),hold off【实验心得与总结】通过这次试验让我了解常用简单函数的功能,学会利用函数解决一些;数值计算和符号计算的实际问题;利用Matlab的help命令查询一些函数的功能。
利用MA TLAB可以让繁琐的计算问题变得更加简单化,如矩阵运算等。
\实验2:MATLAB 绘图【实验步目的】利用MTALAB 画墨西哥帽子,及参数方程的图像 【实验原理】(1)二维绘图命令:plot(x,y)函数(2)三维绘图命令中三维曲线:plot3(x,y,z), (3)利用mesh 函数画三维的网格表面的。
【实验内容】(含参考程序、实验结果及结果分析等)画出函数图形π100)cos(23≤≤⎪⎩⎪⎨⎧===t t z ty t x 。
方程:π100)cos(23≤≤⎪⎩⎪⎨⎧===t t z ty t x 【参考程序】 >> t=0:0.1:4*pi;>> plot3(2*cos(t),t.^3,t) 【实验结果】画出曲面]5.7,5.7[,sin),(2222-∈++==xyxfzyxyx的图像。
方程:(,)[7.5,7.5],[7.5,7.5]z f x y x y=∈-∈-【参考程序】x = -7.5:0.5:7.5;y = x;[xx, yy] = meshgrid(x, y);R = sqrt(xx.^2 + yy.^2) + eps;z = sin(R)./R;surf(xx, yy, z)【实验结果】【实验心得与总结】Matlab的常见错误:Inner matrix dimensions must agree1、因为在Matlab的输入变量是矩阵,参与运算的矩阵维数必须对应,矩阵相应元素的运算必须全部加dot(点),例2中方程如果这样输入:x=2*(cos(t)+t*sin(t)),就会出现该错误.2、mesh函数是用来画三维的网格表面的。
三维空间中的一个点是用(x,y,z)来表示的,mesh就是把这些点之间用网格连接起来。
实验3:MATLAB 微积分问题的计算【实验目的】利用MTALAB 求解二重积分、勒展开式及级数求和。
【实验原理】1.利用int(int(f,x,a,b),y,c,d)函数求二重积分计算累次积分⎰⎰d cbadxdy y x f ),(2.利用泰勒函数taylor (f,n,x,a)来求f(x,y)的n-1阶泰勒展开式k n k k a x k a f x f )(!)()(1)(-∙=∑-=; 3.利用函数symsum(f,k,n1,n2)来求级数的和函数∑=21)(n n k k f【实验内容】(含参考程序、实验结果及结果分析等)求⎰⎰+10122x xydydxx。
【参考程序】 >> syms x y >> z=x*y;>> f=int(int(z,y,2*x,x^2+1),x,0,1) 【实验结果】 f =1/12将f (x )=ln x 展开为幂为(x-2)的5阶泰勒展开式。
【参考程序】 >> syms x n;>> f=(-1)^n*x^(n+1)/(n+1); >> symsum(f,n,1,inf) 【实验结果】ans =log(1+x)-x级数求和)1,1(,1)1(11-∈+-+∞=∑x n x n n n。
【参考程序】>> syms x n;>> f=(-1)^n*x^(n+1)/(n+1); >> symsum(f,n,1,inf) 【实验结果】ans = log(1+x)-x 【实验心得与总结】1、在实验过程中,要是一句程序结束后加了分号,则说明,不要求执行程序时输出执行结果;2、在matlab 中是区别大小写的,如果N 写成n 会出现Undefined function or variable'n'.Undefined function or variable 'n'.的错误提示.实验4: MATLAB 优化计算【实验目的】掌握应用matlab 求解无约束最优化问题的方法【实验原理与方法】 1:标准形式:元函数为其中n R R f X f nR x n→∈:)(min2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤: ⑴ 给定初始点n E X ∈0,允许误差0>ε,令k=0; ⑵ 计算()k X f ∇;⑶ 检验是否满足收敛性的判别准则: ()ε≤∇k X f ,若满足,则停止迭代,得点k X X ≈*,否则进行⑷; ⑷ 令()k k X f S -∇=,从k X 出发,沿k S 进行一维搜索, 即求k λ使得: ()()k k k k k S X f S X f λλλ+=+≥0min ;⑸ 令k k k k S X X λ+=+1,k=k+1返回⑵.最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法..牛顿法算法步骤:(1) 选定初始点n E X ∈0,给定允许误差0>ε,令k=0; (2) 求()k X f ∇,()()12-∇kX f ,检验:若()ε<∇k X f ,则停止迭代,k X X ≈*.否则, 转向(3); (3) 令 ()()k k k X f X f S ∇∇-=-12][(牛顿方向); (4) k k k S X X +=+1,1+=k k ,转回(2).如果f 是对称正定矩阵A 的二次函数,则用牛顿法经过一次迭代 就可达到最优点,如不是二次函数,则牛顿法不能一步达到极值点, 但由于这种函数在极值点附近和二次函数很近似,因此牛顿法的收 敛速度还是很快的.牛顿法的收敛速度虽然较快,但要求Hessian 矩阵要可逆,要计算二阶导数和逆矩阵,就加大了计算机计算量和存储量. 【实验内容】1. 求 f = 2x e xsin -在0<x<8中的最小值与最大值 主程序为wliti1.m: f='2*exp(-x).*sin(x)'; fplot(f,[0,8]); %作图语句 [xmin,ymin]=fminbnd (f, 0,8) f1='-2*exp(-x).*sin(x)';[xmax,ymax]=fminbnd (f1, 0,8) 运行结果:xmin = 3.9270 ymin = -0.0279 xmax = 0.7854 ymax = 0.64482. 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如 何剪法使水槽的容积最大?先编写M 文件fun0.m 如下: function f=fun0(x) f=-(3-2*x).^2*x;主程序为wliti2.m:[x,fval]=fminbnd('fun0',0,1.5); xmax=xfmax=-fval 运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.实验5: MATLAB 图论问题计算【实验目的】了解用Matlab 软件求解图论模型及层次分析模型的方法。