收藏 分销(赏)

Matlab基础与数学建模.ppt

上传人:pc****0 文档编号:13756666 上传时间:2026-04-10 格式:PPT 页数:53 大小:1.57MB 下载积分:10 金币
下载 相关 举报
Matlab基础与数学建模.ppt_第1页
第1页 / 共53页
Matlab基础与数学建模.ppt_第2页
第2页 / 共53页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Matlab,与数学建模,Matlab,简介,1997,年仲春,,MATLAB5.0,版问世,紧接着是,5.1,、,5.2,,以及和,1999,年春的,5.3,版。与,4.x,相比,现今的,MATLAB,拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。,发展至今,,Matlab,R2010,版已经问世,Matlab,简介,Matlab,简介,Matlab,软件主要由三部分组成:,Matlab,主包,,Simulink,和工具箱,Matlab,软件的组成,第,1,章 矩阵及其基本运算,1,实数值矩阵输入,MATLAB,的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。,不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号(,)内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如:,1),Time=11 12 1 2 3 4 5 6 7 8 9 10,Time=,11 12 1 2 3 4 5 6 7 8 9 10,2),A=1 2 3,;,2 3 4,;,3 4 5,A=1 2 3,2 3 4,3 4 5,3),Null_M,=%,生成一个空矩阵,4),A=A;1 2 3,1;2;3;4,特殊矩阵的生成,命令,全零阵,函数,zeros,格式,B=,zeros(n,)%,生成,nn,全零阵,B=,zeros(m,n,)%,生成,mn,全零阵,B=,zeros(m,n)%,生成,mn,全零阵,B=,zeros(size(A,)%,生成与矩阵,A,相同大小的全零阵,命令,单位阵,函数,eye,格式,Y =,eye(n,)%,生成,nn,单位阵,Y =,eye(m,n,)%,生成,mn,单位阵,Y =,eye(size(A,)%,生成与矩阵,A,相同大小的单位阵,命令,均匀分布随机矩阵,函数,rand,格式,Y=,rand(n,)%,生成,nn,随机矩阵,其元素在(,0,,,1,)内,Y=,rand(m,n,)%,生成,mn,随机矩阵,命令,全,1,阵,函数,ones,格式,Y=,ones(n,)%,生成,nn,全,1,阵,Y=,ones(m,n,)%,生成,mn,全,1,阵,Y=,ones(m,n)%,生成,mn,全,1,阵,Y=,ones(size(A,)%,生成与矩阵,A,相同大小的全,1,阵,思考:如何产生,20,至,50,间的随机数?,向量生成方法,2.,定数线性采样法,该采样法在给定的范围内确定等距离的一个样本数。该方法很实用,特别适合,定义大的数组,例如:在 之间取,5,个点,linspace(-pi,pi,5),3.,利用随机数发生器定义一维数组,例如:产生,5,个(,0,,,1,)均匀分布随机数,并定义一维数组,x,。,x=rand(1,5),Matlab,常用命令,Matlab,常用命令,若要检视现存於工作空间(,Workspace,)的变数,可键入,who,:,who,Your variables are:,testfile,x,这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入:,whos,Name Size Bytes Class,A 2x4 64 double array,B 4x2 64 double array,ans,1x1 8 double array,x 1x1 8 double array,y 1x1 8 double array,z 1x1 8 double array,Grand total is 20 elements using 160 bytes,使用,clear,可以删除工作空间的变数:,clear A,A,?Undefined function or variable A.,Matlab,常用命令应用,变量与常量,变量是任何程序设计语言的基本要素之一,,MATLAB,语言当然也不例外。与常规的程序设计语言不同的,MATLAB,并不要求事先对所使用的变量进行声明,也不需要指定变量类型,,MATLAB,语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,,MATLAB,语言将使用新值代替旧值,并以新值类型代替旧值类型。,在,MATLAB,语言中变量的命名应遵循如下规则:,(,1,)变量名区分大小写。,(,2,)变量名长度不超,31,位,第,31,个字符之后的字符将被,MATLAB,语言所忽略。,(,3,)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。,与其他的程序设计语言相同,在,MATLAB,语言中也存在变量作用域的问题。在未加特殊说明的情况下,,MATLAB,语言将所识别的一切变量视为局部变量,即仅在其使用的,M,文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字,global,。一般来说全局变量均用大写的英文字符表示。,MATLAB,语言本身也具有一些预定义的变量,这些特殊的变量称为常量。,另外,MATLAB,有些永久常数(,Permanent constants,),虽然在工作空间中看不,到,但使用者可直接取用,例如:,pi,ans,=,3.1416,=,下表即为,MATLAB,常用到的永久常数。,小整理:,MATLAB,的永久常数,i,或,j,:基本虚数单位(即),eps,:系统的浮点(,Floating-point,)精确度,inf,:无限大,例如,1/0,nan,或,NaN,:非数值(,Not a number,),例如,0/0,pi,:圆周率,p,(,=3.1415926.,),realmax,:系统所能表示的最大数值,realmin,:系统所能表示的最小数值,nargin,:,函数的输入引数个数,nargout,:,函数的输出引数个数,特别注意,作出泊松分布的密度图形,x=0:20;,y=poisspdf(x,5);,ste,m,(x,y,),将硬盘的数据读入变量,现在有一组数据保存在,three.xls,文件中,要在,Matlab,中读入,这组数据,a=,xlsread(e:three.xls,),如果保存在文件,soil.txt,中只要输入,a=,load(e:soil.txt,),矩阵的简单运算,结果显示:,A+B=,9 2 7,4 7 10,5 12 8,A,B=,-7 0 -5,-2 -3 -4,-3 -6 4,运算符:“”和“”分别为加、减运算符。,运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。,加、减运算,例,A=1,1,1;1,2,3;1,3,6,B=8,1,6;3,5,7;4,9,2,A,B=A+B,A-,=A-B,运算符:*,运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。,1,两个矩阵相乘,乘法,例,X=2 3 4 5;,1 2 2 1,;,Y=0 1 1;,1 1 0;,0 0 1;,1 0 0,;,Z=X*Y,结果显示为:,Z=,8 5 6,3 3 3,上例中:,a=2*X,则显示:,a=,4 6 8 10,2 4 4 2,矩阵的数乘:数乘矩阵,维数相同的两个向量的点乘。,数组乘法:,A.*B,表示,A,与,B,对应元素相乘。,向量的点乘(内积),需要注意的是点乘与矩阵的乘法是有区别的,例:,a=1 2 3;4 2 6;7 4 9,b=4;1;2;,x=ab,则显示:,x=,-1.5000,2.0000,0.5000,如果,a,为非奇异矩阵,则,ab,和,b/a,可通过,a,的逆矩阵与,b,阵得到:,ab=,inv(a,)*b,b/a=b*,inv(a,),数组除法:,A./B,表示,A,中元素与,B,中元素对应相除。,矩阵除法,Matlab,提供了两种除法运算:左除(,)和右除(,/,)。一般情况下,,x=ab,是方程,a*x=b,的解,而,x=b/a,是方程,x*a=b,的解。,同样此时也要注意除法和点除之间的区别,运算符:,运算规则:,(,1,)当,A,为方阵,,P,为大于,0,的整数时,,AP,表示,A,的,P,次方,即,A,自乘,P,次;,P,为小于,0,的整数时,,AP,表示,A-1,的,P,次方。,(,4,)标量的数组乘方,P.A,,标量的数组乘方定义为数组乘方:,A.P,:表示,A,的每个元素的,P,次乘方。,矩阵乘方,矩阵的乘方要求矩阵,A,是方阵,例,A=1 2 3;4 5 6;7 8 9,A=,1 2 3,4 5 6,7 8 9,D=,det(A,),D=,0,运算符:,运算规则:若矩阵,A,的元素为实数,则与线性代数中矩阵的转置相同。,若,A,为复数矩阵,则,A,转置后的元素由,A,对应元素的共轭复数构成。,若仅希望转置,则用如下命令:,A.,。,矩阵转置,方阵的行列式,函数,det,格式,d=,det(X,)%,返回方阵,X,的行列式的值,函数,inv,格式,Y=,inv(X,)%,求方阵,X,的逆矩阵。若,X,为奇异阵或近似奇异阵,将给出警告信息。,例,1-43,求的逆矩阵,方法一,A=1 2 3;2 2 1;3 4 3;,Y=,inv(A,),或,Y=A(-1),则结果显示为,Y=,1.0000 3.0000 -2.0000,-1.5000 -3.0000 2.5000,1.0000,1.0000,-1.0000,方法二:由增广矩阵进行初等行变换,B=1,2,3,1,0,0;2,2,1,0,1,0;3,4,3,0,0,1,;,C=,rref(B,)%,化行最简形,X=C(:,4:6)%,取矩阵,C,中的,A(-1),部分,矩阵求逆,命令,逆,子矩阵的提取和运算,使用命令:,B,A,(,v,1,,,v,2,),,其中,,v,1,向量表示子矩阵要包含的行号,构成的向量,,v,2,表示要包含的列号构成的向量。若,v,1,为:,则表示要,提取所有的行,同样使用列号。关键词,end,表示最后一行(或列),例如:,B1,A(1:2:end,:),表示提取,A,矩阵的全部奇数行、所有列,B2=A(3,2,1,2,3,4),表示提取,A,矩阵,3,,,2,,,1,行、,2,,,3,,,4,列构成子矩阵。,B3=A(:,end:-1:1),表示将,A,矩阵左右翻转,即最后一列排在最前面。,A(:,2)=%,删除第二列(:代表所有行),例,A=,1 2 3 4,5 6 7 8,9 10 11 12,我们可以对矩阵进行各种处理:,A(2,3)=5%,改变位於第二列,第三行的元素值,A=,1 2 3 4,5 6 5 8,9 10 11 12,B=A(2,1:3)%,取出部份矩阵,B,B=,5 6 5,A=A B%,将,B,转置後以行向量并入,A,A=,1 2 3 4 5,5 6 5 8 6,9 10 11 12 5,A=A;4 3 2 1%,加入第四行,A=,1 3 4 5,5 5 8 6,9 11 12 5,4 3 2 1,A(1 4,:)=%,删除第一和第四行(:代表所有列),A=,5 5 8 6,9 11 12 5,数组操作函数,Repmat,(,D,,,1,,,3,)命令:在水平方向“铺放”三个矩阵,D,1 0 0,0 1 0,0 0 1,则,Repmat,(,D,,,1,,,3,)结果为,ans,=,1 0 0 1 0 0 1 0 0,0 1 0 0 1 0 0 1 0,0 0 1 0 0 1 0 0 1,Diag(A,1),命令:对矩阵,A,取第一上对角元素,可运行,diag(A,-1),查看运行结果,Triu(A,),命令:取,A,的上三角阵;,tril(A,),命令:取,A,的下三角阵,矩阵的逻辑运算,矩阵的比较运算:用表示等于关系,用,=,表示大于等于关系,用,=,表示不等于关系等。,A=1 2 3;4,5,6;7,8,0,Find(A,=5),找出矩阵中元素大于等于,5,的下标,ans,=,3,5,6,8,该函数先将,A,按列构成列向量,然后判断哪些元素,大于等于,5,,返回其下标。,i,j,=,find(A,=5);i,j,同时返回行和列坐标,all(A,=5),判断,A,矩阵的某列元素是否全部大于等于,5,,是返回,1,,否则为,0,any(A,=5),你能猜测表示什么含义吗?,abs(x,),:纯量的绝对值或向量的长度,angle(z,),:复数,z,的相角,(Phase angle),sqrt(x,),:开平方,real(z,),:复数,z,的实部,imag(z,),:复数,z,的虚部,conj(z,),:复数,z,的共轭复数,round(x,),:四舍五入至最近整数,fix(x,),:无论正负,舍去小数至最近整数,floor(x,),:地板函数,即舍去正小数至最近整数,ceil(x,),:天花板函数,即加入正小数至最近整数,rat(x,),:将实数,x,化为分数表示,rats(x,),:将实数,x,化为多项分数展开,sign(x,),:符号函数,(,Signum,function),。,当,x0,时,,sign(x,)=1,。,rem(x,y,),:求,x,除以,y,的馀数,gcd(x,y,),:整数,x,和,y,的最大公因数,lcm(x,y,),:整数,x,和,y,的最小公倍数,MATLAB,常用的基本数学函数,第,2,章 绘图与图形处理,命令,1,plot,功能 线性二维图。在线条多于一条时,若用户没有指定使用颜色,则,plot,循环使用由当前坐标轴颜色顺序属性(,current axes,ColorOrder,property,)定义的颜色,以区别不同的线条。在用完上述属性值后,,plot,又循环使用由坐标轴线型顺序属性(,axes,LineStyleOrder,property,)定义的线型,以区别不同的线条。,用法,plot(X,Y,),当,X,Y,均为实数向量,且为同维向量(可以不是同型向量),,X=,x(i,),,,Y=,y(i,),,则,plot(X,Y,),先描出点,(,x(i,),,,y(i,),,然后用直线依次相连。,二维图形的绘制,1,散点图的绘制,画散点图一般使用命令,scatter,,其调用格式为:,scatter(x,y,),2,二维曲线的绘制,plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2),将按顺序分别画出由三参数,定义,Xi,Yi,LineSpeci,的线条。其中参数,LineSpeci,指明了线条的类型,标记,符号,和画线用的颜色。,例,7-1,t=0:pi/20:2*pi;,plot(t,t,.*,cos(t),-.r,*),hold on,plot(exp(t/100).*sin(t-pi/2),-mo),plot(sin(t-pi),:bs,),hold off,绘图中的一些线型和颜色,定义符,-,-,:,-.,线型,实线(缺省值),划线,点线,点划线,定义符,R,(,red,),G(green,),b(blue,),c(cyan,),颜色,红色,绿色,兰色,青色,定义符,M(magenta,),y(yellow,),k(black,),w(white,),颜色,品红,黄色,黑色,白色,特殊标记,定义符,+,o(,字母,),*,.,x,标记类型,加号,小圆圈,星号,实点,交叉号,定义符,d,v,标记类型,棱形,向上三角形,向下三角形,向右三角形,向左三角形,定义符,s,h,P,标记类型,正方形,正六角星,正五角星,theta=0:0.01:6*pi;,rho=5*sin(4*theta/3);,polar(theta,rho,),例子:试用极坐标绘制函数,polar(),绘制出 的极坐标曲线,分块显示的例子,关于条形图的例子,建立三维饼图,三维图形的绘制,1,三维曲线的绘制,三维曲线可以使用,plot(),命令,其调用格式为,plot3(x,y,z),theta=0:0.01:2*pi;,x=,sin(theta,);,y=,cos(theta,);,z=theta;,plot3(x,y,z),例如:以下的程序是在绘制什么图形?,2,三维曲面绘制,绘制三维曲面,先调用,meshgrid,(),函数生成网格矩阵数据,x,和,y,,再使用,mesh(),或,surf(),等函数进行三维图形绘制。其调用格式为,x,y,=meshgrid(v,1,v,2,);,z=x.*y;,mesh(x,y,z,),练习:求,x2+y2=z,的空间曲面,要求:图像的横,纵坐标的范围在,-4,到,4,之间,1,、在图形上加格栅、图例和标注,1,),GRID ON,:,加格栅在当前图上,GRID OFF,:,删除格栅,处理图形,2,),hh,=,xlabel(string,):,在当前图形的,x,轴上加图例,string,hh,=,ylabel(string,):,在当前图形的,y,轴上加图例,string,hh,=title(string):,在当前图形的顶端上加图例,string,hh,=,zlabel(string,):,在当前图形的,z,轴上加图例,string,例,在区间,0,2*pi,画,sin(x),的图形,并加注图例“自变量,X”,、“,函数,Y”,、“,示意图”,并加格栅,.,解,x=linspace(0,2*pi,30);,y=sin(x);,plot(x,y),xlabel,(,自变量,X),ylabel,(,函数,Y),title(,示意图,),grid on,Matlab,liti2,3,),hh,=,gtext(string,),命令,gtext(string,),用鼠标放置标注在现有的图上,.,运行命令,gtext(string,),时,屏幕上出现当前图形,在,图形上出现一个交叉的十字,该十字随鼠标的移动移动,,当按下鼠标左键时,该标注,string,放在当前十交叉的位,置,.,例,在区间,0,2*pi,画,sin(x),,,并分别标注“,sin(x)”,”,cos(x,)”.,解,x=linspace(0,2*pi,30);,y=sin(x);,z=,cos(x,);,plot(x,y,x,z),gtext(sin(x);gtext(cos(x,),Matlab,liti3,返回,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服