《MATLAB及基本运算》由会员分享,可在线阅读,更多相关《MATLAB及基本运算(54页珍藏版)》请在金锄头文库上搜索。
1、MATLAB及基本运算第一章 MATLAB概述第二章第二章 数值计算功能数值计算功能第一章 MATLAB概述 1.1 发展历史 1970s,创始人:Cleve Moler博士; 1984年,Cleve Moler和John Little成立了 MathWorks公司,将MATLAB推上市场; 1993年推出MATLAB4.0版; 1997年推出5.0版; 1998年推出5.2版; 目前我们可以看到的最新版本为7.x版。在欧美高校,MATLAB已经成为线性代 数、自动控制理论、数理统计、数字信号 处理、时间序列分析、动态系统仿真等高 级课程的基本教学工具;成为攻读学位的 本科生、硕士生、博士生必
2、须掌握的基本 技能。在国内,目前各个高校也正在逐步 开设相关课程,为广大学生学习和使用 MATLAB提供方便。1.2 MATLAB的语言特点优点:简洁、紧凑,使用方便灵活, 库函数丰富、可靠;运算符丰富,提供了 几乎和C语言一样多的运算符;具有结构 化的控制语句,面向对象编程的特性;语 法限制不严格,程序设计自由度大;程序 的可移植性很好;图形功能强大;具有功 能强劲的工具箱;源程序具有开放性。 缺点:程序的执行速度较慢。 主要工具箱 数学类:最优化,统计,神经网络,符 号数学,偏微分方程,样条函数,数据 拟合、结构动力学,虚拟现实等 数据库类 信号处理类 控制工程类 金融经济类 系统仿真类(
3、Simulink)几个有用的命令Help : 包括help,help+函数名, helpwin 和helpdesk。demo : 演示界面intro : 介绍界面who : 查 询whos: 查 询clear: 清 除第二章 数值计算功能2.1 数字及其运算Matlab的基本运算单元是以数字为元素 的矩阵,而将数字看成11矩阵作统一处 理,当我们使用数的运算功能时,我们可以 如同平时用手在纸上写字一样,直接写出 要计算的表达式后,按回车键即可得到结 果。例如:23*23 ans = 529 这里ans是系统规定的存放计算结果的变量, 也可以自己定义,如: x=230 x =230y=450 y
4、 =450 z=x*y z =103500 这里,将x定义为230,y定义为450,而 z=x*y,这种方法常用在计算较为复杂的时 候。例如:分别计算水在温度为0、20、40、 60和80度时的黏度。已知水的黏度随 温度的变化公式为:其中:, 用Matlab计算的命令为: muw0=1.785e-3; % 定义零度时的黏度 a=0.03368; b=0.000221; t=0:20:80; % 定义温度变量muw=muw0./(1+a*t+b*t.2) 0.0018 0.0010 0.0007 0.0005 0.0003这里: “;”表示当前不输出结果;如以后想看此 变量的值,只要输入该变量名
5、即可; “t=0:20:80”表示t的值从0开始,间隔 为20,到80为止; “./”表示数组的右除,在此处,当t取不 同的值后,muw即构成了一个数组; 以%开始的部分表示注释。 常用运算符:、*、/、sqrt. 输入输出格式用format命令来控制:FORMAT SHORT 5位FORMAT LONG 15位FORMAT RAT 有理数表达 注:具体可用 help format 查看常住变量: pi, i 或 j, inf, NaN2.2 向量及其运算 输入向量的方法:1 直接输入法A=1 2 3 4, B=1,2,3,4, C=1;2;3;4,元素用 括起来,元素之间 用空格或逗号分隔表
6、示行向量,用分号分隔就表示列向量。2. 利用冒号表达式生成向量 基本形式为: FirstValue:Step:LastBound , 例如:B=12:3:35 B =12 15 18 21 24 27 30 33 其中 Step也可以为负, 例如:C=12:-2:5 C =12 10 8 6 特别当Step=1时可以省略。3.线性等分生成向量 函数linspace用来生成线性等分向量: LINSPACE(x1, x2) generates a row vector of 100 linearly equally spaced points between x1 and x2. LINSPACE
7、(x1, x2, N) generates N points between x1 and x2. linspace(1,10,4) linspace(1,15,6) Linspace(1,100)4.对数等分生成向量函数logspace用来生成对数等分向量:LOGSPACE Logarithmically spaced vector.LOGSPACE(d1, d2) generates a row vector of 50 logarithmically equally spaced points between decades 10d1 and 10d2. If d2 is pi, the
8、n the points are between 10d1 and pi.LOGSPACE(d1, d2, N) generates N points.logspace(0,5,6) , 此处log以10为底数。 5. 向量的基本运算加(减)法、数加(减): 对同维数向量进行,对应元素相加(减); 数加(减) :是Matlab规定的一种运算, 即对向量的每一个分量加(减)同一个数; 数乘:向量的每一个分量乘同一个数; 点积(内积、数量积):计算用函数dot实现 C=dot(A,B), A和B必须同维,当A和B都为列 向量时,dot(A,B)等同于A*B。C=dot(A,B,DIM) 将返回A和
9、B在维数为DIM的点积 例如:计算向量(1,2,3)和向量(3 ,4,5)的点积。 a=1,2,3; % 如此定义的是行向量 b=3,4,5; dot(a,b) ans =26a=1;2;3; % 这样定义的是列向量 b=3;4;5; dot(a,b) a*b b*a 另一种计算点积的方法: sum(a.*b) ans =26关于SUM的用法,有: SUM Sum of elements.For vectors, SUM(X) is the sum of the elements of X. For matrices, SUM(X) is a row vector with the sum o
10、ver each column. For N-D arrays, SUM(X) operates along the first non-singleton dimension.SUM(X,DIM) sums along the dimension DIM. Example: If X = 0 1 23 4 5 then sum(X,1) is 3 5 7 and sum(X,2) is 3 12;叉 积 实现函数:cross C=cross(A,B) A与B必须为3维向量; 混合积: a=1 2 3; b=3 4 5; c=cross(a,b) c =-2 4 -2 dot(a,cross(
11、b,c) ans =24理论复习:解的理论 若秩(A) = 秩(A,b) = n, 存在唯一解; 若秩(A) = 秩(A,b) n, 存在无穷多解, 其通解可表示为Ax=0的一个基础解系与 Ax=b的一个特解的叠加; 若秩(A) 秩(A,b),则无解,寻求最小二 乘近似解.逆 方阵A称为可逆的,如果存在方阵B,使 A B = B A = E则称B为A的逆矩阵,记 为B = A -1。 方阵A可逆的充要条件是A0。A -1 = 特征值与特征向量 对于方阵A,若存在数和非零向量x使 A x = x则称为A一个特征值,x为A的一个 对应于特征值的特征向量。 特征值计算归结为特征多项式的求根。 对应于
12、特征值的特征向量是齐次线性方 程组(A - E) x = 0 的所有非零解。正交矩阵 正交向量 xx=0 单位向量 xx=1 正交矩阵AA=E 正交矩阵的各列向量两两正交,且均 为单位向量矩阵及其运算MatLab的所有数值计算功能都是以(复 )矩阵为基本单元进行的,因此 MatLab对矩阵的运算功能是最全、最 强的。1直接输入多用于小型矩阵的输入,以 为标识, 同行元素以“,”或空格分开,行与行 之 间用“;”或回车符分隔。a=1 2 3 45 6 7 83 4 5 6 a =1 2 3 45 6 7 83 4 5 6几个重要的Matlab矩阵命令 zeros ones eye linspac
13、e rand diag / det inv eig rank rref orth null特殊矩阵的生成 空阵;zeros 全0阵; eye 单位阵; ones 全1阵; rand随机阵; magic魔方矩阵; company伴随矩阵; vander 范得蒙矩阵;矩阵的基本运算 矩阵的四则运算 : 加 + A+B (同维矩阵) 矩阵相加 减 - A-B (同维矩阵 ) 矩阵相减 乘 * A*B (A的列数=B的行数 ) 矩阵相乘 左除 AB (=INV(A)*B) 用于求方程组的解 右除/ A/B (=A*INV(B) 用于求方程组的解 点乘.* A.*B 同维矩阵或其中一个为数 对应元素相乘
14、 点除./ A./B 同维矩阵或其中一个为数 对应元素相除矩阵与常数间的运算矩阵与常数间的运算为矩阵的每一个元素 之间的运算。需要注意的是作除法运算时,常 数只能作除数。矩阵的逆运算inv(A) :表示求矩阵A的逆矩阵。 例如:a=2 1 -3 -1;3 1 0 7;-1 2 4 -2;1 0 -1 5a =2 1 -3 -13 1 0 7-1 2 4 -21 0 -1 5 inv(a) ans =-0.0471 0.5882 -0.2706 -0.94120.3882 -0.3529 0.4824 0.7647-0.2235 0.2941 -0.0353 -0.4706-0.0353 -0.0588 0.0471 0.2941矩阵的行列式运算det(A) 表示计算矩阵A的行列式。例:对于上面的a,有: det(a)= -85 det(inv(a) = -0.0118矩阵的数组乘方: 两个矩阵对应元素的乘方: A=1 2;3 4; B=2 2;1 3; A.B ans =1 43 64 矩阵的开方运算 由函数sqrtm实现,所谓 S=sqrtm(A),是指S*S=A 。矩阵的基本函数运算特征值函数eig ,eigs条件数函数 Cond:计算矩阵条件数的值; Condest:计算矩阵1范数条件数的估计