1.MATLAB概述
- 格式:pdf
- 大小:1.80 MB
- 文档页数:55
日日行,不怕千万里;时时学,不怕千万卷。
第一讲 Matlab概述1.1 Matlab的历程和影响Matlab一词是Matrix Laboratory(矩阵实验室)的缩写。
20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授为减轻学生编程负担,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用Fortran编写的萌芽状态的Matlab。
经过几年的校际流传,在Little的推动下,Little、Steve、Bangert合作,于1984年成立了Math Works公司,并把Matlab正式推向市场。
这时的Matlab内核已采用C语言编写,而除了原有的数值计算功能外,还新增加了数据视图功能。
自从Matlab以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包纷纷淘汰,而改以Matlab为平台加以重建。
在进入20世纪90年代的时候,已经成为国际公认的标准计算软件。
在欧美大学里,诸如数理统计、自动控制、数字信号处理、模拟与数字通讯、时间序列分析、动态系统仿真等课程的教科书把Matlab作为一项重要的学习内容。
这几乎成了20世纪90年代教科书与旧版书籍的区别性标志。
Matlab是本科、硕士、博士生必须掌握的基本工具。
在国际学术界,Matlab已经被确认为准确、可靠的科学计算标准软件。
在许多国际一流刊物上,尤其是信息科学刊物,都可以看到Matlab的应用。
Matlab将数值分析、矩阵运算、信号处理、图形功能和系统仿真融为一体,使用户在易学易用的环境中求解问题,如同书写数学公式一样,避免了传统复杂的专业编程。
MathWorks公司对Matlab的优点描述是“计算、可视化及编程一体化”。
在设计研究单位和工业部门,被认为是进行高效研究、开发的首选工具。
1.2 Matlab的特点Matlab有不同于其它高级语言的特点,它被称为第四代计算机语言。
Matlab介绍入门知识1. Matlab简介MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵.MATLAB自问世以来,就是以数值计算称.MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”.经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具.由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的.MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具.工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等.随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,MATLAB 提供的工具箱已覆盖信号处理、系统控制、统计计算、优化计算、神经网络、小波分析、偏微分方程、模糊逻辑、动态系统模拟、系统辨识和符号运算等领域.当前它的使用范围涵盖了工业、电子、医疗、建筑等各行各业.MATLAB中包括了图形界面编辑GUI,让使用者也可以象VB、VC、VJ、DELPHI等那样进行一般的可视化的程序编辑.在命令窗口(matlab command window)键入simulink,就出现(SIMULINK) 窗口.以往十分困难的系统仿真问题,用SIMULINK只需拖动鼠标即可轻而易举地解决问题,这也是近来受到重视的原因所在.MATLAB 语言由美国 The MathWorks 开发,最早是由C.Moler用Fortran语言编写的,用来方便地调用LINPACK和EISPACK矩阵代数软件包的程序.后来他创立了MATHHWORKS公司,对MATLAB作了大量的、坚持不懈的改进.Cleve B.Moler是The MathWork公司的主席和首席科学家.曾任密歇系教授.他在两个计算机硬件制造商Intel公司的Hypercube组织和Arden Computers 公司工作了五年.他的主要专业兴趣在于数值分析和科学计算.他是MATLAB软件的创始者,也是著名的矩阵计算软件包LINPACK和EISPACK的著作这一,已撰写了三本有相关数值方法的教材.同时,他在SIAM(美国工业与应用数学学会)历任期刊编辑、委员会成员和副总裁,并从1996年开始担任理事会成员.2. Matlab入门知识Matlab变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符.在MATLAB中,变量名区分字母的大小写.赋值语句:变量=表达式或表达式其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵.clear命令用于删除MATLAB工作空间中的变量.who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单.who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息.利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat.MAT文件的生成和装入由save和load命令来完成.常用格式为:save 文件名 [变量名表] [-append][-ascii]load 文件名 [变量名表] [-ascii]其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作.变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔.当变量名表省略时,保存或装入全部变量.-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理.save命令中的-append选项控制将变量追加到MAT文件中.(1) 向量的创建用步长生成法:数组=初值:步长(增量):终值>> a=1:0.5:3a =1.0000 1.50002.0000 2.50003.0000用linspace生成:数组=linspace(初值,终值,等分点数目)>> b=linspace(1,3,5)b =1.0000 1.50002.0000 2.50003.0000列向量用分号(;)作为分行标记:>> c=[1;2;3;4;]c =1234若不想输出结果,在每一条语句后用分号作为结束符,若留空或用逗号结束,则在执行该语句后会把结果输出来.>> a+b;>> a+bans =2 3 4 5 6(2) 矩阵的创建直接输入:最简单的建立矩阵的方法是从键盘直接输入矩阵的元素.具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔.>> A=[1 2 3;4 5 6;2 3 5]A =1 2 34 5 62 3 5利用矩阵函数创建:>> B=magic(3)%魔方阵B =8 1 64 9 2>> C=hilb(3)%3阶Hilbert矩阵C =1.0000 0.5000 0.33330.5000 0.3333 0.25000.3333 0.2500 0.2000Matlab中用%引导注释其它创建矩阵函数还有:eye(m,n):生成m行n列单位矩阵.zeros(m,n):生成m行n列全零矩阵.ones(m,n):生成全1矩阵.rand(m,n):生成随机矩阵.rand:生成一个随机数.diag(A):取A的对角线元素.tril(A):取A的下三角元素.triu(A):取A的上三角元素.hilb(n):生成n维Hilbert矩阵.randn(n):产生均值为0,方差为1的标准正态分布随机矩阵.vander(V):生成以向量V为基础向量的范得蒙矩阵.invhilb(n): 求n阶的希尔伯特矩阵的逆矩阵.toeplitz(x,y): 生成一个以x为第一列,y为第一行的托普利兹矩阵compan(p): 生成伴随矩阵, p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后.pascal(n): 生成一个n阶帕斯卡矩阵.compan: 生成伴随矩阵(3) 矩阵运算MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方).加法:>> A+Bans =9 3 97 10 136 12 7减法:>> B-Aans =7 -1 3-1 0 12 6 -3乘法:>> A*Bans =71 83 7145 62 43除法:>> magic(3)/hilb(3)ans =1.0e+003 *0.2160 -1.1760 1.14000.0570 -0.4080 0.4500-0.2280 1.2240 -1.1400在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算.点运算符有.*、./、.\和.^.两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同.>> A.*Bans =8 2 1812 25 428 27 10MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于).>> A>Bans =0 1 01 0 00 0 1MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非).在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示.设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0.a|b a,b中只要有一个非零,运算结果为1.~a 当a是零时,运算结果为1;当a非零时,运算结果为0.3. 矩阵操作和矩阵函数矩阵通过下标引用矩阵的元素,矩阵元素的序号就是相应元素在内存中的排列顺序.在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推.(1) 矩阵拆分利用冒号表达式获得子矩阵.A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素.A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素.此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵.end表示某一维的末尾元素下标.(2) 利用空矩阵删除矩阵的元素在MATLAB中,定义[]为空矩阵.给变量X赋空矩阵的语句为X=[].(3) 矩阵的转置转置运算符是单撇号(‘).(4) 矩阵的旋转利用函数rot90(A,k)将矩阵A旋转90o的k倍,当k为1时可省略.(5) 矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,…,依次类推.MATLAB对矩阵A实施左右翻转的函数是fliplr(A).(6) 矩阵的上下翻转MATLAB对矩阵A实施上下翻转的函数是flipud(A).(7) 方阵A的逆矩阵inv(A)>> A=magic(3)A =8 1 63 5 74 9 2>> B=inv(A)B =0.1472 -0.1444 0.0639-0.0611 0.0222 0.1056-0.0194 0.1889 -0.1028>> A*Bans =1.0000 0 -0.0000-0.0000 1.0000 00.0000 0 1.0000(8) 方阵的行列式>> det(A)ans =-360(9) 矩阵的迹>> C=trace(A)C =15(10) 一些常用的基本初等三角函数三角函数:sin(x),cos(x),tan(x)反三角函数:asin(x),acos(x),atan(x)指数函数:exp(x)自然对数:log(x)常用对数:log10(x)以2为底的对数:log2(x)开平方:sqrt(x)绝对值:abs(x)计算一般函数值:eval(f)求虚部函数: imag(x)求实部函数: real(x)角相位函数:angle(x)共轭复数函数:conj(x)沿零方向取整:fix (x)舍入取整:round(x)沿负无穷大方向取整:floor (x)沿正无穷大方向取整:ceil(x)求除法的余数: rem符号函数:sign(x)最大公约数:gcd()4. 图形可视化(1) 二维绘图指令plotplot函数的基本调用格式为:plot(x,y,)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据.plot(x)plot函数最简单的调用格式.当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线.实际上是绘制折线图.plot(x1,y1,x2,y2,…,xn,yn)当输入参数都为向量时,x1和y1,x2和y2,…,xn和yn分别组成一组向量对,每一组向量对的长度可以不同.每一向量对可以绘制出一条曲线,可以在同一坐标内绘制出多条曲线.plotyy(x1,y1,x2,y2)绘制出具有不同纵坐标标度的两个图形.hold on/off保持原有图形还是刷新原有图形,不带参数的hold命令在两种状态之间进行切换.plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)设置曲线样式进行绘图.选项字段见下表:(2) 图形标注:title('图形名称'):图形标题xlabel('x轴说明')ylabel('y轴说明')text(x,y,'图形说明')legend('图例1','图例2',…)gtext('用鼠标确定位置的字符说明')(3) 坐标控制axisaxis([xmin xmax ymin ymax zmin zmax])axis函数功能丰富,常用的格式还有:axis equal:纵、横坐标轴采用等长刻度.axis square:产生正方形坐标系(缺省为矩形).axis auto:使用缺省设置.axis off:取消坐标轴.axis on:显示坐标轴.grid on/off:网格开/关box on/off:加/不加边框线上述命令示例如下:>> x=1:length(peaks);>> plot(x,peaks);>> box on;>> title('绘制混合图形');>> xlabel('X轴');>> ylabel('Y轴');绘制图像为:05101520253035404550-8-6-4-2246810绘制混合图形X 轴Y 轴(4) 二维数值函数的专用绘图函数fplotfplot(functionname,[a,b],tol,选项)其中functionname 为函数名,以字符串形式出现,[a,b]为绘图区间,tol 为相对允许误差,其系统默认值为2e-3.选项定义与plot 函数相同.>> fplot(@(x)[tan(x),sin(x),cos(x)], 2*pi*[-1 1 -1 1]);-6-4-20246-6-4-2246(5) 二维符号函数曲线专用命令ezplotf = f(x)时:ezplot(f):在默认区间-2π<x<2π绘制f = f(x)的图形.ezplot(f, [a,b]):在区间a<x<b 绘制f = f(x)的图形f = f(x,y)时:ezplot(f):在默认区间-2π<x<2π和-2π<y<2π绘制f(x,y) = 0的图形.ezplot(f, [xmin,xmax,ymin,ymax]):在区间xmin<x<xmax 和ymin<y<ymax 绘制f(x,y) = 0的图形ezplot(f, [a,b]):在区间a<x<b 和a<y< b 绘制f(x,y) = 0的图形若x = x(t),y = y(t):ezplot(x,y):在默认区间0<t<2π绘制x=x(t)和y=y(t)的图形.ezplot(x,y, [tmin,tmax]):在区间tmin < t < tmax 绘制x=x(t)和y=y(t)的图形>> figure;ezplot('cos(tan(pi*x))',[ 0,1]);00.10.20.30.40.50.60.70.80.91-1-0.50.51x cos(tan( x))(6) 图形窗口的分割subplotsubplot(m,n,p)该函数将当前图形窗口分成m ×n 个绘图区,即每行n 个,共m 行,区号按行优先编号,且选定第p 个区为当前活动区.在每一个绘图区允许以不同的坐标系单独绘制图形.(7) 其他坐标系下的二维数据曲线图对数坐标图形:semilogx(x1,y1,选项1,x2,y2,选项2,…)semilogy(x1,y1,选项1,x2,y2,选项2,…)loglog(x1,y1,选项1,x2,y2,选项2,…)极坐标图polar:polar(theta,r,选项)其中theta 为极坐标极角,r 为极坐标矢径,选项的内容与plot 函数相似. 二维统计分析图:bar(x,y,选项):条形图stairs(x,y,选项):阶梯图stem(x,y,选项):杆图fill(x1,y1,选项1,x2,y2,选项2,…):填充图(8) 三维曲线plot3plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同.当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线.当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数.>> t=0:0.1:8*pi;>> plot3(sin(t),cos(t),t);-11(9) 产生三维数据在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵.其格式为:[X,Y]=meshgrid(x,y);语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数.(10) 绘制三维曲面的函数surf 函数和mesh 函数的调用格式为:mesh(x,y,z,c)surf(x,y,z,c)一般情况下,x,y,z 是维数相同的矩阵.x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围.(11) 标准三维曲面sphere 函数的调用格式为:[x,y,z]=sphere(n)cylinder 函数的调用格式为:[x,y,z]= cylinder(R,n)MATLAB 还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示.(12) 其他三维绘图指令介绍bar3函数绘制三维条形图,常用格式为bar3(y)bar3(x,y)stem3函数绘制离散序列数据的三维杆图,常用格式为:stem3(z)stem3(x,y,z)pie3函数绘制三维饼图,常用格式为:pie3(x)fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为:fill3(x,y,z,c)5. 程序控制结构(1)数据的输入:A=input(提示信息,选项)其中提示信息为一个字符串,用于提示用户输入什么样的数据.如果在input 函数调用时采用's'选项,则允许用户输入一个字符串.(2)数据的输出:disp(输出项)(3)程序的暂停:pause(延迟秒数)如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行. 若要强行中止程序的运行可使用Ctrl+C命令.(4)单分支if语句:if 条件语句组end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句.(5) 双分支if语句:if 条件语句组1else语句组2end当条件成立时,执行语句组1,否则执行语句组2,语句组1或语句组2执行后,再执行if语句的后继语句.(6) 多分支if语句:if 条件1语句组1elseif 条件2语句组2……elseif 条件m语句组melse语句组nend语句用于实现多分支选择结构.(7)switch语句:switch 表达式case 表达式1语句组1case 表达式2语句组2……case 表达式m语句组motherwise语句组nend(8)try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.(9)for语句for语句的格式为:for 循环变量=表达式1:表达式2:表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.for语句更一般的格式为:for 循环变量=矩阵表达式循环体语句end执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕.(10)while语句while语句的一般格式为:while (条件)循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.(11)break语句和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环.(12)循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构.(13)函数文件的基本结构函数文件由function语句引导,其基本结构为function 输出形参表=函数名(输入形参表)注释说明部分函数体语句其中以function开头的一行为引导行,表示该M文件是一个函数文件.函数名的命名规则与变量名相同.输入形参为函数的输入参数,输出形参为函数的输出参数.当输出形参多于一个时,则应该用方括号括起来.(14)函数调用函数调用的一般格式是:[输出实参表]=函数名(输入实参表)注意的是,函数调用时各实参出现的顺序、个数,应与函数定义时形参的顺序、个数一致,否则会出错.函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能.在MATLAB中,函数可以嵌套调用,即一个函数可以调用别的函数,甚至调用它自身.一个函数调用它自身称为函数的递归调用.(15)函数参数的可调性在调用函数时,MATLAB用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数.只要在函数文件中包含这两个变量,就可以准确地知道该函数文件被调用时的输入输出参数个数,从而决定函数如何进行处理.(16)全局变量与局部变量全局变量用global命令定义,格式为:global 变量名(17)程序调试Debug菜单项:该菜单项用于程序调试,需要与Breakpoints菜单项配合使用.Breakpoints菜单项:该菜单项共有6个菜单命令,前两个是用于在程序中设置和清除断点的,后4个是设置停止条件的,用于临时停止M文件的执行,并给用户一个检查局部变量的机会,相当于在M文件指定的行号前加入了一个keyboard命令.调试命令:除了采用调试器调试程序外,MATLAB还提供了一些命令用于程序调试.命令的功能和调试器菜单命令类似,具体使用方法请读者查询MATLAB帮助文档.例1.1 计算sin x ,[0,]4x π∈. 解:创建符号函数:>> syms x;>>f=sym('sin(x)')f =sin(x)展开至7阶泰勒级数:>> h=taylor(f,8,0)h =x-1/6*x^3+1/120*x^5-1/5040*x^7求泰勒级数在0.5x =处的函数值:>> subs(h,x,0.5)ans =0.479425533234127也可以通过内联函数来求解:>>H=inline(h)H =Inline function:H(x) = x-1./6.*x.^3+1./120.*x.^5-1./5040.*x.^7 >>feval(H,0.5)ans =0.479425533234127例 1.2 计算积分值1011I dx x=+⎰. 解:解法一:( 符号法):>> I=int('1/(1+x)','x',0,1)I =log(2)解法二 :(数值法):>>x=0:0.2:1; %将[0,1]等分为4等份>>f=1./(1+x); %分别计算每一个等分点的函数值>>I=0;>>for i=1:5I=I+(f(i)+f(i+1))/2*0.2; %将每一小曲边的梯形累加起来作为积分值end>> vpa(I,9) %取结果的小数精度为9位小数ans =.695634921例 1.30)a >的值.解:解法一(符号法):>> A=sym('a');>> sqrt(A)ans =a^(1/2)解法二(数值法):按以下迭代公式迭代计算近似值:11(),0,1,2,...2k k ka x x k x +=+= 建立函数文件msqrt.mfunction x=msqrt(x0,a)%用迭代法近似计算平方根%x0为初始迭代值,a 为开平方数format long ;x=zeros(20,1);x(1)=x0;for i=2:20x(i)=1/2*(x(i-1)+a/x(i-1));enddisp(x);02x =:>> msqrt(2,3);2.0000000000000001.7500000000000001.7321428571428571.7320508100147271.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.7320508075688771.732050807568877上述结果为迭代过程计算的中间结果,分析数据可知迭代收敛速度快,只需四次计算即可计算出较为准确的数值.例1.4 计算11759760-,视已知数为精确数,用4位浮点数计算.解:直接在Matlab中输入式子:>> 1/759-1/760ans =1.7336e-006若先转化为浮点数再运算可得:>> a=1/759,b=1/760,a-ba =0.0013b =0.0013ans =1.7336e-006可见Matlba在计算时,数据结构都取为双精度而提高了运算准确度.若以符号运算计算之,有:>> a=sym('1/759'),b=sym('1/760'),c=a-ba =1/759b =1/760c =1/576840可见符号运算准确但耗费运算时间.例1.5 解方程21810x x-+=.解:符号法解方程:>> x=solve('x^2-18*x+1','x')x =9+4*5^(1/2)9-4*5^(1/2)将结果保留小数点6位:>> vpa(x,6)ans =17.9443.5572e-11.2 Matlab中数值计算精度1. Matlab中有三种运算精度,它们分别为数值算法、符号算法和可控精度算法,将它们分别介绍如下:(1)数值算法把每个数取为16位,计算按浮点运算进行,它是运算速度最快的一种算法.(2)符号算法把每个数都变为符号量,运算按有理量计算进行,它的优点是能够得到精确结果,缺点是占用空间大,并且运算速度最慢.(3)可控精度算法介于上述两种算法之间,它能够使运算在可控的精度下进行计算.2. Matlab的数据显示格式,列表如下:format并不影响matlab如何计算和存储变量的值.对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的.对整型变量采用整型数据.整型变量总是根据不同的类(class)以合适的数据位显示.3. Matlab的特殊变量ans :对最近输入的反应computer :当前计算机类型eps :浮点精度flops :计算浮点操作次数,现已不再常用i :虚部单位inf :无穷大inputname :输入参数名j :虚部单位nan :非数值nargin :输入参数的数目nargout :输出参数的数目(用户定义函数)pi :圆周率realmax :最大正浮点数realmin :最小正浮点数vararginvarargout :返回参数数目(matlab函数)cputime:CPU工作时间。
第一章MATLAB概述通过本章了解MA TLAB的基本知识,学会下载、安装和使用MA TLAB,掌握利用MA TLAB进行基本运算的方法,初步了解MA TLAB中各种数据类型及数学函数并学会使用MA TLAB的帮助。
第一节MATLAB简介随着计算机的迅猛发展,出现了各种计算机编程语言。
每种语言都具有各自的优点与不足之处。
MA TLAB作为其中的一种编程语言在矩阵运算、数值计算、符号运算、图形处理和建模仿真等方面的优势而脱颖而出。
MA TLAB、Mathematica和Maple作为数学专业三大编程语言各自具有各自的特点。
本人通过对MA TLAB多年的学习发现其以下几个特点:1)强大的数值运算功能:MA TLAB中提供了大量的数学、统计、最优化及工程方面的函数,这些函数使用起来简单易懂。
与此同时编程者也可以结合这些函数编写出自己所需要的各类函数,从而实现解决复杂问题的目的。
2)强大的图像处理功能:计算机中的图形大部分以点阵形式存储,它们通常是三维矩阵,每一点需有三组数据,它们分别是横向距离、纵向距离及该点的颜色信息。
MA TLAB不仅可以读写图像而且还可以对图像进行处理。
3)高级而简单的程序环境:MA TLAB不仅具有结构化的控制语句,又有面向对象的编程特性。
利用MA TLAB编程非常简单,变量的定义、使用及输入输出较为简单,语法限制不严格,可移植性好。
4)丰富的工具箱与模块集:MA TLAB具有功能强劲的工具箱,不仅具有大量的数学优化函数,同时还有许多特殊的应用领域所需的函数供编程者使用。
第二节MATLAB的下载、安装及使用本书当中我们将主要介绍MA TLAB7.0,如果没有特殊说明一律按照MA TLAB7.0看待。
1.2.1 MATLAB的下载正版软件下载:大家可以到网站/上购买正版MA TLAB或使用免费版本。
中文免费软件下载:大家可以到网站/soft/20080305/2828.html下载MA TLAB7.0,本软件的大小约为1GB,如果网速过慢请购买软件使用。
MATLAB简单介绍MATLAB 最初于 1984 年由美国数学家 Cleve Moler 和他的同事创立,他们开发了一个用于数值计算的语言和环境,目的是为了提高科学和工程领域的计算效率。
随着时间的推移,MATLAB 不断发展,成为了一个全功能的科学计算平台,并在科学和工程界得到了广泛的应用。
1.矩阵和数组操作:MATLAB提供了一套强大的矩阵和数组操作功能,这使得在MATLAB中进行线性代数和数值计算变得非常方便。
使用矩阵和数组进行计算的方式,可以简化许多复杂的数学运算,同时也提供了更高效的算法实现。
2.高级算法和函数库:MATLAB附带了丰富的数学和科学函数库,这些函数涵盖了从基本数学运算到高级算法的各个方面。
无论是解方程、优化问题、信号处理还是控制系统设计,MATLAB都有相应的函数和工具可供使用。
这些高级算法和函数库的存在,极大地提高了科学和工程计算的效率和准确性。
3.可视化功能:MATLAB提供了强大的数据可视化功能,使得用户可以通过绘图、图表和动画等方式直观地展示和分析数据。
这种交互式的数据可视化方式,有助于用户更好地理解和解释数据,发现数据中的模式和关系。
同时,MATLAB还支持三维绘图、图像处理和虚拟现实等高级可视化技术,扩展了数据可视化的应用领域。
5. 可扩展性和部署性:MATLAB 可以与其他编程语言和工具集成,支持与 C、C++、Java 和 Python等语言的互操作。
通过 MATLAB 的接口,用户可以调用其他语言和工具的功能,并将 MATLAB 的计算结果导出或集成到其他环境中。
此外,MATLAB 还可以将用户的代码和应用程序打包成可执行文件或可部署的 Web 应用,方便用户与他人共享和部署自己的工作。
总的来说,MATLAB是一种功能强大的科学计算平台,它提供了一系列丰富的工具和函数库,用于各种科学和工程计算任务。
无论是进行数值计算、数据分析、模拟仿真还是算法开发,MATLAB都是一个非常有用的工具。
MATLAB技术概述一、介绍在现代科学和工程领域中,计算机技术的快速发展使得各种数学与工程问题的求解变得更加高效和便捷。
在这方面,MATLAB是一个非常有用的工具,它提供了大量的数学计算和数据可视化函数。
本文将介绍MATLAB技术的概述,包括其应用范围、特点以及一些常用的功能和工具。
二、MATLAB的应用范围MATLAB在各个领域广泛应用,尤其在科学研究、工程设计和数据分析等方面。
例如,在生物医学领域,MATLAB可以用于信号处理、图像处理和模拟等方面的研究。
在控制工程中,MATLAB可以进行系统建模和仿真,优化控制算法的设计和验证。
此外,金融和经济学、通信和信号处理、计算机视觉和模式识别等领域也可以使用MATLAB来解决相关的问题。
三、MATLAB的特点1. 语言简洁易学:MATLAB采用高级语言编写,语法简洁,易于学习和使用,尤其适合非计算机专业的科学家和工程师。
2. 功能强大:MATLAB提供了丰富的函数库,涵盖了数学、统计、信号处理、图像处理、优化等众多领域的算法和工具。
3. 数据可视化:MATLAB具有强大的绘图和可视化功能,可以直观地展示数据和结果,对于数据的探索和分析非常有帮助。
4. 并行计算:MATLAB支持并行计算,在多核和分布式计算环境下可以提高计算效率,加快计算速度。
5. 与其他编程语言的集成:MATLAB可以与其他编程语言(如C、C ++、Java 等)进行集成,方便用户进行扩展和自定义。
四、常用功能和工具1. 数值计算:MATLAB提供了各种常用的数值计算函数,如计算矩阵的特征值、解线性方程组、数值积分和微分等。
2. 数据处理和分析:MATLAB具有丰富的数据处理和分析工具,可用于数据清洗、统计分析、曲线拟合、数据聚类等。
3. 图像处理:MATLAB提供了多种图像处理函数,可以进行图像增强、去噪、边缘检测、图像分割等操作。
4. 信号处理:MATLAB支持信号处理函数,如进行滤波、频谱分析、傅里叶变换和小波变换等。
matlab课程知识点总结基础知识1. Matlab环境介绍Matlab环境包括命令窗口、编辑器、命令历史窗口、工作区、当前文件夹和路径浏览器等。
学生需要了解Matlab环境的基本布局和功能,以便能够高效地使用Matlab进行编程和数据处理。
2. 基本语法和数据类型Matlab的基本语法和数据类型包括变量、数组、字符串、逻辑运算、条件语句和循环等。
学生需要掌握这些基本知识,以便能够编写简单的Matlab程序和处理数据。
3. 函数和脚本文件在Matlab中,函数用于封装可重用的代码块,而脚本文件用于按照特定的顺序执行一系列命令。
学生需要了解如何编写和调用函数,以及如何创建和运行脚本文件。
数据处理1. 数据导入和导出Matlab可以处理各种数据格式,包括文本文件、图像文件、音频文件、视频文件等。
学生需要学会如何将外部数据导入到Matlab中,并将Matlab中的数据导出到外部文件中。
2. 数据可视化Matlab提供了丰富的绘图功能,可以用于绘制曲线图、散点图、柱状图、等高线图、3D表面图等。
学生需要学会如何使用Matlab绘制各种类型的图形,并对图形进行自定义和美化。
编程1. 脚本和函数Matlab中的脚本文件和函数分别用于存储按顺序执行的一系列命令和封装可重用的代码块。
学生需要了解如何编写和调用脚本文件和函数,并了解它们之间的区别和联系。
2. 控制结构Matlab提供了if语句、switch语句、for循环和while循环等控制结构,用于控制程序的执行流程。
学生需要了解如何使用这些控制结构,以便能够编写复杂的Matlab程序。
3. 错误处理Matlab中的错误处理机制包括try-catch语句和error函数。
学生需要了解如何使用这些机制来捕获和处理程序中的错误,以避免程序崩溃和数据丢失。
数学建模1. 方程求解Matlab可以用于求解一元方程、二元方程组、高阶方程、微分方程等。
学生需要学会如何使用Matlab求解各种类型的方程,并了解求解过程中可能遇到的问题和解决方法。
(Ⅰ)基础篇第一章 Matlab语言概述§1.语言特点MATLAB是Mathworks公司于20世纪80年代推出的数值计算软件。
得到了广泛的应用。
MATLAB的全称是Mateix Laboratory,意思是矩阵实验室。
它是以矩阵运算为基础的新一代程序语言。
MATLAB是集数学运算、图形处理、程序设计和系统建模为一体的著名编程语言软件,它具有功能强大、使用简单等优点,是进行科学研究和工程实践的有力工具。
与Fortran和C相比,MATLAB语句更简洁、明了,更加符合人们的思维习惯。
并且还具有良好的数据可视化功能。
MATLAB包括两部分:基本部分-主要指数据计算和可视化功能。
扩展部分-主要指工具箱。
§2 基本操作和简单语句输入1. 简单语句输入(简单计算器用法)例1:计算a⨯y÷⨯=(a = 2,b =3,c = 5 )+acbb[程序] 在命令窗口输入>> a=2;b=3;c=5;>> y=a*b+c*b/a 回车[输出] y =13.5000例2:计算64(tan3⨯+45)/2760cos[程序] >> (tan(pi/4)+cos(pi/3))*27^(1/3)/sqrt(64)ans =0.56252. 变量表达式数值(1)变量* matlab语句一般形式为:变量=表达式(或数),若变量和“=”省略,输出时自动建立“ans”默认变量。
* 对大小写敏感,如sqrt(平方根)对,而SQRT,Sqrt全错。
* 变量名第一个字符必须是英文字母,最多可包含31个字符,(含英文、数字、下连符)。
不得包含空格和标点。
* 系统遇到一个新变量名时,它会自动生成变量,若该变量早已存在,系统会自动更新内容。
表1-1 默认预定义变量(永久变量)例3:无穷大的使用>> x =1/0Warning: Divide by zero.x =Inf* 在MATLAB中这样的操作不会引起程序执行中断,只是在给出警告信息的同时,用一个特殊的符号Inf来表示。
MATLAB概述主要内容MATLAB的发展MATLAB的优点MATLAB的工作环境帮助系统1. MATLAB的发展♥由美国Mathworks公司于1984年正式推出,随后逐次升级。
目前通常每年更新两次,例如2018a,2018b。
用于数值计算和图形处理的系统环境。
♥MATLAB(MATrix LABoratory)是一种以矩阵运算为基础的交互式程序语言。
♥只有一种数据类型,一种标准的输入输出语句,不需编译。
除具备卓越的数值计算能力外,还提供专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能。
每个变量代表一个矩阵;每个元素都看作复数;所有运算都对矩阵和复数有效;指令表达式与数学、工程中常用的形式非常相似。
友好的工作平台和编辑环境:许多工具采用图形用户界面,包括MATLAB桌面和一些窗口,例如命令窗口、编辑器和调试器等;程序不必经过编译就可以直接运行,能及时报告出现的错误并分析错误的原因。
♥简单易用的程序语言:MATLAB是一种高级的矩阵/阵列语言。
语法特征更符合科技人员对数学表达式的书写格式,非常适合非计算机专业的人员使用。
♥强大的科学计算和数据处理能力:包含600多种数学运算函数,可以方便地实现用户所需的各种计算功能。
例如矩阵、特征向量、傅里叶变换、线性方程求解、微分方程求解、复数、三角函数、多维数组运算等。
矩阵的行数、列数无需事先定义。
♥强大而简易的绘图功能:能根据输入数据自动确定坐标绘图;能规定多种坐标系;能绘制三维坐标中的曲线和曲面;可设置不同的颜色、线型和视角等。
♥功能丰富,可扩展性强:有丰富的内部函数和工具箱。
工具箱包括信号处理、图像处理、控制系统、神经元网络、小波分析、金融等,几乎涉及各个方面。
进入工作环境:双击MATLAB图标。
退出工作环境:exit,quit或直接关闭。
MATLAB有很多窗口,用来实现不同的功能,例如命令窗、历史命令窗、当前目录窗、工作空间管理窗、图形窗和文本编辑窗等。
MATLAB 基础知识一、MATLAB简介二、MATLAB基础知识1.命令窗口是用户与MATLAB进行交互作业的主要场所, 用户输入的MATLAB交互命令均在命令窗口执行。
例如: 在MATLAB命令窗口下键入a=[3 2 3;4 7 6;7 5 9]按回车键后, 显示结果a=3 2 34 7 67 5 92.求逆矩阵命令格式: [变量]=inv(参数)例如:输入b=inv(a), 按回车后, 显示b= 1.3750 -0.1250 -0.37500.2500 0.2500 -0.2500-1.2083 -0.0417 0.54173.MATLAB系统还具有保存历史纪录的功能, 它将本次启动MATLAB系统之后, 用户输入的命令和创建的所有变量的值保存起来, 用户通过方向键可查找所需的命令。
MATLAB提供了存储变量和删除变量的命令。
SAVE [文件名] [变量名1, 变量名2, ....]功能: 将命令中的变量保存在给出的文件中。
说明: (1)若过文件名省略, 默认保存在MATLAB.MAT中。
(2)若变量名省略, 则保存所有的变量到指定的文件中。
(3)若文件名和变量名都省略, 则保存所有定义过的变量到MATLAB.MAT中。
例如: SAVE AA.MAT a b c %将变量a b c保存在文件AA.MAT中。
SAVE BB.MAT % 将所有的变量保存到文件BB.MAT中。
SAVE % 将所有变量保存到文件MATLAB.MAT中。
clear [变量名1 变量名2, ...]功能: 删除指定的变量。
说明:若变量名表省略, 表明删除当前工作空间中的所有变量。
例如: clear a b c %删除变量a b cclear %删除当前工作空间的所有变量。
MATLAB还提供了一些命令, 专门管理和控制命令窗口。
例如:clc格式: clc功能: 清除命令窗口。
home格式: home功能: 光标移动到左上角who格式: who功能:查看当前的所有变量, 只给出变量名。
matlab第一章知识要点Matlab第一章知识要点第一章主要介绍了Matlab的基本概念和基本操作。
本文将围绕以下几个要点进行详细阐述。
一、Matlab的基本概念Matlab是一种用于科学计算和工程应用的高级编程语言和环境。
它的名称来源于Matrix Laboratory(矩阵实验室),因为Matlab最初是为数值计算和矩阵计算而设计的。
在Matlab中,数据以矩阵的形式存储和处理,这使得Matlab在数学运算和科学计算方面具有很大的优势。
二、Matlab的基本操作1. Matlab的界面Matlab的界面分为命令窗口、编辑窗口、工作区和命令历史窗口等几个部分。
命令窗口是用户与Matlab交互的主要界面,用户可以在命令窗口中输入和执行Matlab命令。
编辑窗口用于编写和编辑Matlab脚本文件,工作区用于显示当前Matlab的变量和数据,命令历史窗口用于查看之前执行的命令。
2. Matlab的基本命令Matlab提供了丰富的基本命令,用于完成各种数学运算、数据处理、图形绘制等任务。
例如,可以使用"disp"命令将文本或变量的值输出到命令窗口,使用"fprintf"命令将格式化的文本输出到文件,使用"sin"命令计算正弦值等。
3. Matlab的数据类型Matlab支持多种数据类型,包括数值型、字符型、逻辑型和结构型等。
数值型数据用于存储和处理数值,字符型数据用于存储和处理字符,逻辑型数据用于存储和处理逻辑值(真或假),结构型数据用于将不同类型的数据组合在一起。
4. Matlab的变量和赋值在Matlab中,可以使用变量来存储和处理数据。
变量的命名规则是以字母开头,后面可以跟字母、数字或下划线。
赋值操作用于将数据存储到变量中,可以使用等号(=)进行赋值。
5. Matlab的运算符Matlab提供了各种运算符,用于完成数学运算、逻辑运算和位运算等。
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。