版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、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的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的
2、向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号( )内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。如:,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
3、,特殊矩阵的生成,命令 全零阵 函数 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随机
4、矩阵,命令 全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常用命令
5、,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 usi
6、ng 160 bytes 使用clear可以删除工作空间的变数: clear A A ? Undefined function or variable A.,Matlab常用命令应用,变量与常量 变量是任何程序设计语言的基本要素之一,MATLAB语言当然也不例外。与常规的程序设计语言不同的MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。 在MATLAB语言中变量的命名应遵循如下规则: (1)变量名区分
7、大小写。 (2)变量名长度不超31位,第31个字符之后的字符将被MATLAB语言所忽略。 (3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。 与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说全局变量均用大写的英文字符表示。 MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。,另外MATLAB有些永久常数(Permanent constants),虽
8、然在工作空间中看不 到,但使用者可直接取用,例如: 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=poi
9、sspdf(x,5); stem(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 AB= -7 0 -5 -2 -3 -4 -3 -6 4,运算符:“”和“”分别为加、减运算符。 运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。,加、减运算,例 A=1, 1, 1; 1, 2, 3; 1, 3, 6 B=8
10、, 1, 6; 3, 5, 7; 4, 9, 2 AB=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对应元素相乘。,向量的点乘(内积),需要注意的是点乘与矩阵的
11、乘法是有区别的,例: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自
12、乘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
13、(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)部分,矩阵求逆,命令 逆,子矩阵
14、的提取和运算,使用命令:BA(v1, v2),其中, v1向量表示子矩阵要包含的行号 构成的向量, v2表示要包含的列号构成的向量。若v1为:,则表示要 提取所有的行,同样使用列号。关键词end表示最后一行(或列),例如:B1A(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,我们可以对矩阵进行各种处
15、理:,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)命令:在水平方向“铺
16、放”三个矩阵,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,该函数先将
17、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(
18、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)定义的颜色,以区别不
19、同的线条。在用完上述属性值后,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,Line
20、Speci的线条。其中参数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,绘图中的一些线型和颜色,特殊标记,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(v1,v2); z=x.*y; mesh(x,y,z),练
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- MT/T 1303-2025连续采煤机使用与管理规范
- GB/T 9996.1-2026棉及化纤纯纺、混纺纱线外观质量黑板检验方法第1部分:综合评定法
- 初中英语九年级上册Module 2 Public Holidays Unit 3 Language in Use综合语用·文化比较课教学设计
- 小学六年级数学《分数乘整数:从计数单位到运算一致性》教学设计
- 初中物理九年级上册《分子动理论与内能》单元整体教学设计
- 初中二年级物理(沪粤版)《走进物理世界》单元整体教学设计
- 小学语文二年级《雪被子》教学设计
- 2025-2026学年上海市黄浦区格致中学高二(下)期末数学试卷(含答案)
- 2026空中交警面试题及答案
- 2026普外科应聘面试题及答案
- 2026年全国中级经济师之中级经济师经济基础知识考试综合能力题详细参考解析
- 2026江苏淮安淮阴区国家统计局淮阴调查队招聘编制外工作人员1人笔试参考题库及答案详解
- 2026年企业上半年安全生产工作总结及计划
- 广东2026公需课《加快培育发展新质生产力》题库及答案
- 2026年全国新高考1卷英语试卷(含答案及详解)
- 检验科实验室标本处理与运输指南
- GD T 形状及位置公差分析(一)
- 套扣式支模架专项施工方案
- 女性不孕症研究白皮书
- 铁路岩溶路基注浆施工质量检测细则
- 美发店卫生的管理制度 篇2
评论
0/150
提交评论