实验二十四MATLAB语言基础年级专业:10级计算机科学与技术2班姓名:完成时间:2011.11.23(一)、实验目的了解Matlab语言及其在理工科课程中的应用。(二)、实验仪器装有Matlab软件的计算机一台。(三)、实验内容1、矩阵运算。(1)矩阵的输入。输入矩阵最简单的方法是把矩阵的元素直接排列在括号中。每行内的元素间用空格或逗号公开,行与行的内容间用分号隔开。例如输入:A=[111;222;333]截图如下:(2)矩阵转置。矩阵的转置用符号“’”来表示和实现。例如输入:A=[111;222;333]截图如下:(3)矩阵加减。矩阵的加减运算使用的是“+”和“-”运算符。而矩阵必须具有相同阶数才进行加、减运算。例如A是3X3矩阵,D是3X1矩阵,就不能进行A+D运算。例如输入A=[135;7911;131517]B=[246;81012;141618]则截图如下:加法:减法:(4)矩阵乘法用*表示,当两矩阵中前一矩阵的列数和后一矩阵和行数相同,可以进行乘法运算,这与数学上的形式是一致的,两个相同维数向量的内积也可用这种乘法来实现。例如输入A=[123]’,B=[456]’。截图如下:(5)矩阵的行列式。N阶矩阵A的行列式由det(A)给出,如A=[123;456;789]截图如下:(6)矩阵求逆,非奇异矩阵A的逆矩阵由inv(A)给出。例如A=[123;456;780]结果为:(7)特征性。如果A是n阶矩阵,满足式Ax=λx的λ称为A的特征值,x为A的特征向量。例如A=[01;-10]截图如下:2、绘图(1)二维数据作图如果y是一个向量,那么plot(y)绘制一个y元素和y元素序号之间关系的线性坐标图,例如要画出y元素的序号1,2,3,4,5,6,7,对应的y元素分别为0,0.48,0.84,1,0.91,0.6,0.14的图形,则输入命令y[0,0.48,0.84,1.0,0.91,0.6,0.14]plot(y)坐标x、y的刻度是自动给出的。MATLAB显示图形是以给出图形窗口来显示的。若想对图形加上标注,则将当前窗口切换成MATLAB命令窗口并使之成为流动窗口,再从命令窗口中输入相应的图形加注命令。例如:输入下列命令title(‘Myfirstplot’);xlabel(‘fortnights’);ylabel(‘furions’);grid这里,第一条语句是为了给出图的题头,第二条、第三条语句分别为了给出x轴与y轴标注,第四条是为了图形加上网格。最后结果截图如下:(2)二维函数作图如果x和y是同样长度的向量,plot(x,y)命令可画出x元素对于y元素的y-x坐标图。x=0:0.05:4*pi;y=sin(x);plot(x,y)这里,第一条语句给出变量x所取得区间0至4π,步长为0.05。第二、三条语句绘制正弦函数图。(3)三维函数作图为显示两变量函数Z=f(x,y)的图形,第一步是产生特定期的X和Y矩阵,它们在整个函数定义域中分别由重复的行和列构成。在这个基础上,函数便可以直接计算和绘图。考察sin(r)/r函数,它产生像”阔边帽”形状的图形,对此图形用以下方法:x=-8:0.5:8;y=x’X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(Z)第一条语句限定定义域和绘图的步长(由后面建立的X,Y矩阵的对应关系显示出来),在其上计算函数值,第三条语句建立一个具有重复行X矩阵;第四条语句产生相类的Y矩阵,第五条语句产生矩阵R,它含有矩阵中心即坐标原点至定义域中任一点(x,y)的距离;之后形成sin(R)./R函数并用mesh命令给出结果。截图如下:3、数值积分函数语句[Q,CNT]=QUAD(’FUNFCN’,A,B,TOL,TRACE)参数说明:FUNFCN包含函数名的字符串,给出被积函数fA输入参数,函数f的积分上限B输入参数,函数f的积分下限TOL输入参数,积分精度,为小的正数TRACE输入参数,如果trace不为零,则作出积分函数f的积分图;否则不作图Q输出参数,函数的积分值CNT参数输出,函数f的估计值例计算定积分10)1log(dxxI。利用下列命令I=quad(‘log(1+x)’,0,1)截图如下:4、解代数方程求解多项式方程的命令是roots(a),其中a是多项式的系数组成的向量。例:求三次方程式059323xxx的根。截图如下:5、曲线拟合在MATLAB中,函数polyfit可以用最小二乘法对数据进行多项式拟合,其调用格式为polyfit(x,y,n),其中x,y为所给数据的x,y坐标向量,n为多项式的次数,运行结果给出多项式拟合曲线的n+1个系数,例如对数据向量x=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];y=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2];用二次多项式进行曲线拟合时.只要用命令n=2;p=polyfit(x,y,n)即可得到p=-9.810820.1293-0.0317这表明拟合的二次多项式为0317.01293.208108.92xxy为了将拟合曲线与所给数据进行比较,利用下列命令xi=linspace(0,1,100);z=polyval(p,xi);plot(x,y,’o’,x,y,xi,z,’·’)