版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,大学计算机基础 系统工具与环境 (理工科用),赵 欢 肖德贵 李丽娟 洪跃山 编著,第三部分 仿真及计算工具 第11章 MATLAB应用,大学计算机基础 系统工具与环境(理工科用),本章内容提要,11.1 MATLAB在高等数学中的应用 11.2 MATLAB绘图 11.3 MATLAB图像处理 11.4 小结,11.1 MATLAB在高等数学中的应用,符号运算 1. 定义符号常量 符号数学工具箱中的函数sym( )可以将一个数值常量A 定义成一个符号常量。其一般的使用形式为 sym(A) 例如 将一组数值常量定义成符号常量。 x=sym(sin(15) x = sin(15) y=sym
2、(3*4-2)/5+1) y = (3*4-2)/5+1,11.1 MATLAB在高等数学中的应用,2. 定义符号变量 定义符号变量可以有两种方法:使用函数sym( )或命令syms。其使用形式为 sym(x) 或 syms x y 例如 定义符号变量及其表达式 a=sym(x) a = x b=sym(y) b = y f=a2+b2 f = x2 + y2,11.1 MATLAB在高等数学中的应用,在该例中,定义符号x并赋值到符号变量a,同时利用a定义解析式f。需要注意的是,使用函数sym()每次只能定义一个符号变量,而使用syms一次可以定义多个符号变量。 例如 定义符号变量及表达式 s
3、yms x y f=x2+y2 f = x2 + y2,11.1 MATLAB在高等数学中的应用,3. 表达式求值 通过符号变量定义符号表达式以后,可以通过函数eval来求表达式的值。 例如 符号常量表达式求值。 x=sym(sin(15); eval(x) ans = 0.6503 包含符号变量的表达式求值时,应对符号变量赋初值。,11.1 MATLAB在高等数学中的应用,包含符号变量的表达式求值时,应对符号变量赋初值。 例如 符号变量表达式求值。 syms x y f=x2+y2 f = x2 + y2 x=5; y=4; eval(f) ans = 41,11.1 MATLAB在高等数学
4、中的应用,4. 表达式化简 MATLAB 提供了化简和美化符号表达式的各种函数,具体有:合并同类项(collect)、多项式展开(expand)、因式分解(factor)等。 (1). 合并同类项(collect): 函数collect( )调用的格式有两种。 R = collect(S):对于多项式S 按默认独立变量的幂次降幂排列。 R = collect(S,v):对指定的对象v 计算,操作同上。,11.1 MATLAB在高等数学中的应用,11.1 MATLAB在高等数学中的应用,(2). 表达式展开(expand) 利用函数expand( )来展开符号表达式。其命令格式如下: R = e
5、xpand(S) 对符号表达式S 中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式。,11.1 MATLAB在高等数学中的应用, syms x y a b c t e1 = expand(x-2)*(x-4)*(y-t) e1 = 8*y - 8*t + 6*t*x - 6*x*y - t*x2 + x2*y e2 = expand(cos(x+y) e2 = cos(x)*cos(y) - sin(x)*sin(y) e3 = expand(exp(a+b)3) e3 = exp(3*a*b2)*exp(3*a2*b)*exp(a3)*
6、exp(b3),11.1 MATLAB在高等数学中的应用,e4 = expand(log(a*b/sqrt(c) e4 = log(a*b)/c(1/2) e5 = expand(sin(2*t), cos(2*t) e5 = 2*cos(t)*sin(t), cos(t)2 - sin(t)2 e6 = expand(x+1)3) e6 = x3 + 3*x2 + 3*x + 1,11.1 MATLAB在高等数学中的应用,(3). 因式分解(factor) 利用函数factor( )来进行符号表达式的因式分解。其使用格式为: factor(X) 参量X 可以是正整数、符号表达式矩阵。若X 为
7、一正整数,则factor(X)返回X 的质数分解式。若X 为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。 例如 因式分解示例。 syms a b x y f1 = factor(x4-y4) f1 = (x-y)*(x+y)*(x2+y2) f2 = factor(a2-b2, x3+y3) f2 = (a-b)*(a+b), (x+y)*(x2-x*y+y2),11.1 MATLAB在高等数学中的应用,符号运算 1. 多项式表示 在 MATLAB 中,多项式被表示成行向量的形式,它的系数是按降幂排列的,即按降幂次序将多项式的系数组成行向量,就可以在MATLAB 中建立一个多项式
8、。例如,多项式 在MATLAB 中,按下面方式组成一个行向量 f = -4 3 18 5 1 MATLAB 会将长度为n+1 的向量解释成一个n 次多项式。因此,若多项式某些项系数为零,则必须在向量中相应位置补零。,2. 多项式求值 在MATLAB中多项式被表示为一个行向量,因此任何一个行向量都可当作一个多项式,可以通过调用函数polyval来求多项式的值,使用格式为: y = polyval(p,x) 其中,p为行向量,x作为参数,计算前必须赋值。,11.1 MATLAB在高等数学中的应用,3. 多项式求根 多项式求根的函数是roots,返回结果可能是复数根。其使用格式为 y=roots(p
9、) 其中p为行向量,用于表示一个多项式。,11.1 MATLAB在高等数学中的应用,4. 符号多项式 当已知多项式的系数时,可以利用函数poly2sym来构造符号多项式。 例如 对于多项式系数向量p=-4 3 18 5 1构造符号多项式并求值。 p=-4 3 18 5 1; f=poly2sym(p) f = - 4*x4 + 3*x3 + 18*x2 + 5*x + 1 x=5; y=eval(f) y = -1649,11.1 MATLAB在高等数学中的应用,5. 从根创建多项式 假定已知多项式的根,则可以使用函数poly函数来求多项式向量,这个函数与roots是互逆函数。 例如 已知多项
10、式的根为2、5、1,求多项式。 r=2;5;1; s=poly(r) s = 1 -8 17 -10 这里创建了多项式 ,根分别为2、5、1。,11.1 MATLAB在高等数学中的应用,函数极限 1. 一元函数的极限 假设已知函数 ,则极限问题一般描述为 其中L 可以是一个确定的值,也可以不是 ,对于某些问题来说,还可以是左右极限 ,在MATLAB中,直接调用函数limit来求极限,格式如下 (1) limit(expr, x,x0),其中expr为函数表达式,一般为符号表达式,x是变量,x0为极限点。 (2) limit(expr, x, x0, left),expr、x、x0与上面格式相同
11、,如果为左极限,则最后一个参数为left,否则为right。 在上面格式中,极限点x0可以是inf或-inf,表示正、负无穷大。,11.1 MATLAB在高等数学中的应用,11.1 MATLAB在高等数学中的应用,2. 多元函数的极限 多元函数极限一般可表示为 在MATLAB中,同样是通过调用函数limit来实现,格式如下 (1) limit(limit(expr, x, x0), y, y0) (2) limit(limit(expr, y, y0), x, x0) 如果x0或y0不是确定的值,而是另外一个变量的函数 ,则顺序不能改变。,11.1 MATLAB在高等数学中的应用,11.1 M
12、ATLAB在高等数学中的应用,函数求导 1. 函数的导数和高阶导数 如果函数和自变量都已知,则可以调用函数diff来求各阶导数,使用格式如下 (1) y=diff(expr, x),expr为函数表达式,x为自变量,求一阶导数 (2)y=diff(expr, x, n),求函数的n阶导数,11.1 MATLAB在高等数学中的应用,2. 多元函数偏导数 多元函数偏导数仍然是通过调用diff来实现的,使用格式为 f=diff(diff(expr, x, m), y, n) 或者 f=diff(diff(expr, y, n), x, m),11.1 MATLAB在高等数学中的应用,函数积分 不定积
13、分 在MATLAB中,调用int函数直接求出符号函数表达式的不定积分解析式,使用格式为 F=int(expr, x),expr为函数的表达式,x为积分变量。,11.1 MATLAB在高等数学中的应用,2. 定积分 在MATLAB中,函数int同样可以用于求定积分,使用格式为F=int(expr, x, a, b),expr为函数的表达式,x为积分变量, a, b为积分区间。,级数运算 1. 泰勒(Taylor)展开式 根据泰勒定理,函数f(x)在x0的展开形式为: 其中R, 为截断误差,也称为拉格朗日余项。如果 ,上式又称为麦克劳林(Maclaurin)公式。 事实上,要使用泰勒公式求函数的近
14、似值是一件非常困难的事情,因为需要计算多项,特别是要计算高阶导数,调用MATLAB中的函数taylor可以直接导出泰勒公式,其使用格式为 (1) taylor(expr, x, k),expr为函数符号表达式,x为自变量,该方式为将函数在 0处做泰勒展开,k为展开项数。 (2) taylor(expr, x, k, a),该方式为将函数在a 处做泰勒展开。,11.1 MATLAB在高等数学中的应用,11.1 MATLAB在高等数学中的应用,2. 级数求和 对于具有通项公式的级数,MATLAB提供了函数symsum来计算级数和,具体使用格式为 symsum(expr, n, a,b) expr为
15、通项公式表达式,n为级数变量,a和b分别表示开始项和结束项。,11.1 MATLAB在高等数学中的应用,矩阵及线性方程组 1. 零矩阵、幺矩阵和单位矩阵 在矩阵理论中,将所有元素全为0的矩阵称为零矩阵,把所有元素全为1的矩阵称为幺矩阵,而将对角线元素全为1而其余元素全为0的矩阵称为单位矩阵。使用格式分别如下: (1) A=zeros(m),B=ones(m),C=eye(m),分别生成mm阶零矩阵A、幺矩阵B和单位矩阵C。 (2) A=zeros(m,n),B=ones(m,n),C=eye(m,n),分别生成mn阶零矩阵A、幺矩阵B和单位矩阵C。,11.1 MATLAB在高等数学中的应用,例
16、如 下面分别生成零矩阵、幺矩阵和单位矩阵。, A=zeros(3) A = 0 0 0 0 0 0 0 0 0 B=ones(3) B = 1 1 1 1 1 1 1 1 1 C=eye(3) C = 1 0 0 0 1 0 0 0 1, D=zeros(2,3) D = 0 0 0 0 0 0 E=ones(2,3) E = 1 1 1 1 1 1 F=eye(2,3) F = 1 0 0 0 1 0,11.1 MATLAB在高等数学中的应用,2. 随机矩阵和魔方矩阵 使用函数rand()可以生成一个01之间的随机数,而使用rand(m,n)则可以生成一个mn阶随机矩阵,使用rand(m)生
17、成的是mm阶随机方阵 魔方矩阵是指生成的方阵行、列、对角线之和相等的矩阵,通过函数magic(m)来实现。 例如 生成23阶随机方阵以及5阶魔方矩阵。 rand(2,3) ans = 0.7655 0.1869 0.4456 0.7952 0.4898 0.6463, magic(3) ans = 8 1 6 3 5 7 4 9 2,11.1 MATLAB在高等数学中的应用,3. 对角矩阵 对角矩阵的生成是通过调用函数diag来实现的,其基本格式为 (1) diag(p),生成以向量p的元素构成的对角矩阵,矩阵大小由p的元素个数决定。 (2) diag(p, k),将向量p的元素分布在对角线偏
18、上或偏下的斜列上,k0,代表上部,k0代表下部,k=0时与(1)相同,生成的矩阵阶数=p的元素个数+k。,11.1 MATLAB在高等数学中的应用,3、矩阵行列式、秩、逆和条件数 在MATLAB中,通过调用函数det、rank、inv、cond即可分别求的矩阵的行列式的值、秩、矩阵的逆和条件数。,11.1 MATLAB在高等数学中的应用,4. 线性方程组求解 考虑线性方程组 ,很显然,利用矩阵的逆可以直接求解线性方程组: 这也称为直接法;也可以直接利用之前介绍的反除,即 。,5. 矩阵的三角分解 根据线性代数理论,如果矩阵A是非奇异矩阵,则它一定可以分解为一个非奇异的单位下三角矩阵和非奇异上三
19、角矩阵,使得 成立,但由于需要涉及到选主元来交换某些行,因此还需要增加一个置换矩阵P来构成完整的三角分解 ,在MATLAB中,通过调用函数lu来实现上述过程。,6. 矩阵特征多项式和特征值 求矩阵特征多项式和特征值是线性代数中经常遇到的问题,在MATLAB中通过调用函数eig来实现,其调用格式为 (1) v=eig(A),求矩阵A的特征值,返回形式为由特征值组成的列向量。 (2) b,v=eig(A),返回结果b是由特征向量组成的矩阵,而v为以特征值为对角线的对角矩阵。,11.1 MATLAB在高等数学中的应用,方程求根 1. 函数零点 罗尔(Role)零点定理证明了对于 ,且 ,则必存在区间
20、 内的一点 ,使得 , 就是函数的零点。在MATLAB中使用函数fzero很容易求得零点,使用方式为 (1) fzero(myfun, x0),表示求函数fun在x0附近的零点,其中fun为函数句柄。 (2) fzero(myfun, a b),表示求函数fun在区间a,b上的零点。,11.1 MATLAB在高等数学中的应用,11.1 MATLAB在高等数学中的应用,11.2 Matlab绘图,二维图形 在 MATLAB 中,plot是最基本的二维绘图函数,其调用格式有: (1) plot(Y):若Y为实向量,则以该向量元素的下标为横坐标,以Y的各元素值为纵坐标,绘制二维曲线;若Y为复数向量,
21、则等效于plot(real(Y),imag(Y);若Y为实矩阵,则按列绘制每列元素值相对其下标的二维曲线,曲线的条数等于Y的列数;若Y为复数矩阵,则按列分别以元素实部和虚部为横、纵坐标绘制多条二维曲线。 (2) plot(X,Y):若X、Y为长度相等的向量,则绘制以X和Y为横、纵坐标的二维曲线;若X 为向量,Y是有一维与Y同维的矩阵,则以X为横坐标绘制出多条不同色彩的曲线,曲线的条数与Y的另一维相同;若X、Y为同维矩阵,则绘制以X和Y对应的列元素为横、纵坐标的多条二维曲线,曲线的条数与矩阵的列数相同。,11.2 Matlab绘图,(3) plot(X1,Y1,X2,Y2,Xn,Yn):其中的每
22、一对参数Xi 和 Yi(i=1,2,.,n)的取值和所绘图形与(2)中相同。 (4) plot(X1,Y1,LineSpec,.):以LineSpec 指定的属性,绘制 所有Xn、Yn 对应的曲线。 (5) plot(.,PropertyName,PropertyValue,.):对于由plot 绘制的所有曲线,按照设置的属性值进行绘制, PropertyName 为属性名,PropertyValue 为对应的属性 值。,11.2 Matlab绘图,例如 按不同颜色和线型绘图。 x=0:0.2:8; y1=0.2+sin(-2*x); y2=sin(x.0.5); figure plot(x,
23、y1,g-+,x,y2,r-d); 曲线y1 采用绿色、实线、加号标记,曲线y2 采用红色、虚线、菱形标记,结果如图11.3所示。,11.2 Matlab绘图,MATLAB 在绘图时会根据数据的分布范围自动选择坐标轴的刻度范围,通过调用函数axis指定坐标轴的刻度范围的格式为: axis(xmin,xmax,ymin,ymax), 其中 xmin,xmax,ymin,ymax 分别表示x轴的起点、终点,y 轴的起点、终点; 使用函数xlabel(option )和ylabel(option )来实现x轴y轴加标签; 使用函数title(option )为图形加标题; 使用函数legend(op
24、tion )加标注; 使用命令grid on/off添加或取消网格线; 调用text(x, y, string)在指定的坐标(x,y)处加上文字。,例如 添加坐标标注、标题、网格以及标注的图形。 x=0:0.05:5 ; figure y1=exp(0.4.x)-1.5; y2=sin(x*4); plot(x,y1,x,y2,r-.) xlabel(Input); ylabel(Output); title(My Graphics); legend(y1=exp(0.4.x)-1.5,y2=sin(x*4) grid on,例如 为图形加上文字标注。 plot(0:pi/20:2*pi,si
25、n(0:pi/20:2*pi) text(pi,0, leftarrow sin(pi),FontSize,18) 使用text加标注时,可以增加符号,如上面的leftarrow表示左前头,同时可以设定字体大小,如图11.5所示。,11.2 Matlab绘图,三维曲线图 用函数 plot3 可以绘制三维图形,其调用格式主要有以下几种: (1) plot3(X1,Y1,Z1,.):X1、Y1、Z1 为向量或矩阵,表示图形的三维坐标。该函数可以在同一图形窗口一次画出多条三维曲线,以X1,Y1,Z1,. Xn,Yn,Zn 指定各条曲线的三维坐标。 (2) plot3(X1,Y1,Z1,LineSpe
26、c,.):以LineSpec 指定的属性绘制三维图形。 (3) plot3(.,PropertyName,PropertyValue,.):对以函数plot3 绘制的图形对象设置属性。,例如:绘制三维曲线图 (sin(x), cos(x), x)。 x=0:0.05:20; figure plot3(sin(x),cos(x),x); grid; text(0,0,0,0); title(Three Dimension); xlabel(sin(x) ); ylabel(cos(x) ); zlabel(z); 这里,以向量组(sin(x), cos(x), x) 绘制三维曲线,如图11.6所
27、示。,11.2 Matlab绘图,三维曲面图 在MATLAB中,可以通过调用函数surf来绘制三维曲面图,其使用格式为 (1) surf(X,Y,Z):以Z 确定的曲面高度和颜色,按照X、Y 形成的“格点”矩阵,创建一渐变的三维曲面。X、Y 可以为向量或矩阵,若X、Y 为向量,则必须满足m= size(X),n =size(Y),m,n = size(Z)。 (2) surf(X,Y,Z,C):以Z 确定的曲面高度,C 确定的曲面颜色,按照X、Y 形成的“格点”矩阵,创建一渐变的三维曲面。,例如 绘制球面图 figure X,Y,Z=sphere(50); surf (X,Y,Z); %绘制球
28、体的三维图形 xlabel(x),ylabel(y),zlabel(z); title(Globle); 这里调用了函数sphere(n)来生成球体坐标,其中n表示将整个球体坐标划分的网络数,即生成的向量组(x,y,z)的大小。如图11.7所示。,可以通过函数表达式来绘制三维曲面图。 例如 绘制方程 ,其中 的曲面图。 x,y = meshgrid(-2:.2:2, -2:.2:2); z = x .* exp(-x.2 - y.2); surf(x,y,z),这里meshigrid(x,y)的作用是产生一个以向量x为行,向量y为列的矩阵,而x、y是从-2开始到2,每间隔0.2记下一个数据。如
29、图11.8的图形,网格就是利用meshgrid完成的。,还可以调用函数surfl来绘制亮度曲面图,如将上例改为 x,y = meshgrid(-2:.2:2, -2:.2:2); z = x .* exp(-x.2 - y.2); surfl(x,y,z) shading interp; colormap(gray) 则可产生如图11.9 的光亮效果。,隐函数绘图 利用符号函数,可以通过函数 ezplot 绘制任意一元函数,其调用格式为 (1) ezplot(f):按照x 的默认取值范围(-2*pix2*pi)绘制f=f(x)的图形。对于f=f(x,y),x、y 的默认取值范围:-2*pi x
30、 2*pi,、-2*pi y2*p,绘制f(x,y) = 0 的图形。 (2) ezplot(f,min,max):按照x的指定取值范围(minxmax)绘制函数f=f(x)的图形。,而对于二元隐函数,则可以调用函数ezmesh来绘图,使用格式为 (1) ezmesh(f) :按照x、y 的默认取值范围(-2*pix2*pi, -2*piy2*pi)绘制函数f(x,y) 的图形。 (2) ezmesh(f,domain):按照domain 指定的取值范围绘制函数f(x,y)的图形,domain 可以是14的向量:xmin, xmax, ymin, ymax;也可以是12的向量:min, max
31、,此时,minxmax,min y max。,11.3 Matlab图像处理,图像基础 1. 图像及其类型 MATLAB 图像处理工具箱支持4种基本图像类型:索引图像、灰度图像、二进制图像和真色彩(RGB)图像。 (1) 索引图像 索引图像包括图像矩阵和色图矩阵。其中色图是按图像中颜色值进行排序后的矩阵。对于每个像素图像矩阵包含一个值,这个值就是色图矩阵中的索引。色图为m3的双精度值矩阵,各行分别指定红绿蓝(RGB)的单色值,RGB 为值域是0,1的实数值,0代表最暗,1 代表最亮。,(2) 灰度图像 灰度图像保存在一个矩阵中,矩阵的每个元素代表一个像素点。矩阵可以是双精度类型,值域为0,1;
32、也可以为unit8类型,值域为0,255。矩阵的每个元素值代表不同的亮度或灰度级,0 表示黑色,1(或unit8的255)代表白色。 (3) 二进制图像 表示二进制图像的二维矩阵仅由0和1构成。二进制图像可以看作一个仅包括黑与白的特殊灰度图像,也可以看作共有两种颜色的索引图像。二进制图像可以保存为双精度或unit8 类型的数组,显然,用unit8 类型可以节省空间。在图像处理工具箱中,任何一个返回二进制图像的函数都是以unit8 类型逻辑数组来返回的。,(4) 真彩色(RGB)图像 真彩色图像用RGB这3个亮度值表示一个像素的颜色,真彩色(RGB)图像各像素的亮度值直接存在图像数组中,图像数组为mn3,m、n表示图像像素的行数和列数。 2. 数字图像格式 计算机数字图像文件常用格式有:BMP(Windows 位图文件)、HDF(层次数据格式图像文件)、JPEG(联合图像专家组压缩图像文件)、PCX(Windows 画笔图像文件)、TIF(标签图像格式文件)、XWD(X Windows Dump 图像格式文件)等。,11.3 Matlab图像处理,图像的读和写 1. 读入图像 从图像文件中读入图像数据用函数imread,常用格式如下: (1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院药剂科主任岗位职能说明
- 班级文化建设年度总结与改进建议
- 食材质量安全控制方案和制度机制
- 建筑基坑工程监测技术规范标准
- 初中科学探究实验说课稿
- 大学生电子商务创业计划书
- 基层医院医疗设备采购流程规范
- 高考英语状语从句专题讲解
- 学校和培训机构合作合同协议书范本
- 人教版八年级下册英语unit6单词详解
- 数学史全套课件
- 起重机械产品质量证明书
- 2021市政工程资料表格填写范例样本
- 高空作业专项施工方案
- 成都建筑装饰装修工程设计收费标准
- GB/T 6117.1-1996立铣刀第1部分:直柄立铣刀的型式和尺寸
- GB/T 16301-2008船舶机舱辅机振动烈度的测量和评价
- GB/T 1185-2006光学零件表面疵病
- 商务星球版七年级下册地理知识点归纳
- 公司治理课件讲义
- 大学生心理健康教育考试题库(200题)
评论
0/150
提交评论