版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Matlab基础教程上海财经大学浙江学院一 Matlab基础知识当前浏览目录指令窗口工作空间历史指令窗口例:求下列式子的算术运算结果2122 (74) 3 (1)用键盘在MATLAB指令窗中输入以下内容 (2)输入完成后,按Enter键,执行指令并显示结果“” 表示 :指令提示符ans 是 answer 的缩写,表示没有赋值号的表达式什么是赋值呢?输入:得出:即,把=右边的值传递给a,称为赋值把a称为变量变量的命名规则(1)变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符_)(2)变量名对字母大小写敏感。如,a和A表示不同的变量; sin 在MATLAB中表示正弦函数
2、名,但SIN、Sin等都不是(3)定义变量名的两个忌讳:(3.1)变量名不应与MATLAB关键词(如for,if/else,end等)同名;(3.2)变量名尽量不与MATLAB自用的变量名(如eps,pi等)、函数名 (sin,cos等)、文件夹名(rtw,toolbox等)相同。为帮助判断定义的变量名是否与MATLAB中重复,MATLAB提供了以下两个判断指令:(1)iskeyword 变量名 若运行结果为0,表示变量名不同于MATLAB关键词;(2)exist 变量名 若运行结果为0,表示变量名不同于MATLAB自用的变量名、函数名、文件名1.1 数据类型用于表示数据的结构。MATLAB中
3、的数据类型包括数值类型、逻辑类型、字符串、函数句柄、结构体和单元数组类型。1.1.1 数值类型数值类型主要有整数、单精度浮点数和双精度浮点数。MATLAB对所有数值按照双精度浮点数类型进行存储和操作。1. 整数类型数据格式类型数值范围int8有符号8位整数uint8无有符号8位整数int16有符号16位整数uint16无有符号16位整数int32有符号32位整数uint32无有符号32位整数int64有符号64位整数uint64无有符号64位整数15152 21772 2180 2160 2131312 21320 2163632 21640 21(1)整数类型分为有符号和无符号;(2)整数类
4、型占用的内存较少;(3)在32位操作系统下,int64和uint64不能进行数值运算。(4)不同的整数类型所占用的位数不同,表示的数值范围也不同,在实际应用中需要合理选择适合的整数类型。 由于MATLAB默认的是双精度浮点类型,因此在去整的时候,需要用到取整的转换函数,将双精度浮点类型转换为整形。 MATLAB常见的取整函数有:floor(x),ceil(x),round(x),fix(x)。2. 浮点类型浮点类型浮点类型存储位宽存储位宽各数位的意义各数位的意义数值范围数值范围单精度(single)320-22位表示小数部分23-30位表示指数部分31位表示符号(0正1负)双精度(double
5、)(MATLAB默认类型)640-51位表示小数部分52-62位表示指数部分63位表示符号3.40282038 3.40282038ee1.79769308 1.79769308ee相同数值的单精度浮点类型比双精度浮点类型占用更少内存;单精度的数值范围要比双精度的小例: 求ab,ac,bc的值int32(120);sin(22.809);73.226aubglec注意:在MATLAB中,单精度浮点类型不能与整数类型进行算术运算。无穷量(Inf)和非数值量(NAN)Inf:表示计算结果超出了双精度浮点数的数值为范围,成为无穷大。Inf:-Inf:NAN:由 类型的非正常运算的结果表示。0/0/
6、InfInf或1.1.2 逻辑类型 逻辑类型的数据是指布尔类型的数据集数据之间的逻辑关系。就是通过关系和逻辑运算,得出结果为真假的输出:对于真,输出为1;对于假,输出为0.1. 关系运算 实质就是比大小。需要用到关系操作符:关系操作符关系操作符说明说明小于大于=大于或等于=等于=不等于例:比较两个数组之间的元素是否相等A=1:9 ,B=10-ATrueorFalse=(A=B)在Matlab中,“=”表示赋值,“=”表示等于2. 逻辑运算 逻辑变量之间的运算。 逻辑运算符:“&”表示“与”,“|”表示“或”,“”表示“非”例:判断数组A中的元素是否存在2与6之间A=1:9Trueorfalse
7、=(A2)&(A6)例:判断数组A中的元素是否存在小于2或大于6的元素2.1.3 字符与字符串字符是指在计算机中使用的字母、数字、字和符号,包括:1、2、3、a、b、C、!.#%()*等等。字符串或串(String)是由数字、字母、下划线组成的一串字符。注意区分:a=1和a=1;例:string=every good boy does fun.以用函数size来获知字符串的在计算机中说占用的空间。size(string)可知,字符串在计算机中是以数组的形式存储的。 例:获取字符串string第7-10位的子串U=string(7:10) 字符串的连接 在MATLAB中可以用矩阵的形式对两个字符
8、串进行连接。例:U=Hello,;V=World !;W=U V;W=strcat(U,V)字符串查找和替换函数字符串查找和替换函数String=Peter Piper picked a peck of pickled peppers.查找findstr(String, )findstr(String,p)findstr(Strign,pick)替换String(1:11)=Helen SmithString=strrep(String,Helen Smith,Sabrina Crame)1.1.5 结构体类型结构体就是可以通过字段存储多个不同类型的数据。结构体相当于一个数据容器,把多个相关联
9、的不同类型的数据封装在一个结构体对象中。比如,学生信息(student)里,存有学号(num)、姓名(name)、年级(grade)、所学科目(subject)有语文(Chinese)、数学(Math)、英语(English),同时还有各科的成绩(scores)5和字段,如图。1. 通过字段赋值创建结构体在命令窗口中输入:student.num=2014001;=lilei;student.grade=6;student.subject=Chinese,Math,English;student.scores=99,88,89;查看一下结构体student所占的空间大小s
10、ize(student)2. 利用struct函数创建结构体Struct函数的句法形式为:StrArray=struct(field1,var1,field2,var2,fieldn,varn)上述语句创建结构对象为StrArray,并将n个字段分别赋值为var1,var2,varn。例:date=struct(Day,Friday,Time,18:00,activity,shopping)Date=struct(Day,Friday,Saturday,Time,18:00,19:00,activity,shopping,see a movie)1.1.6 数组类型所谓数组,就是相同数据类型的
11、元素按一定顺序排列的集合例:A=1 2 3 4 5或B=1,2,3,4,5在Matlab中可以用“:”来代表一系列数值。A=i:j创建从i开始,步长为1,到j结束的数字序列,即i,i+1,i+2,j。A=1:10A=i:k:j创建从i开始,步长为k,到j结束的数字序列,即i,i+k,i+2k,j。A=1:2:10A=linspace(a,b,n)在区间a,b上创建一个有n个元素的向量,即把区间a,b,n等分。A=linspace(0,2*pi,10)创建空数组A_Empty=;Size(A);当数组的元素个数为0时,称数组为空。字符串数组day=Mon Tur Wed Thurs Fri Sa
12、t Sun2.2 基本矩阵操作基本矩阵操作2.2.1 矩阵的概念在数学上,定义由 个数 排成的m行n列的数表 为m行n列矩阵,并用大写字母表示。mn(1,2,;1,2, )ija im jn111212122212nnmmmnaaaaaaAaaa只有一行的矩阵称为行向量只有一列的矩阵称为列向量12nAaaa123aaAaMatlab中矩阵和数组的区别: 在Matlab内进行运算的所有数据类型,都是按照数据及矩阵的形式进行存储和运算的。同时,矩阵是以数组的形式存在,因此,以为数组相当于向量,二维数组相当于矩阵,可以说矩阵是数组的子集。两者的区别:(1)矩阵是数学上的概念,而数组是计算机程序设计领
13、域的概念。(2)作为一种变换或者映射算符的体现,矩阵运算有着明确而严格的数学规则。而数组运算是MATLAB软件定义的规则,其目的是为了使数据管理方便,操作简单,命令形式自然,执行计算有效。2.2.2 矩阵构造1. 建立简单矩阵(1)用逗号和分号构造二维矩阵A=2,3,4;5,6,7(2)用空格和分号构造二维矩阵B=2 3 4;5 6 7(3)构造行向量C=8,9,3,50(4)构造列向量D=8;9;3;50因此,构造矩阵用“ ”,同行元素用空格或逗号隔开,行与行之间用“;”隔开 2. 建立特殊矩阵函数名称函数名称函数功能函数功能ones(n)构建一个 的1矩阵(矩阵的元素全是1)ones(m,
14、n,p)构建一个 的1矩阵ones(size(A)构建一个和矩阵A同样大小的1矩阵zeros(n)构建一个 的0矩阵(矩阵的元素全是0)zeros(m,n,p)构建一个 的0矩阵zeros(size(A)构建一个和矩阵A同样大小的0矩阵eye(n)构建一个 的单位矩阵eye(m,n)构建一个 的单位矩阵eye(size(A)构建一个和矩阵A同样大小的单位矩阵nnnnnnmnmnp mnp magic(n)构建一个 的矩阵,其每行、每列的元素之和都相等rand(n)构建一个 的矩阵,其元素为01之间均匀分布的随机数rand(m,n,p)构建一个 的矩阵,其元素为01之间均匀分布的随机数randn
15、(n)构建一个 的矩阵,其元素为零均值、单位方差的正态分布随机数randn(m,n,p)构建一个 的矩阵,其元素为零均值、单位方差的正太分布随机数diag(x)构建一个 n 维的方阵,其主对角线元素值取自向量x,其余元素都为0diag(A,k)构建一个由矩阵A第k条对角线的元素组成的列向量,k=0为主对角线;k0为上第k对角线diag(x,k)构建一个 维矩阵,该矩阵的第k条对角线元素取自向量x,其余元素都为0triu(A)构建一个和A大小相同的上三角矩阵。该矩阵的主对角线上元素为A中相应元素,其余元素都为0triu(A,k)构建一个和A大小相同的上三角矩阵。该矩阵的第k条对角线上元素为A中相
16、应元素,其余元素都为0tril(A)构建一个和A大小相同的下三角矩阵。该矩阵的主对角线上元素为A中相应元素,其余元素都为0tril(A,k)构建一个和A大小相同的下三角矩阵。该矩阵的第k条对角线上元素为A中相应元素,其余元素都为0nnnnmnp mnp nn(|) (|)mknk3. 向量、标量与空矩阵(1)向量当m=1或n=1,即 或 时,建立的矩阵称为向量。a=1 2 3 4 5 6b=1;2;3;4;5;6(2)标量当 时,建立的矩阵称为标量,任意以 的矩阵形式表示的单个实数,复数,都是标量。x=10+2i %将复数10+2i赋值给变量xy=10+2i %将复数10+2i构成的矩阵赋值给
17、变量yx=y %判断x和y是否相等1 n1m1mn1 1(3)空矩阵当 时,创建的矩阵称为空矩阵x=whos(x)z=0 0 0;0 0 0Whos(z)0 0,0,0n m2.2.3 矩阵大小及结构的改变矩阵大小和结构的改变主要的方式有旋转、改变维度、删除矩阵元素等函数名称函数名称函数功能函数功能filplr(A)矩阵每一行均进行逆排序flipud(A)矩阵每一列均进行逆排序rot90(A)逆时针旋转 rot90(A,k)逆时针旋转9090k2.2.4 矩阵下标引用在Matlab中,普通二维数组元素的数字索引分为双下标索引和单下标索引。如,若矩阵A为4维方阵,则A(2,3)表示矩阵A中第2行
18、第3列的元素。 A(7)表示矩阵A中第3行第2列的元素。双下标索引和单下标索引的转化(1)将双下标索引值转化单下标索引值 n=sub2ind(size(A),i,j)(2)将单下标索引值双下标索引值 i j=ind2sub(size(A),n)矩阵的索引表达式索引表达式索引表达式函数功能函数功能A( i )返回数组第 i 哥元素A( : , j )返回二维矩阵A中第 j 列列向量A( i , : )返回二维矩阵A中第 i 行行向量A( : , j : k )返回由二维矩阵A中第 j 列到第 k 列列向量组成的子矩阵A( i : k , : )返回由二维矩阵A中第 i 行到第 k 行行向量组成的
19、子矩阵A( i : m , j : n )返回由二维矩阵A中第 i 行到第 m 行行向量和第 j 行到第 k 行行向量的交集组成子矩阵A( : )将矩阵A中的每列合并成一个长的列向量A( j : k )返回一个行向量,其元素为A(:)中的第j个元素到第k个元素返回一个行向量,其中的元素为A(:)的第 元素12()Ajj12jj、索引表达式索引表达式函数功能函数功能返回矩阵A的第 列、第 列的列向量返回矩阵A的第 行、第 行的列向量返回矩阵第 行、第 行和第 列、第 列元素12(:,)Ajj12(,:)A ii1212(,)A iijj1j1j2j2j1i1i2i2i例: 设A=magic(4)
20、, (1)求第4列元素的和 (2)将元素1修改成-1 (3)增加全为0的一行2.2.5 矩阵信息的获取1. 获取矩阵的维数 n=ndims(X)2. 获取矩阵在各个维上的长度 m,n=size(X)3. 获取矩阵最长维的长度 n=length(X)4. 获取矩阵元素的个数 n=numel(X)2.3 运算符运算符2.3.1 算数运算符(A,B为数值或矩阵)A+B A与B相加A-B A与B相减A*B A与B相乘A.*B A与B相应的元素相乘AB A左除BA/B A右除B A./B A中各元素分别除以B中各元素A.B B中各元素分别除以A中各元素111AXBA AXA BXA BA B111/XB
21、AXBBABXABA BAB A的B次幂(B为数值)A.B A的每个元素的B次幂MATLAB中常用的运算函数sin(x) cos(x) tan(x) asin(x) x的反正弦函数 acos(x) atan(x)mod(a,b) a与b相除取余max(a,b) min(a,b)exp( )xxelog( )logexx1010( )loglogxx2log2( )logxx102210logloglogloglogloglogeaebbbbaaa( )sqrt xxmean(x) 求x阵列的平均值median(x) 求x阵列的中位数sum(x) 求x阵列的总和值prod(x) 求x阵列的连乘值
22、cumsum(x) 求x阵列的累计总和值cumprod(x) 求x阵列的累计连乘值sign(x) x0时返回值为1rem(x,y) 返回x/y的余数diff(x) x向量的差分sort(x) 对x向量进行从小到大排序fft(x) x向量的离散傅里叶变换 rank(x) x矩阵的秩二、数组与矩阵二、数组与矩阵2.2.1 数组的创建和操作MATLAB中一般用“”、“,”、空格和“;”来创建数组,数组同一行元素用逗号或空格进行分割,不同行之间用分号进行分割。同时,必须是英文状态下输入例:创建空数组、行向量、列向量A=B=1 2 3 4 5 C=1,2,3,4,5D=1;2;3;4;5例:A=1 2
23、3 4 5 6(1)访问数组第一个元素:a1=A(1)(2)访问数组第1、2、3个元素:a2=A(1:3)(3)访问数组第3到最后一个元素:a3=A(3:end)(4)数组元素反序输出:a4=A(end:-1:1)(5)访问数组第1及第6个元素:a5=A(1 6)给数组赋值:(1)第三个元素赋值为0:A(3)=0(2)第1及第4个元素赋值为1:A(1 4)=1 11. 通过冒号创建以为数组X=A:step:BA是创建一维数组的第一个变量,step是每次递增或递减的数值,直到最后一个元素和B的差的绝对值小于等于step的绝对值为止。不指定step时,系统默认step=1.例:A=2:6 B=2.
24、1:1.5:6 C=2.1:-1.5:-6 D=2.1:-1.5:62. 通过logspace函数创建一维数组(1)y=logspace(a,b):该函数创建行向量y,第一个元素为 ,最后一个元素为 ,形成总数为50个元素的等比数列。(2)y=logspace(a,b,n):该函数创建行向量y,第一个元素为 ,最后一个元素为 ,形成总数为n个元素的等比数列 。3. 通过linspace函数创建一维数组(1)y=linspace(a,b):该函数创建行向量y,第一个元素为a,最后一个元素为b,形成总数为100个元素的等差数列。(2) y=linspace(a,b,n):该函数创建行向量y,第一个
25、元素为a,最后一个元素为b,形成总数为n个元素的等差数列。10a10b10a10b2.1.2 数组的常见运算1. 算术运算(加减乘除)数组的加减运算要求数组A和B的维数相同。例:A=1 5 6 8 9 6 B=9 85 6 2 4 0 C=1 1 1 1 1 D=A+B E=A*B F=A*2 G=A+3 H=A-CA=1 5 6 8 9 6;B=9 5 6 2 4 0C=A.*BD=A*3D1=A.B D2=B./AE1=A./B E2=B.AF=A./3G=A/3H=A.BI=A.3J=3.A通过函数dot()实现数组的点积运算,要求数组A和B的维数相同。格式为:C=dot(A,B)A=1
26、 5 6 8 9 6B=9 5 6 2 4 0C=dot(A,B)D=sum(A.*B)dot(A,B)=sum(A.*B)2. 数组的关系运算(比较大小)Matlab提供了6种关系运算符,即、=、=(恒等于)、=(不等于)A=1 5 6 8 9 6B=9 5 6 2 4 0C=A=6E=A=1); D=A(A=1); BCD=B,C,D A(find(A=0)=102.3.6 矩阵元素的排序MATLAB中用函数sort()按照升序排序。B=sort(A):对矩阵A进行升序排序。A可为矩阵或向量B=sort(A , dim):对矩阵A进行升序排序,并将结果返回在给定的维数dim上按照升序排列,
27、当dim=1时,按照列进行排序,当dim=3时,按照行进行排序。B=sort(A , mode):对矩阵A进行排序,mode指定排序的方式,ascend指定按升序排序,为默认值。Descend指定按降序排序。例: A=1 3 0;3 1 0;9 2 4; B=sort(A); C=sort(A,2); D=sort(A,descend) E=sort(A,2,descend)2.3.7 矩阵元素求和B=sum(A):对矩阵A各列求和。B=sum(A,dim):dim=1时,对A各列求和;dim=2时,对A各行求和B=cumsum(A):对A各列累计求和。B=cumsum(A,dim)例: A=
28、1 3 0;3 1 0;9 2 4; B=sum(A) C=sum(A,2) D=cumsum(A) E=cumsum(A,2) F=sum(sum(A)2.3.8 矩阵元素求积(1)B=prod(A):对矩阵A各列元素求积(2)B=prod(A,dim):当dim=1时,对A各列元素求积,当dim=2时,对A各行元素求积(3)B=cumprod(A):对各列累计求积(4)B=cumprod(A,dim)当dim=1时,对A各列累计求积,当dim=2时,对A各行累计求积A=magic(3)B=prod(A)C=prod(A,2)D=cumprod(A)E=cumprod(A,2)2.3.9 矩
29、阵元素的差分Y=diff(X):计算矩阵X各列元素的差分Y=diff(X,n):计算矩阵X各列元素的n阶差分Y=diff(X,n,dim):dim=1时,计算矩阵X各列元素的n阶差分,dim=2时,计算矩阵X各行元素的n阶差分A=magic(3)B=diff(A)C=diff(A,2)D=diff(A,1,1)E=diff(A,1,2)2.4.1 矩阵的运算1. 矩阵的秩矩阵A中线性无关的列向量个数称为列秩,线性无关的行向量个数称为行秩。用rank()函数计算例:A=1 2 3;3 4 5;7 8 9; B=rank(3); r1=rank(A) r2=rank(B)2. 矩阵的行列式例:求矩
30、阵 的行列式。求矩阵 的行列式Matlab中用函数det()来计算行列式1234A123345789A2.4.3 特征值和特征向量定义:设矩阵A是一个 阶方阵,如果存在数 和非零向量x,使得关系式成立,那么称 为矩阵A的特征值,非零向量x为矩阵A对应于特征值 的特征向量。把上式改写成这是n个未知数n个方程的齐次线性方程组,它有非零解的充分必要条件是系数行列式nnAXX()0AE X0AEeig(A):求矩阵A的特征值X,D=eig(A):产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵X,他们的列分别是相应的特征值和特征向量,满足AX=XD例: 求 的特征值即特征向量110430102A三、
31、三、MATLAB编程基础编程基础3.1 M文件编辑器1. 创建新的M文件(1)在命令窗口中运行指令edit。(2)单机工具栏或M文件编辑器工具栏的 图标。(3)点击File-New-function2. 打开已有的M文件(1)命令窗口输入edit filename(2)点击图标(3)菜单栏File-Open例:求 的特征值及特征向量画出sin(x)的图形110430102A3.2 MATLAB的控制流3.2.1 顺序结构顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的。例:计算半径r=5的元的面积。点击图标 新建M文件。%定义半径变量r,并赋值r=5;%计算面积S=pi*r*r%输出面
32、积fprintf(Area=%fn,S); 并命名为“circle_area”保存3.2.2 if-else-end分支结构(1)若条件expression为真,则执行命令组commands,否则跳过该命令组。 if expression commands end (2)若可供选择的执行命令组有两组,则 if expression %判决条件 commands1 %判决条件为真,执行命令组commands1,并结束此结构 else commands2 %判决条件为假,执行命令组commands2,并结束此结构 end(3)若可供选择的命令组有n(n2)组,则if expression1 %判决
33、条件 commands1 %判决条件expression1为真,执行命令组commands1,并结束此结构elseif expression2 commands2 %判决条件expression1为假, expression2为真,执行命令组commands2else commandsn %前面所有判决条件都为假,则执行命令commandsn,并以此结束end例:已知符号函数使用if语句判断给定变量x的值时,相应的函数值y。10sgn0010 xyxxx3.3.3 switch-caseswitch value %value为需要进行判决的标量或字符 case test1 command1 %
34、如果value=test1,执行command1,并结束此结构 case test2 command2 %如果value=test2,执行command2,并结束此结构 case testk commandk %如果value=testk,执行commandk,并结束此结构 otherwise commands %如果value不等于前面所有的值,执行commands,并结束此结构end例:输入17任意数,判断星期例:求任意底数的对数函数值lognyx3.3.4 try-catchtry command1 %命令组command1总是首先被执行。若正确,执行完成后结束此结构catch comm
35、and2 %命令组command1发生错误时执行command2 只有当matlab执行命令command1发生错误时,才执行命令command2,try-catch结构只提供两个可供选择的命令组. 当执行command1发生错误时,可调用函数lasterr查询错误原因,如果函数lasterr的运行结果为空字符串,则表示命令command1被成功执行了。例:num=6;mat=magic(4);try mat_num=mat(num,:);catch mat_end=mat(end,:);endlasterr3.3.5 for循环结构例:利用for循环求解1+2+.+100的和。sum=0;f
36、or i=1:100 sum=sum+i;endsum(1)求1100所有偶数的和。(1)求1100所有奇数的和。for循环的语法结构如下for x=array commands;endfor指令后面的变量x为循环变量,而for与end之间的组命令commands被称为循环体。循环体的执行的次数是由array数组元素的个数来确定。每次循环过程中,变量x被依次赋值为数组array的各个元素,每次赋值循环体都要被执行依次。例:用for循环求矩阵A=magic(6)中所有元素之和例:利用for循环求解 , ,sin()360n kx 1:10n1:4k 3.3.6 while循环结构例:用while
37、循环求1100的和sum=0;i=1;while i b=1 2 3 6 8; c=a+bc = 2 4 8 13 17结果是:4322591317xxxx2. 多项式乘法例: a=1 2 5 7 9; b=1 2 3 6 8; c=conv(a,b)c = 1 4 12 29 58 85 109 110 72conv指令只能进行两个多项式的乘法,两个以上需要重复使用conv3. 多项式的除法c=1 5 15 35 69 100 118 110 72;b=1 2 4 6 8; a,r=deconv(c,b)a = 1 3 5 7 9r = 0 0 0 0 0 0 0 0 0a是多项式c除以b的
38、商,余式子为r。4.1.3 多项式的导师、积分和估值1.多项式求导d=1 5 15 35 69 100 118 110 72;e=polyder(d)2. 多项式求积分polyint(P,k):求多项式P的积分,k为积分常数项polyint(P):求多项式P的积分,积分常数项默认为03.多项式估值根据自变量可对多项式进行估值,用函数polyvalx=-1:0.01:1;g=1 3 5 7 9;h=polyval(g,x);plot(x,h);xlabel(x);title(x4+3x3+5x2+7x+9);5.1.5 有理多项式像傅里叶(Fourier)、拉普拉斯(Laplace)和Z变换中,
39、出现了两个多项式之比。有理多项式由分子多项式和分母多项式表示。用函数residue运算。例:计算多项式num=5 3 -2 7; %分子多项式den=-4 0 8 3; %分母多项式r,p,k=residue(num,den)3235327483xxxxxr = -1.4167 -0.6653 1.3320p = 1.5737 -1.1644 -0.4093k = -1.2500表示:1.41670.66531.3321.251.57371.16440.4093xxxresidue函数也可以执行逆运算num=5 3 -2 7; %分子多项式den=-4 0 8 3; %分母多项式r,p,k=r
40、esidue(num,den)323( )1.250.750.51.75( )20.75n xxxxd xxx函数polyder对两个多项式构成的有理多项式求导。num=5 3 -2 7; %分子多项式den=-4 0 8 3; %分母多项式b,a=polyder(num,den)5.2 数据插值插值法就是由已知的观测点,为物理量建立一个简单的、连续的解析模型,以便能根据该模型推测该物理量在非观测点处的特性。如,由实验或测量的方法得到函数 在互异点 处的数值 然后构造一个函数 作为 的近似表达式,即使得 成为被插值函数, 为插值函数( )yf x01,nx xx01,nyyy( )x( )yf
41、 x( )( )yf xx0011(), (), ()nnxyxyxy( )yf x( )x5.2.1 一维插值当被插值函数 为一元函数时,为一维插值。用interp1来实现。Vq=interp1(X,V,Xq,method):X为自变量取值;V为函数值或向量,其长度必须与X保持一致;Xq为插值点向量或数组;method是字符串变量method=nearest:临近点插值。插值点函数值的估计为与该插值点最近的数据点的函数值。method=linear:线性插值。根据相邻数据点的线性函数估计落在该区域内插值数据点的函数值。method=spline:三次样条插值。在相邻数据点间建立三次多项式函数
42、,根据多项式函数确定插值数据点的函数值。method=pchip或cubic:立方插值。通过分段立方插值方法计算插值结果method=v5cubic:用matlab5版本中断三次样条插值( )yf x几种插值法的比较:(1)临近点插值方法的速度最快,但平滑性最差;(2)线性插值占用计算机内存比临近插值多,运算时间也长;与临近点插值不同,其结果是联系的,但在顶点处的斜率会改变。(3)三次样条插值方法的运算时间最长,但内存占用交立方插值少,其插值数据和导数都是连续的。三次样条插值结果的平滑性最好,但如果输入数据不一致或数据点过近,就可能出现很差的插值效果x=0:2*pi;y=sin(x);xx=0
43、:0.5:2*pi;yy=interp1(x,y,xx,nearest);ezplot(sin(x),0 2*pi);hold on;plot(xx,yy,r);hold onyy2=interp1(x,y,xx,linear);plot(xx,yy2,y);hold onyy3=interp1(x,y,xx,spline);plot(xx,yy3,g);5.2.2 二维插值当被插值函数 为二元函数时,为二维插值。用interp2Vq=interp2(X,Y,V,Xq,Yq,method):X,Y,V是具有相同大小的矩阵, 是数据点 上的函数值;Xq,Yq为待插值数据网格;method是一字符
44、串变量,表示不用的插值方法。method=nearest:临近点插值。将插值点周围4个数据点中离该插值点最近的数据点函数值作为该插值点的函数值的估计值。method=linear:双线性插值(默认)。将插值点周围4个数据点的函数值的线性组合作为插值点的函数值的估计值。method=spline:三次样条插值。该方法计算效率高,得到的曲面光滑,( )yf x( , )V i j, ( , )X i jY i jmethod=cubic:双立方插值。利用周围的16个数据点,相对于nearest和linear方法。需要消耗较多的内存和计算时间,故而计算效率不高,当得到的曲面更光滑X,Y=meshgr
45、id(-3:0.25:3);Z=peaks(X,Y); %计算已知点的函数值X1,Y1=meshgrid(-3:0.125:3); %产生更精密的插值点Z1=interp2(X,Y,Z,X1,Y1);mesh(X,Y,Z);hold on;mesh(X1,Y1,Z1+20);axis(-3 3 -3 3 -5 25);5.3 函数的极限limit(expr,x,a):当 时,对函数expr求极限limit(expr):默认当 时,对函数expr求极限limit(expt,x,a,left):当 时,对函数expr求左极限Limit(expr,x,aright):当 时,对函数expr求右极限例:对数列 ,当n趋于无穷大时,求其极限。n=1:200;y=n./(3*n+1);figure;plot(n,y);syms x;f=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省2026届初三第十一模(最后一卷)生物试题含解析
- 2026年湖南省长沙市雅礼教育集团下学期初三期中生物试题试卷含解析
- 粉色卡通风妊娠期口腔保健
- 辽宁省锦州市滨海期实验校2025-2026学年初三月考(一)化学试题含解析
- 2026年痕量气体探测PPM级精度实现方法
- 2026年八层立体鸡笼自动喂料传送带系统设计
- 2026年生活照护类20项服务项目内涵详解
- 2026届天津市红桥区高三下学期一模英语试题(含解析)
- 2025年临床执业《外科护理》真题试卷
- 乐器制造企业技术发展部主任的技术创新规划与实施
- 防欺凌家校联动共育
- 实验室计量器器具校准操作规程
- 土工布铺设工程监理实施细则
- 汽车贴膜类招商加盟计划书
- DL∕T 547-2020 电力系统光纤通信运行管理规程
- JCT2166-2013 夹层玻璃用聚乙烯醇缩丁醛(PVB)胶片
- 建筑材料说课公开课一等奖市赛课获奖课件
- 充电桩合作框架协议
- 新一代大学英语提高篇视听说教程2答案
- 再生水厂退水管线出水口及钢模围堰施工方案
- 二十世纪西方文论课件
评论
0/150
提交评论