ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:147.61KB ,
资源ID:12891411      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12891411.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB中的矩阵的输入.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

MATLAB中的矩阵的输入.docx

1、MATLAB中的矩阵的输入第一节 MATLAB 中的矩阵的输入1 直接输入一、直接在工作窗中输入:A=2, 4, 6, 8;1 3 5 7; 0 0 0 0;1,0,1,0 其意义是定义了矩阵 二、如果矩阵中的元素是等步长的,可以用下面的方法 A=1:0.2:2;1:6;2:2:12A=1:5 “”号在这里表示为转置,而 1:5 中间少了一个循环步长,此时将步长自动取为 1 。2 增删改设已经定义 A=1 2 3 4 5;10 8 6 4 2; B=0 1;1 0; C=1 2;2 4,即已定义A= B= C= 1 2 3 4 5 0 1 1 210 8 6 4 2 1 0 2 4则命令:A=

2、A(:,1:4);C,B,0 2 0 4 将 A 定义成:A= 而 A(:,3)=; 将删除 A 的第三列 ,得 1 2 3 4 0 A= 1 2 4 010 8 6 4 2 10 8 4 21 2 0 1 0 1 2 1 02 4 1 0 4 2 4 0 43 命令生成使用 MATLAB 命令生成矩阵一般使用下面的命令 命令 linspace,它有两个格式:a1=linspace(1,100) %生成一个从1到100的有100 个元素的向量a2=linspace(0,1)%仍然是有 100 个元素但是是从 0 到 1 的向量 a3=linspace(0,-1) %请与上一个向量进行比较上面是

3、第一种格式 linspace(a,b),它是将 a 到 b 等分成 100份形成的向量。第二种格式 linspace(a,b,n) 中的 n 为一个正整数,表示是从 a 到 b 等分成 n 份后形成的向量。例如a4=linspace(1,100,11) %从 1 到 100 但只形成11 个元素的向量 a5=linspace(1,100,10) %自己体会这个命令作用 a6=linspace(0,1,11) %加上了“”表示转置a7=linspace(0,-1,10) %自己体会这个命令作用2 命令 ones,zeros 分别形成元素全为 1或全为零的矩阵它也有两种格式。请观察它们的作用: o

4、nes(6,3) %生成 63 阶元素全为 1 的矩阵 ones(5) %生成 5 阶元素全为 1 的方阵 zeros(3,6) %生成 36 阶元素全为零的矩阵 zeros(4) %生成四阶元素全为零的方阵 3 命令 diag 生成对角阵及从矩阵的主对角线生成向量,例如:diag(1 3 5 7) %生成了以 1 3 5 7 为主对角线的方阵: ans= 1 0 0 0 0 3 0 0 0 0 5 01 0 0 7相反如果先定义了一个三阶方阵:A=1 2 3;4 5 6;7 8 9显示: A= 1 2 3 4 5 6 7 8 9则命令 a8=diag(A) 将用 A 的主对角线生成新的列向量

5、:a8= 1 5 9命令 eye(n) 生成 n 阶单位方阵,即主对角线上元素为 1,其余元素为零的方阵。例如键入:A=eye(5) 将得到:A= 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 00 0 0 0 1 第二节 MATLAB 文件处理 1 文件编辑如果要在 MATLAB 的工作窗定义矩阵,则用鼠标点击屏幕左上方的 File 选择项,再从中选择 New 中的M-file 项并且用鼠标点击它,就打开了 MATLAB 文件编辑窗并且可以在此窗中定义 MATLAB 矩阵了(注意对于已有的文件,可以选择 open 来打开它,然后对其进行修改)。在 MATLAB

6、文件编辑窗中定义的矩阵与工作窗中定义的方法是完全一样。并且可以在MATLAB 文件编辑窗的菜单中使用菜单命令直接运行。 可以在MATLAB中使用菜单中的“File”中的“Set path”将当前工作文件夹定义在你正在工作的文件夹。2 MATLAB工作窗中变量值的保存与调用MATLAB 工作窗中的变量在退出 MATLAB 工作状态后值不能保存,如果需要保存,可以使用命令 save 将其存储到磁盘上,命令格式有两种:第一种是用二进制格式来存储。例如先定义三个矩阵:A1=0:3;2*ones(4);4:1:1 ; A2=1 3 2 4;A3=zeros(3,1);生成下列矩阵与向量:键入:save

