您好,欢迎访问三七文档
一、MATLAB简介MATLAB—MATRIXLABORATORY计算可视化编程二、MATLAB语言特点1、编程效率高2、计算功能强3、使用简便4、易于扩充5、方便的绘图功能三、MATLAB的工作界面1、主窗口2、命令窗口3、历史窗口4、当前目录窗口四、数值计算功能1、MATLAB数据类型(1)变量变量的命名规则:•变量名区分大小写;•变量名长度不超过31位;•变量名以字母开头,变量名中可包含字母、数字、下划线,但不能用标点;•如变量已存在,新值会代替旧值;•一般变量为局部变量,如要定义全局变量就声明;(2)常量预定义的变量称为常量。i,j~虚数单位sqrt(-1);pi~圆周率;eps~浮点运算的相对精度10^(-52);NaN~NotaNumber,不定值;Inf~无穷大;(3)变量的定义及代换对简单的数字运算,可直接在命令窗口以平常惯用的形式输入,如:(4)几个基本的算术运算a、四则运算“+”,“-”,“*”,“/”b、乘方、开方运算:用符号“^”和函数“sqrt”实现优先级:一般说“^”和函数“sqrt”优先级最高,“*”和“/”次之,“+”和“-”的优先级最低。(5)数字的输入输出格式输入与C语言相似,输出由File下的子菜单Preferences中选择或由format命令控制,但这只影响在屏幕上的显示结果,不影响它的内部计算和存储,MATLAB的数据存储和运算是以双精度进行的。short(缺省)~小数点后4位,long~15位数字shorte~5位科学计数,longe~15位科学计数五、向量及其运算向量运算是矢量运算的基础,向量也是组成矩阵的基本元素之一。(1)向量的生成a、直接输入空格和逗号分隔生成行向量,用分号分隔生成列向量b、利用冒号表达式生成向量x=x0:step:xnc、线性等分向量的生成y=linspace(x1,x2)y=linspace(x1,x2,n)•生成从x1到x2共n个数值的等差数组,公差不必给出d、对数等分向量的生成y=logspace(x1,x2)y=logspace(x1,x2,n)•生成从到共n个数值的等比数组.110x210x(2)向量的基本运算b、数乘注意加(减)与数加(减)的区别。a、加(减)与数加(减)c、点积计算向量的点积:两个向量在其中某一个向量方向上的投影的乘积。dot(a,b)返回向量a和b的数量点积注:a,b必须同维,当a和b同为列向量时,此命令等价于a’*bdot(a,b,dim)返回向量a和b在维数为dim的点积c、叉积计算向量的叉积:过两相交向量的交点的垂直于两向量所在平面的向量。cross(a,b)返回向量a和b的叉积向量。cross(a,b,dim)当a和b为n维数组时,返回a和b的dim维向量的叉积。a和b必须有相同的维数,且size(a,dim)=size(b,dim)=3例:计算垂直于向量a=(1,2,3)和b=(3,4,5)的向量d、混合积计算(用两个计算,此处略)五、矩阵及其运算1、矩阵的生成(1)直接输入小矩阵注意:(1)在MATLAB中是区分大小写字母的;(2)一旦定义一个变量后,则一直会保存在工作空间中,可随时调用,除非被清除或替代;(3)对于没有给出定义的量,系统自动增加行列数并赋值0;(2)创建M文件输入大矩阵M文件~命令式文件和函数式文件2、矩阵的基本数学运算(1)矩阵的四则运算a、加和减:“+”,“-”注意:要求加减的两矩阵是同维的。b、乘法:“*”注1:要求相乘的矩阵有相邻公共维,即若A为(i,j)维,则B必须为(j,k)维时,A和B才能相乘。注2:此处涉及到了矩阵的拼接,列用“,”,行用“;”进行拼接。c、除法:左除“\”和右除“/”右除~先计算矩阵的逆再做矩阵乘法,更快;左除~直接进行除运算;设A是可逆矩阵,则Ax=B的解是A左除B,即x=A\B;xA=B的解是A右除B,即x=B\A;例:求解方程组Ax=b,其中3508018212,0593170456Abexample1(2)矩阵与常数间运算常数与矩阵的运算即与矩阵各元素之间进行运算;数加~矩阵每个元素都加上此常数;数乘~矩阵每个元素都与此常数相乘;数除~常数只能作除数;(3)矩阵的逆运算命令inv例:求下面矩阵的逆,其中2131310712421015Aexample2(4)矩阵的行列式运算命令det例:求上例中矩阵A的逆的行列式的积。example33、矩阵的基本函数运算(1)特征值函数eig~给出矩阵的特征值和特征向量eigs~用迭代法求解特征值和特征向量例:计算矩阵A的特征值和特征向量,其中732341213Aexample4(2)秩函数命令rank(3)矩阵大小函数命令size4、矩阵分解函数(1)LU分解将矩阵A分解成L与U的乘积,其中L为单位下三角阵,U为上三角阵。命令lu(2)特征值分解[V,D]=eig(X)~得到矩阵X的特征值对角矩阵D和其列为对应特征值的特征向量矩阵V,即X×V=V×D。练习:对矩阵a进行特征值分解,其中1495372750180915454625a(3)QR分解将矩阵A分解成Q与R的乘积,其中Q为正交阵,R为上三角阵。命令qr如:[q,r]=qr(a)5、特殊矩阵的生成(1)空阵~“[]”(2)全零阵zeros(n)~生成n×n的全零阵;zeros(m,n),zeros([m,n])~生成m×n的全零阵;zeros(size(A))~生成与A相同大小的全零阵;(3)单位阵eye(n)~生成n×n的单位阵;eye(m,n),eye([m,n])~生成m×n的单位阵;eye(size(A))~生成n×n的单位阵;(4)全一阵ones(n)~生成n×n的全一阵;其它同上(5)随机阵rand(n)~产成一n×n均匀分布的随机阵,元素值在(0.0,1.0)区间内;其它同上(6)其它阵magic~魔方矩阵;hilb~Hilbert矩阵;6、矩阵的裁剪与拼接“:”~矩阵裁剪;“;”~行拼接;“,”~列拼接7、矩阵的抽取(1)对角元素抽取函数diag(x,k)~抽取矩阵x的第k条对角线的元素向量。当k为0或缺省时即抽取主对角线,k为正值时为上方第k条对角线,k为负值时为下方第k条对角线。(2)上三角矩阵和下三角矩阵的抽取tril(x)~提取矩阵x的主下三角部分tril(x,k)~提取矩阵x的第k条对角线下面的部分(包括第k条对角线),其中k的含义与diag函数中的k相同。triu(x)~提取矩阵x的主上三角部分triu(x,k)~提取矩阵x的第k条对角线上面的部分(包括第k条对角线)。六、数组及其运算同维矩阵对应元素之间的运算称为数组运算1、数组的输入与矩阵运算几乎相同,但运算符有一定变化。数组常采用”:”和函数linspace两种输入方式,与向量的输入相同,此处略;2、数组的四则运算“.+”、“.-”、“.*”、“./”、“.\”3、数组与常数的运算数加与数减在算符上可加“.”,也可不加“.”,但若加“.”时一定要把常数写前面;数乘运算可加可不加“.”;数除在矩阵运算中有很大限制,常数只能作除数,但在数组运算中,无任何限制。4、数组的幂运算数组的幂运算符为“.^”,表示每个数组元素的幂运算,这是与矩阵的幂运算不同的。例:比较两者的区别5、数组的指数运算、对数运算和开方运算“exp”、“log”、“sqrt”主要针对数组内部的每个元素进行运算。七、函数1、标量函数常用的三角函数:sincostancotseccscasinacosatanacotasecacscsinhcoshtanhasinhacoshatanh其它基本标量函数:sqrt;eps;log10;abs;round;floor;ceil;fix;sign;real;imag;angle(取辐角);rats;feval(F,x)例:注:本质上是作用于标量的,当它们作用于矩阵(或数组)时,是作用于矩阵(或数组)的每一个元素。2、向量函数常用的向量函数:maxminsumlengthmeanmedianprodsort八、命令和窗口环境•用命令:help程序(主题)名•直接使用窗口中的help菜单(help将给出所有主题名)•用命令:lookfor搜索包含某个关键词(并不一定是MATLAB的命令或函数)的帮助主题1、在线帮助系统2、命令行编辑~调出前一行命令进行修改,重新计算3、MATLAB工作区除运算外可用命令实现的主要功能显示who、whos、disp(x)储存Save,或File菜单中的SaveWorkspaceas…调出load搜索Path,或file下的SetPath管理What,dir,cdpath,typex,deletex清除clear、clear(x)退出quit,或File下的Exit九、多项式及其运算1、多项式的表示方法1011:()nnnnPxaxaxaxa多项式用行向量表示。011[,,,,]nnPaaaa把问题转化为向量问题2、系数向量的直接输入法直接的向量输入例:输入多项式325633xxx符号工具箱中的函数,可将多项式向量表示成符号形式。(1)多项式拟合polyfit(x,y,n)~其中x,y为拟合数据,n为拟合多项式的阶数[p,s]=polyfit(x,y,n)~其中p为拟合多项式系数向量,s为拟合多项式系数向量的结构信息。例:用5阶多项式对[0,pi/2]上的正弦函数进行最小二乘拟合。example6因为拟合[0,pi/2]内进行,所以只在此范围是拟合得非常好多项式在x点的值:y=polyval(a,x)线性最小二乘拟合f(x)=a1r1(x)+…+amrm(x)中函数{r1(x),…rm(x)}的选取1.通过机理分析建立数学模型来确定f(x);+++++f=a1+a2x2.将数据(xi,yi)i=1,…n作图,通过直观判断确定f(x):+++++f=a1+a2x+a3x2+++++f=a1+a2x+a3x2+++++f=a1+a2/x+++++f=a1exp(a2x)+++++f=a1exp(a2x)对于指数曲线,要拟合需先作变量代换,化为对a1,a2的线性函数例:测得一组实验数据温度20.532.751.073.095.7电阻7658268739421032求60度时的电阻设R=at+b,a,b由实验数据确定但是由上面直线表示的图形不可能全部通过这5个点,所以只考虑尽量靠近的直线。example7即得出的一次方程为:3.3940702.4918yx由此方程就可以算出在60度时的电阻。十、符号运算功能数值计算输入、输出及中间过程中变量都是数值变量符号运算变量都以字符形式保存和运算符号表达式符号函数符号方程两者区别在于前者不包括等号后者必须带等号,创建方式都相同。1、符号表达式的生成•创建符号函数•创建符号方程•创建符号微分方程注:不能随便在字符间添加空格;可以由sym命令来创建。或用syms命令创建函数注:syms不能创建符号方程2、符号和数值之间的转换符号运算的目的有时是为了得到精确的数值解,这时就需要对得到的解析解进行数值转换。digitsvpasubs•digits函数digits(D)~函数设置有效数字个数为D的近似解精度4、符号矩阵的创立(1)使用sym函数直接创建符号矩阵(2)用创建子阵的方法创建符号矩阵此处有两个空格,因为必须确保每一列的各元素字符串具有相同的长度。(3)将符号矩阵转化为符号矩阵数值矩阵不能直接参与符号运算,必须先转化为符号矩阵(4)符号矩阵的索引和修改与数值矩阵的索引和修改相同5、符号矩阵的运算(1)基本运算a、符号矩阵的四则运算•矩阵的加(+)、减(-)法•矩阵的乘(*)、除(/、\)法•矩阵的转置(‘)b、符号矩阵的行列式运算c、符号矩阵的逆d、符号矩阵的秩e、符号矩阵的幂运算f、符号矩阵的指数运算注:此
本文标题:matlab1.
链接地址:https://www.777doc.com/doc-2886917 .html