7、file1 A1 A2 A3 %用二进制格式以文件名 file1.mat 存储 A1,A2,A3save file2.m A1 A3 ascii%用 ascii 码以文件名 file2.m 存储 A1,A3我们还要注意:用二进制格式存储的文件连变量名一起存储并可再重新调入时恢复变量的值,而用 ASCII码存储的文件只存储了变量的值,而变量名是没有的。用二进制格式存储的变量,可用命令 load 调用,调用格式为: load 例如,前面用 save file1 存储了所有变量 A1,A2,A3,调用时只要键入 load file1 即可。 第三节 MATLAB 中的矩阵运算 1 矩阵运算命令与通常

8、线性代数命令运算的异同一、MATLAB 在运行时是以矩阵为单位进行运算的。它通常有两种运算,第一种是矩阵运算,运算时满足线性代数中矩阵运算所规定一切运算法则,如加、减、乘,乘方即幂运算(当然运算要符合规定的条件,例如矩阵 A 与矩阵 B 相乘,必须 A 的列数等于 B的行数),运算符号:A+B, A-B, A B (注意“*”不能少) An二、不同之处:1、与通常矩阵运算不同之处在:在线性代数中矩阵不能与数相加减,而在MATLAB的矩阵运算中允许矩阵与数相加减。2、函数命令可以直接作用到矩阵的每一个元素。3、线性代数中矩阵没有除法,而MATLAB中有矩阵除法,例如:输入 A=1:3;4:6;7

9、:9;b=14,32,50;c=Ab显示: c=204 4、函数作用到矩阵的每一个元素,例如如果令 A=1 1/2 1/3; 1/2 1/4 1/8*pi,即定义 则三、MATLAB中除法运算的规定与意义:1、运算定义:设已经定义好矩阵 A 与矩阵 B,如果矩阵 A 与矩阵B 的行的维数相同,则 MATLAB 中可以用矩阵 A 左除矩阵 B,即可以令: X=AB如果矩阵 A 与矩阵B 的列的维数相同,则 MATLAB 中可以用矩阵 A 右除矩阵 B,即可以令: X=B/A 2、矩阵除法的意义 给出线性方程组 AX=B,则 X=A 给出线性方程组的一个解。而 X=B/A 给出了线性方程组 XA=

10、B 的一个解。 目前我们用 MATLAB 求线性方程组的解只有三个方法:当 A 是可逆方阵时,X=inv(A)*B 给出线性方程组AX=B 的唯一解。但是 A 不可逆时方法失效。可用命令 rref 化线性方程组 AX=B 的增广矩阵为行最简阶梯矩阵方法来求解,但线性方程组可能出现无解(称为“超定”)、唯一解(称为“恰定”)及无穷多解(称为“欠定”)的情形。无论 A 是否可逆都可用MATLAB 除法求解,并且无论何种情形都是唯一解。当方程存在唯一解时,三种方法求出的解是一样的。但是用除法作的解一般精度更高。方程为“超定”或者“欠定”时解意义则不同。线性方程组 AX=b 为欠定时有无穷个解,X=A

11、b得到其中解分量中零元素为最多的一个特解。线性方程组 AX=b 为超定时是无解的, 用 X=Ab得到的是使范数 |AX-b| 为最小的解。我们不详细说明这个范数的意义,可理解为使 AX-b 最接近于零的解。例如方程组 通解为:输入 A=1:3;4:6;7:9;b=14,32,50;c=Ab显示: c=204是其中有一个零分量的特解。输入 d=0 32 50;g=Ad显示 g= 1.0e+017 * 0.6305 -1.26100.6305再输入 h=A*g-d显示 h=329614因此 g 不满足 A*g=d,只是使 A*g-d 尽可能接近于零。2 常用的数学运算命令 以下是一些在MATLAB

12、中最常用的数学运算命令(均用小写字母,命令的作用可在MATLAB中用 help 查询其作用与格式):一、基本函数运算命令 1、三角函数: sin cos tan cot sec csc 2、反三角函数:asin acos atan acot asec acsc atan2(四象限反正切)3、双曲函数: sinh cosh tanh coth sech csch4、反双曲函数:asinh acosh atanh acoth asech acsch5、复数:real imag conj angle6、小数取整:fix(朝零方向),ceil(朝正无穷方向),floor(朝负无穷方向),round(四

13、舍五入)7、对数与指数:log10 log exp8、其它:sqrt abs sign sum prod solve二、线性代数运算命令: 1、det inv rank rref eig cond行列式求值命令 det, 矩阵求秩命令 rank,求方阵的逆方阵命令,inv 求矩阵行最简阶梯阵命令 rref,求特征值与特征向量命令 eig,求矩阵条件数命令 cond三、多项式运算命令 MATLAB中用向量表示多项式,如 a= 1 2 3 0 4 表示多项式:常用的多项式运算命令有:1、多项式加减法:在次低的向量前面加零后使其元素个数相同,再按向量加减法运算命令进行。 2、多项式 a 与多项式 b

14、 相乘:c=conv(a, b); 3、多项式 a除以多项式 b: q, r=deconv(a, b) q 是商, r 余项) 4、多项式求值: p1=polyval(a, x) (多项式 a 在点 x 处的值) 5、方阵多项式求值: p2=polyvalm(a, A) (矩阵多项式 a 在方阵 A 处的值)6、多项式求根: p3=roots(a) (求多项式 a 的根)7、多项式微分: p4=polyder(a)8、多项式拟合: p5=polyfit(x,y,n)例:x=1 1.2 3 4.2 5; y=x.3-2*x.2+3*x-1; p5=polyfit(x,y,3) 将得出: p5=1

15、.0000 -2.0000 3.0000 -1.0000四、高等数学中的数值运算命令在MATLAB数值计算中很少有高等数学中的运算命令,下面只介绍两个:1、求数值积分: trapz2、差分: diffMATLAB中也有很多符号运算命令。但不在本课程中。在那些符号运算命令中能实现许多高等数学中的运算。五、显示格式 有 format rat, format long, format short, format long g, format short g, format long e , format short e , format hex等等。 第四节 MATLAB 的数组操作前面我们谈到了

16、MATLAB 中有数与矩阵的加减法,这是线性代数中所没有的。MATLAB 中还有许多与高等数学中内容不同的运算。这些运算对于求解实际问题很有作用,它使编程比其它语言要简单方便得多。MATLAB 中的数组运算就是其它计算机语言中所没有的使编程变得十分简单的运算。MATLAB 中的数组运算只在同阶矩阵中进行。设 A,B 是两个已经定义好的同阶矩阵:则数组运算 A.*B,A./B,A.B 的值分别是:除了前面讲过的数与矩阵的加减法(不算数组运算) 外,数与矩阵之间还有下面的数组运算: 从上面叙述可见矩阵与同阶矩阵之间(及数与矩阵之间)的数组运算的定义特点是: 1 定义在两个同阶矩阵或数与矩阵之间进行

17、;2 定义方法是前面一项与后面一项用小数点加运算符连结;3 定义的实质是:当定义的运算在矩阵之间时,是相同位置上的元素进行由运算符规定的运算。当定义的运算是矩阵与数之间,则是矩阵中的每一个元素与数进行运算符规定的运算。对于其他计算机语言,这些运算常常要通过双重循环才能完成,而在 MATLAB 中只要简单地用“.”加运算符即可表示,这是 MATLAB 特别方便之处。数组运算及函数运算定义容易记忆与使用,它在编程中十分方便,我们看后面的例。如果要画函数 e-xsinx2 +1 在区间 0,3 上的图形,操作过程是:x=0:0.01:3; %定义自变量 x 在区间 0,3 上的值y=exp(x).*

18、sin(x.2)+1 %用数组运算计算函数值 yplot(x,y) %作平面上的曲线图。只用简单三行命令完成了在其他计算机语言中要用很长程序才能完成的程序,这是 MATLAB 语言非常简便好用的原因。 第五节 MATLAB 作图下面介绍 MATLAB 中的作图命令。1 二维作图命令 plot一、MATLAB 二维作图命令最常用的是 plot,除作图外,还有如下可控制的操作:1、一张图上画多条曲线(可以使用hold命令)。2、一个屏幕上开多个窗口作图(使用subplot命令)。3、曲线选择线型、颜色(在每条曲线后加,.b 或者 ,color,1,0,0.5 等)。4、标注文字,使用命令:titl

19、e(字符) 图形标题xlabel(字符) x 轴标注,ylabel(字符) y 轴标注,zlabel(字符) z 轴标注,legend(字符, 字符,) 可移动标注text(x,y,(z),字符) 在指定坐标标注gtext(字符) 用鼠标在图形中选择地方标注5、坐标网格线显示与关闭命令 grid二、坐标轴控制(也适用于三维作图) axis 1、坐标轴刻度范围控制axis(xmin, xmax, ymin, ymax (, zmin, zmax)。 2、关闭坐标轴显示开关 axis(off) 或者 axis off,axis(on) 或者 axis on 3、坐标轴等刻度命令 axis(equa

20、l) 或者 axis equal 4、坐标轴等长命令 axis(square) 或者 axis squal 5、使坐标等刻度与等长命令失效命令 axis(normal) 或者 axis normal三、下面介绍一个在实际应用中非常有用的命令:ginput该命令在三维空间中仍然可用,但效果不如二维空间中那么好。四、背景色控制命令figure(color, r, g, b) 三维空间中此命令仍然适用。五、程序标注在程序中“%”后的部分用作标注。六、还有许多二维作图命令,请大家参看有关参考书。我们仅就使用二维等值线 contour命令用于求解线性方程组的例子。 MATLAB 二维作图命令 conto

21、ur可以用于求二维超越方程组的数值解。请看 exmaple1.m:x=0:0.01:2.4995;y=0:0.01:2.4995;A=(0*y+1)*sin(x)+y.2*(0*x+1)+log(5-(0*y+1)*x-y*(0*x+1)-7;contour(x,y,A,0,0)hold onB=3*(0*y+1)*x+2.y*(0*x+1)-(5-(0*y+1)*x-y*(0*x+1).3+1;contour(x,y,B,0,0)hold off此程序用于求方程组:的数值解。此方法的优点是:可以看到图形全貌,可以求出多解情形,可以获极高精度。练习 1:求曲线与曲线在区间0, 上的所有交点。练

22、习 2:求方程组 的数值解。要求将解代入方程后每个方程左方减去右方后的绝对值小于 0.00001。2 三维作图命令 一、MATLAB 三维作图曲线作图命令最常用的是 plot3,contour3。除作图外,还有如下可控制的操作:三维曲线作图是对参数式为作图。例如螺旋线: 作图命令是 t=0:0.01:10*pi;x=cos(t);y=sin(t);z=t/2; plot3(x,y,z)contour3是三维等值线作图。二、三维曲面作图 常用的三维曲面作图命令有:mesh , surf, meshc, meshz , waterfall, 我们重点介绍 mesh 与 surf。这两个命令都是作曲

23、面图形,但是 mesh 是用网格作图,而 surf 是用曲面片作图。效果有少许不同,但作图编程是相同的(这个作图过程比较复杂)。事实上它们都是用曲面参数式 作的图,因此要画曲面图形,首先得会写上面的参数式。然后会用上面的参数式编程。注意在编程时 z 都是二维矩阵,行数与向量 u 的维数相同,列数与 v 的维数相同,x, y 可以是与 z 维数相同的二维矩阵也可以是向量。请看下面马鞍面的作图过程:y= -1 :0.1: 1; x=y; z=(0*y+1)*x.2- y.2* (0*x+1); mesh(x,y,z);这个命令等价于y= -1 :0.1: 1; x=y; z= ones(size(

24、y)*x.2 - y.2*ones(size(x); surf(x,y,z);上面作的图是以 z 的高度作为图形色彩数据的(这是缺省时的数据)。如果加上颜色、光照、纹理、视角等设置,可以得出十分漂亮的图形。请看 example2.m。有时作图的参数式要使用比较复杂的数学运算,例如 2001 年全国数学建模竞赛时要求从血管的 100 张切片中读出血管的中心与半径。竞赛中要求将血管中心线向三个坐标平面投影。但是我们根据血管中心线可画出血管的三维图象。显然这更好看更直观。曲面参数式的推导见广西大学学报2003年第3期,而程序请看 example3.m。练习3:画一个求生圈的图。提示:求生圈的曲面参数

25、方程为: 练习4:画出在二维区域 x2 + y21 上的马鞍面 z= x2- y2。练习5:作曲面 z=x2+y2 与平面 4x+2y+5z=20 相交的图(要求平面只画出被曲面截出的部分,参考右图)。练习6:作圆柱面 x2+z2=1 与圆柱面 y2+z2=1 相交的图(要求平面只画出在每卦限的部分)。3 MATLAB 动画 MATLAB 中的动画功能不是太强,并且需要使用 MATLAB 的底层作图命令,即图形的句柄操作。MATLAB 中的作图命令如果使用了赋值语句,即将作图赋给了某个变量,则该变量即为此张图形的句柄。可以对此句柄设置一些图形属性,对于句柄图形我们在前面已经用到了,例如马鞍面的

26、图形中的赋值语句aa=surf(X,Y,Z);就是将曲面的句柄赋给 aa 了,然后用set(aa, Facecolor, 0,0.7,0, bb, Facecolor, 0.7,0,0.7)设置曲面颜色。MATLAB 动画实际上就是在句柄中设置了图形将是被复盖还是改写等属性,然后在作图时按不同的位置画图(同时擦除前面的图形或者复盖前面的图形以实现动画)。由于作动画一般要涉及编程,我们将此部分内容放到第四节中。在图形的属性控制中要注意区分各种图形对象:figure, axes, line, patch, surface, image, text 等等。4 MATLAB 图象处理 MATLAB 可

27、对图象作处理,常用的简单命令有:imread, image, colormapimread 可以读出图象数据,而image可以将图象数据显示为图象,而colormap可以设置图象色彩。练习7:本文件夹中有一张图“figure0”,是2002年全国数学建模大赛中的一张图,要求从图中读出图形的内切圆圆心与半径。 在MATLAB图象处理中还有光照、色彩、视角等许多处理。由于水平与时间关系,只能简单介绍。第六节 MATLAB 编程一、MATLAB 编程 MATLAB 可以单步运行,也可以编程运行。 与所有软件编程一样,MATLAB中也有条件、分支、循环等语句。条件语句: if end 或者 if el

28、se end循环语句: for end 或者 while end需要指出,在其他许多语言中需要循环的地方在MATLAB中是不需要循环的。下面我们看一个动画程序:画单摆的运动程序:pend.m。figure(color,1 1 1)plot(-0.2;0.2,0;0,color,y,linestyle,-,linewidth,10);%画悬线的横梁g=9.8; %重力加速度l=1; %线长theta0=pi/6; %初始角度x0=l*sin(theta0); %初始 x 值y0=-l*cos(theta0); %初始 y 值axis(-0.75,0.75,-1.25,0); %画坐标范围axis

29、(off); %关闭坐标显示head=line(x0,y0,color,r,linestyle,.,erasemode,xor,markersize,40); %定义小球格式body=line(0;x0,0;y0,color,b,linestyle,-,erasemode,xor); %定义悬线格式t=0; %时间初值dt=0.0005; %时间增量while 1 %死循环(关闭窗口后中止循环) t=t+dt; theta=theta0*cos(sqrt(g/l)*t); %计算时刻 t 时的幅角 x=l*sin(theta); %计算时刻 t 时的 x 坐标 y=-l*cos(theta);

30、 %计算时刻 t 时的 y 坐标 set(head,xdata,x,ydata,y); %计算时刻 t 时小球的位置 set(body,xdata,0;x,ydata,0;y); %计算时刻 t 时悬线的位置 drawnow; %重画小球与悬线end二、程序与函数将MATLAB运行中的每一句写在扩展名为“m”的文本文件中,就得到MATLAB程序文件。程序中的变量值都在工作窗中。如果是写成function u , v, =fun(x , y, )则是MATLAB函数,函数参数 x , y 可以是变量、向量或者矩阵,返回值 u, v 也可以是变量、向量或者矩阵,存储时函数名必须与存储文件名相同。 例如,运行 redotree(n, B) (设的初值为 B=0 0;0 1,取 n=5 或者 n=6),可以画出一棵树的图形。而运行leafage1(n

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2