matlab实例讲解及基础知识必备

上传人:鲁** 文档编号:570627614 上传时间:2024-08-05 格式:PPT 页数:110 大小:1.48MB
返回 下载 相关 举报
matlab实例讲解及基础知识必备_第1页
第1页 / 共110页
matlab实例讲解及基础知识必备_第2页
第2页 / 共110页
matlab实例讲解及基础知识必备_第3页
第3页 / 共110页
matlab实例讲解及基础知识必备_第4页
第4页 / 共110页
matlab实例讲解及基础知识必备_第5页
第5页 / 共110页
点击查看更多>>
资源描述

《matlab实例讲解及基础知识必备》由会员分享,可在线阅读,更多相关《matlab实例讲解及基础知识必备(110页珍藏版)》请在金锄头文库上搜索。

1、matlabmatlab实例讲解及基础知实例讲解及基础知识必备识必备第二节第二节 简单的数学运算简单的数学运算第三节第三节 MATLAB数值计算基础数值计算基础第四节第四节 MATLAB数值分析与数值分析与多项式计算多项式计算第一节第一节 变量命名与保存变量命名与保存1.1 变量及其赋值1.1.1变量3. MATLAB严格区分大小写字母,因此,A和a是不同的变量。变量由变量名表示,变量的命名应遵循如下规则: 1变量名必须以字母开头;由字母、数字和下划线混合组成;不允许使用空格、标点符号; 2变量名的字符长度不应超过31个(对于6.x版本); 4关键字(如 if,while 等)不能作为变量名。

2、 Sin是变量名,而sin是正弦函数名3 eps 容差变量,定义为1.0到最近浮点数的距离,在 pc机上= 2-52 pi 圆周率的近似值3.1415926 inf或Inf 表示正无穷大,定义为1/0 NaN 非数,它产生于0 ,0/0,/ 等运算 i,j 虚数单位 ans 对于未赋值运算结果,自动赋给ans永久变量如果用户给永久变量赋值,原始默认值丢失,直至清除变量或重启Matlab41.1.2、 MATLAB 的语句 1.百分号(注释符)% 与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,增加程序的可读性,需要在MATLAB文件中加入注释。注释行必须以%号开始,执行文件时,%号后

3、面的语句不予执行。2.逗号和分号 在赋值语句中,逗号(空格)用在同一行中各元素之间,分号用在行与行之间。多条语句放在一行,用逗号分开表示要求显示结果,由分号分开表示不要求显示结果。53.续行标志() 当一条语句或矩阵太长,一行不能显示时,可用续行标志 ,另起一行继续完成该条语句的书写。4.中断键 在命令的执行过程中,可以随时按下CTRLC键中断MATLAB的运行。61.1.3 矩阵及其元素的赋值 矩阵是 MATLAB 进行数据处理的基本单元,MATLAB 的大部分运算都是在矩阵的意义上进行的。 MATLAB中的变量或常量都代表矩阵,标量应看作是11阶的矩阵。 矩阵运算也是 MATLAB 最重要

4、的运算。矩阵的创建可以通过以下几种形式:(1)直接列出元素;(2)通过语句和函数产生;(3)从外部文件装入;(4)在M中文件建立。71、直接输入矩阵:例如输入语句a=1 2 3;4 5 6;7 8 9a= 1 2 3 4 5 6 7 8 9显示的结果为:创建矩阵的基本原则:1.矩阵的所有元素必须放在方括号“ ”内;2.矩阵元素之间必须用逗号“,”或空格隔开;3.矩阵行与行之间用分号“;”或回车符隔开;4.矩阵元素可以是 数字 或 表达式。8 eye(n) 单位矩阵, nn阶的方阵 zeros(m,n) 元素全为零的mn阶矩阵 ones(m,n) 元素全为 1 的mn矩阵 rand(m,n) 元

5、素为在0,1上均匀分布的mn随机矩阵 randn(m,n) 元素为正态分布的mn随机矩阵 magic(n) 魔方矩阵,其特点是元素由1到n2的自然数组成,每行、每列及两对角线上的元素之和均等于(n3+n)/2几种特殊矩阵的产生2、由函数创建矩阵:93、从外部数据文件调入矩阵:例如:目录C:Program FilesMATLABR2007bworkmatlab_training下有生物医学信号的文本文件bio_signal.txt,在命令窗口输入:loadload(C:Program FilesMATLABR2007bworkmatlab_trainingbio_signal.txt)从磁盘读入

6、.mat文件,或读入排列成矩阵的.txt文件10importdata例如:目录C:Program FilesMATLABR2006aworktemp下有生物医学信号的文本文件bio_signal.txt,在命令窗口输入: importdata(C:Program FilesMATLABR2006aworktempbio_signal.txt);其他方法fopen, fread, textscan, fscan, fclose从文件中读入数据,能自动分析文件的格式。应用广泛11数据存储 save save filename a b c 把a、b、c三个变量保存在文件名为filename.mat的

7、文件中。save filename 把全部内存变量保存为filename.mat文件。save filename a b c append 把a、b、c三个变量添加到文件名为myfile.mat的文件中。12clear; %删除工作空间内的所有变量N=1000; x=rand(1,N); %产生一个随机向量y=5; % save rand_data x y; % 把x y存入文件rand_data.mat中save rand_data_txt.txt x -ascii clear %删除工作空间内的所有变量 load(rand_data.mat); % 把文件rand_data.mat中的变量

8、载入工作空间示例13第二节第二节 简单的数学运算简单的数学运算一、常用的数学运算符一、常用的数学运算符二、二、Matlab 语言规则语言规则三、常用操作命令和键盘技巧三、常用操作命令和键盘技巧四、常量和变量四、常量和变量五、函数五、函数一、常用的数学运算符一、常用的数学运算符1 1、Matlab 的数学运算定义在复数域上。的数学运算定义在复数域上。4+5j+2ians = 4.0000 + 7.0000i复数的输入:复数的输入:z1=3+4*iz2=5-6*j复数单位:复数单位:u + 加法加法u - 减法减法u * 乘法乘法 u / 右除右除 u 乘方(幂运算)乘方(幂运算)一个数在一个数在

9、matlab中被看成中被看成1111矩阵矩阵对标量而言,这二者的作用没对标量而言,这二者的作用没有区别;但对矩阵来说,有区别;但对矩阵来说,“左左除除”和和“右除右除”将产生不同的将产生不同的结果。结果。u 左除左除 在运算式中,在运算式中,MATLAB通常不需要考虑空格。通常不需要考虑空格。2 2、Matlab 的数学运算符是定义在矩阵上的。的数学运算符是定义在矩阵上的。3+ 43+4与复数相关的一些函数与复数相关的一些函数上机练习上机练习求复数求复数Z的实部、虚部、模和相角。的实部、虚部、模和相角。Example1-2上机练习上机练习(x-0.98)20.3*piExample1-1二、二

10、、Matlab 语言规则语言规则 q Matlab 区分大小写区分大小写,命令和函数全是小写命令和函数全是小写q 一行可以输入几个命令,用分号一行可以输入几个命令,用分号“;” 或逗号或逗号“,”隔开。隔开。若命令后无标点符号,则显示命令的结果;若命令后为分号,若命令后无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果。则禁止显示结果。q 续行符:续行符: “”(三个点),如果语句很长,可用续行(三个点),如果语句很长,可用续行符将一个语句写成多行。符将一个语句写成多行。续行符前要留一个空格。续行符前要留一个空格。q 注释符:注释符: “%”,其后面的内容为注释,对,其后面的内容为注

11、释,对 Matlab 的计的计算不产生任何影响算不产生任何影响 q :冒号:冒号 :在数组中应用较多。:在数组中应用较多。q ()() :指定运算优先级。:指定运算优先级。q :用于构成单元数组:用于构成单元数组三、常用操作命令和键盘技巧三、常用操作命令和键盘技巧qctrl+P:调用上一行:调用上一行 qctrl+n:调用下一行:调用下一行 qctrl+b:光标左移一个字符:光标左移一个字符 qctrl+f:光标右移一个字符:光标右移一个字符 qctrl+ :光标左移一个单词:光标左移一个单词qctrl+ :光标右移一个单词:光标右移一个单词qctrl+a:home 光标置于当前行开头光标置于

12、当前行开头qctrl+e:end 光标置于当前行结尾光标置于当前行结尾qctrl+u:Esc 清除当前输入行清除当前输入行qBackSpace退格键:删除光标前字符退格键:删除光标前字符qctrl+k:删除到行尾:删除到行尾qctrl+c:中断正在执行的命令:中断正在执行的命令四、四、 常量和变量常量和变量1 1、常量、常量 常量:已经被预定了某个特定值的特定的变量。常量:已经被预定了某个特定值的特定的变量。 常量可任意调用。常量可任意调用。 ans用于结果的缺省变量名用于结果的缺省变量名 pi圆周率圆周率 i或或j表示虚数单位表示虚数单位 beep使计算机发出使计算机发出“嘟嘟嘟嘟”声声 e

13、ps浮点数相对误差浮点数相对误差 inf无穷大数无穷大数,如如1/0 NaN 不定量不定量,如如0/0 example1i=1i = 1u Matlab 并不要求对所使用的变量进行事先声明,并不要求对所使用的变量进行事先声明,也不需要指定变量类型,也不需要指定变量类型,Matlab会自动根据所赋予变会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。量的值或对变量所进行的操作来确定变量的类型。2、变量:、变量:u 变量是任何程序设计语言的变量是任何程序设计语言的基本元素基本元素之一。之一。u 在赋值过程中,如果变量已经存在,在赋值过程中,如果变量已经存在,Matlab会用会用新值新值

14、代替代替旧值旧值,并以,并以新的变量类型新的变量类型代替代替旧的变量类旧的变量类型型。u 赋值:赋值: 变量变量=表达式(或数)表达式(或数)MATLAB变量的命名规则:变量的命名规则:(2 2)变量名区分大小写;)变量名区分大小写;(3 3)变量名长度)变量名长度不超过不超过3131位位;6464(1 1)变量名必须以字母打头,之后可以是任意字母、)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号和空格。数字或下划线,变量名中不允许使用标点符号和空格。(4 4)不能含中文(包括文件名)不能含中文(包括文件名) ;例:例: 6x、yr、o p为非法变量。为非法

15、变量。 ui_y、y9oi都是合法变量。都是合法变量。五、五、函数函数1 1、标量函数:、标量函数: 三角、指数、对数、取整(三角、指数、对数、取整(fix)等基本函数)等基本函数作用于标量或矩阵作用于标量或矩阵( (数组数组) )的每一元素的每一元素 要想得到基本要想得到基本初等函数初等函数的列表,命令窗口输入:的列表,命令窗口输入: help elfun elementary function常用常用标量函数标量函数2、向量函数:、向量函数:max, min, sum, length, 作用于矩阵的作用于矩阵的每一列向量每一列向量(或行向量或行向量)3、矩阵函数、矩阵函数构造矩阵构造矩阵z

16、eros, ones, eye, rand, diag, triu, tril, 矩阵计算矩阵计算size, det, rank, inv, eig, trace, norm, 第二节第二节 MATLAB数值计算基础数值计算基础一、矩阵的构造一、矩阵的构造三、矩阵的四则运算三、矩阵的四则运算二、对矩阵的操作二、对矩阵的操作四、矩阵的特征参数运算和分解运算四、矩阵的特征参数运算和分解运算五、矩阵元素之间的关系运算五、矩阵元素之间的关系运算六、矩阵元素之间的逻辑运算六、矩阵元素之间的逻辑运算一、矩阵的构造一、矩阵的构造1 1、向量的构造、向量的构造(1)逐个输入法:)逐个输入法:x= 行向量:行向

17、量:数据元素之间均用空格(或逗号)隔开;数据元素之间均用空格(或逗号)隔开;列向量列向量:数据元素之间均用分号隔开:数据元素之间均用分号隔开例例:x1=2 3 sqrt(3) 5 向量是向量是1N( N1 )的特殊矩阵,称为)的特殊矩阵,称为N维向量。维向量。是一种特殊的矩阵是一种特殊的矩阵注:行向量和列向量之间的转换注:行向量和列向量之间的转换“ ”例例:x2=2;3;sqrt(3);5 (a)冒号生成法:冒号生成法:x=first:increment:last,表示包含,表示包含由由首元素首元素开始,步长为开始,步长为increment,到,到末元素末元素结束的组成的行向量。结束的组成的行

18、向量。(2)等差元素向量的生成)等差元素向量的生成 v2=0:-0.1:pi %步距为负,不能生成向量,得出空矩阵步距为负,不能生成向量,得出空矩阵v2 = Empty matrix: 1-by-0 v3=0:piv3 = 0 1 2 3 v4=pi:-1:0 逆序排列构成新向量逆序排列构成新向量v4 = 3.1416 2.1416 1.1416 0.1416例例: v1=0:pi/4:pi v1 = 0 0.7854 1.5708 2.3562 3.1416 (b)函数法:函数法: a=linspase ( first,last ,n), 创建均匀间隔的创建均匀间隔的行向量行向量a,n为元素

19、总数为元素总数。 a=linspace(-2,2,5)a = -2 -1 0 1 2(1)逐个输入法:)逐个输入法:例:表示矩阵例:表示矩阵 B=1+9i 2+8i 3+7j;4+6j 5+5i 6+4i;7+3i 8+2j 1iB = 1.0000 + 9.0000i 2.0000 + 8.0000i 3.0000 + 7.0000i 4.0000 + 6.0000i 5.0000 + 5.0000i 6.0000 + 4.0000i 7.0000 + 3.0000i 8.0000 + 2.0000i 0 + 1.0000i2、矩阵的构造、矩阵的构造B=1+9i,2+8i,3+7j 4+6j

20、,5+5i,6+4i 7+3i,8+2j,1i(2)特殊矩阵的函数生成)特殊矩阵的函数生成一些常用的特殊矩阵一些常用的特殊矩阵单位矩阵单位矩阵:eye(m,n); eye(m)零矩阵零矩阵:zeros(m,n); zeros(m)一矩阵一矩阵:ones(m,n); ones(m)对角矩阵对角矩阵:对角元素向量:对角元素向量 V=a1,a2,an A=diag(V)均匀分布随机矩阵均匀分布随机矩阵:rand(m,n)产生一个产生一个mn的均匀的均匀 分部的随机矩阵分部的随机矩阵 练习:练习:example2二、对矩阵的操作二、对矩阵的操作 1、对矩阵元素的操作:、对矩阵元素的操作:基本语句格式基

21、本语句格式 B=A(n,m) n,m分别为矩阵的行号和列号分别为矩阵的行号和列号(1)提取矩阵)提取矩阵A的的第第n行第行第m列的元素,列的元素, b =A(n,m)(2)提取矩阵)提取矩阵A的第的第n行的所有元素,行的所有元素, b =A(n,:)(3)提取矩阵)提取矩阵A的第的第m列的所有元素,列的所有元素, b= A(:,m)(4)将矩阵)将矩阵A的第的第n行的所有元素删除,行的所有元素删除,A(n,:)= (5)将矩阵)将矩阵A的第的第m列的所有元素删除,列的所有元素删除,A(:,m)= (6)将矩阵)将矩阵A的矩阵元改写成的矩阵元改写成n行行m列矩阵,列矩阵,Reshape(A,n,

22、m)example5对矩阵元素的操作对矩阵元素的操作(7)x(:) x (:,:)(8)取矩阵取矩阵A的第的第i1i2行、第行、第j1j2列构成新矩阵:列构成新矩阵: A(i1:i2,j1:j2)。(9)将矩阵将矩阵A和和B拼接成新矩阵:拼接成新矩阵:A B;A;B v5=0:0.4:pi,piv5 = 0 0.4000 0.8000 1.2000 1.6000 2.0000 2.4000 2.8000 3.1416n=x(2:3,3:4)例:例: A=1,2,3,4;3,4,5,6;5,6,7,8;7,8,9,0A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B1=A

23、(1:2:end,:) 提取全部奇数行、所有列。提取全部奇数行、所有列。B1 = 1 2 3 4 5 6 7 8A(行,列) B2=A(3,2,1,2,3,4) 提取提取3,2,1行、行、2,3,4列构成子列构成子矩阵。矩阵。 A = 1 2 3 4 3 4 5 6 5 6 7 8 7 8 9 0 B2 = 6 7 8 4 5 6 2 3 4 B3=A(:,end:-1:1) 将将A矩阵左右翻转,即最后一列排在最前矩阵左右翻转,即最后一列排在最前面。面。 B3 = 4 3 2 1 6 5 4 3 8 7 6 5 0 9 8 7%练习1a=magic(5)b=a(3,4) %提取矩阵a的第n行第

24、m列的元素c=a(3,:) %提取矩阵a的第3行的所有元素d=a(:,4) %提取矩阵a的第4列的所有元素a(2,:)= %将矩阵a的第2行的所有元素删除a(:,2)= %将矩阵a的第2列的所有元素删除%练习2a=magic(5)a(:,:)a(:)m=a(1:3,3:5) %取矩阵A的第1-3行、第3-5列构成新矩阵%练习3 矩阵的拼接x=ones(2,3)y=zeros(2,3)z1=x yz2=y xz3=x;yz4=y;x2 2、对矩阵(、对矩阵(A)的部分操作:)的部分操作:函数函数功能功能函数函数功能功能Fliplr(A)矩阵左右翻转矩阵左右翻转Tiag(A,k)取矩阵对角线取矩阵

25、对角线元素元素Flipud(A)矩阵上下翻转矩阵上下翻转Tril(A,k)取矩阵的下三取矩阵的下三角部分角部分Flipdim(A,m)矩阵沿特定矩阵沿特定维(维(m)翻转)翻转Triu(A,k)取矩阵的上三取矩阵的上三角部分角部分Rot(A,k)矩阵逆时针旋转矩阵逆时针旋转k*90度度K可以是正、负整数,但绝对可以是正、负整数,但绝对值一般不大于矩阵的维数。值一般不大于矩阵的维数。example53、判断矩阵的大小、判断矩阵的大小a=1 2 3;3 4 5;m,n=size(a)m = 2n = 3length(a)ans = 3max(size(a)ans = 3m,n=size(A):返回

26、矩阵的行列数:返回矩阵的行列数m与与n。length(A)=max(size(A):返回行数和列数的最大值。:返回行数和列数的最大值。三、矩阵的四则运算三、矩阵的四则运算example31.1.向量的基本运算:向量的基本运算:(1 1)向量与数的四则运算)向量与数的四则运算 向量中的每个元素与数的向量中的每个元素与数的+-*/+-*/运算运算(2 2)向量与向量之间的加减运算)向量与向量之间的加减运算 对应元素的加减运算对应元素的加减运算(3 3)向量的点积与叉积:)向量的点积与叉积: 点积:点积:dot(A,B)=sum(A.*B) 叉积:叉积:cross(A,B) 限三维限三维 混合积:混

27、合积:(1i+2j+3k) (2i+4j+3k) *(5i+2j+1k) v=dot(a,cross(b,c)(1 1)标量与矩阵的数运算和数学函数对矩阵的运算等)标量与矩阵的数运算和数学函数对矩阵的运算等于对矩阵的每一个元素的运算。于对矩阵的每一个元素的运算。 a=1 2 3;b=a+100 b = 101 102 103(2 2)进行矩阵加减时,参与运算的矩阵必须同维。)进行矩阵加减时,参与运算的矩阵必须同维。(3 3)进行矩阵乘法时,)进行矩阵乘法时, A的行数的行数=B列数。列数。 左乘与右乘不同:一般左乘与右乘不同:一般A*B不等于不等于B*A 若若A*B等于等于B*A,则称,则称A

28、,B对易对易(4 4)幂运算)幂运算An2 2、矩阵的基本运算:、矩阵的基本运算:非奇异矩阵:对一个非奇异矩阵:对一个 n 行行 n 列的非零矩阵列的非零矩阵 A,如果,如果存在一个矩阵存在一个矩阵 B ,使使 AB = BA =E( E是单位矩阵),是单位矩阵),则称则称 A 为非奇异矩阵,也称为非奇异矩阵,也称A 是可逆的。是可逆的。AB等效于等效于A的逆左乘的逆左乘B矩阵,即矩阵,即inv(A)*BB/A等效于等效于A的逆右乘的逆右乘B矩阵,即矩阵,即B * inv(A)左除左除与与右除右除不同:不同: AB B/A(5) Matlab矩阵除法矩阵除法 左除左除 / 右除右除如果如果A矩

29、阵为非奇异矩阵(可逆),则矩阵为非奇异矩阵(可逆),则AB和和B/A运运算可以实现算可以实现进行矩阵除法时,进行矩阵除法时,A/B时,时,A、B列数必须相同。列数必须相同。 AB时,时,A、B行数必须相同。行数必须相同。练习练习: :已知已知A=1 3 5;2 4 6;7 8 7 B=1 2 3; 2 3 2;3 4 6比较比较A*B和和B*A AB和和B/A A/B和和BA 的区别。的区别。example7练习练习 求解四元线性方程组求解四元线性方程组定义三个矩阵:系数矩阵、未知数矩阵、常数矩阵:定义三个矩阵:系数矩阵、未知数矩阵、常数矩阵: 上述方程可变为求解:上述方程可变为求解:exam

30、ple43 3、Matlab点运算(数组运算)点运算(数组运算) 在在MATLAB中,有一种特殊的运算,因中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所为其运算符是在有关算术运算符前面加点,所以叫以叫点运算点运算。点运算符有:点运算符有:.* ./ . . 两矩阵进行点运算是指它们的两矩阵进行点运算是指它们的对应元素对应元素进行相进行相关运算,要求两矩阵的维参数相同。关运算,要求两矩阵的维参数相同。练习已知A=1 3 5;2 4 6;7 8 7B=1 2 3; 2 3 2;3 4 6比较A*B和A.*B以及A/B和A./B的区别。练习已知x=0:0.5:8按下列函数关系求y序

31、列Y=sinexample71 1、对矩阵(、对矩阵(A)的特征参数运算:)的特征参数运算:(1 1)方阵)方阵A的的行列式值行列式值,可表示为,可表示为 det(A)。(2 2)矩阵)矩阵A的的秩秩,可表示为,可表示为 rank(A)。 向量组的秩:一个向量组的极大线性无关组所含向量个数。向量组的秩:一个向量组的极大线性无关组所含向量个数。 m*n矩阵(行秩,列秩)矩阵(行秩,列秩)(3 3)行列式值不为零的方阵)行列式值不为零的方阵A,求,求逆矩阵逆矩阵A A-1-1可表示为可表示为inv(A)。(4 4)矩阵)矩阵A的的转置矩阵转置矩阵,可表示为,可表示为A。(5 5)矩阵)矩阵A的的特

32、征值特征值: AV=DV V,D=eig(A) 等号左边是函数对等号左边是函数对方阵方阵A的作用后返回的变的作用后返回的变量信息。量信息。V和和D分别为分别为A的特征向量与特征值。的特征向量与特征值。D为特征值对角为特征值对角阵。阵。 函数调用语句函数调用语句 返回变量列表函数名(输入变量列表)返回变量列表函数名(输入变量列表) (6 6)矩阵)矩阵A的的迹:迹:主对角线上所有元素的和。可表示为主对角线上所有元素的和。可表示为 magic(A)。example6四、矩阵的特征参数运算和分解运算四、矩阵的特征参数运算和分解运算2 2、对矩阵(、对矩阵(A)的分解运算:)的分解运算:(1 1)特征

33、值分解特征值分解: AV=DVV,D=eig(A)等号左边是函数对等号左边是函数对方阵方阵A的作用后返回的变量的作用后返回的变量信息。信息。V和和D分别为分别为A的特征向量与特征值。的特征向量与特征值。D为特征值对角阵。为特征值对角阵。(2 2)奇异值分解奇异值分解: U,S,V=svd(A) AV=qU A U =qV U、V为奇异向量,为奇异向量,S为为A奇异值。奇异值。 返回一个与返回一个与A同大小的对角矩阵同大小的对角矩阵S,两个矩阵,两个矩阵U和和V,且满足,且满足 A= U*S*V。若。若A A为为mn阵,则阵,则U为为mm阵,阵,V为为nn阵。奇异阵。奇异值在值在S的对角线上,非

34、负且按降序排列。的对角线上,非负且按降序排列。(3 3)三角分解三角分解(lu): L,U=lu(A) 非奇异矩阵非奇异矩阵A ,A=LU, U:上三角矩阵上三角矩阵 L:下三角矩阵下三角矩阵(4 4)正交分解正交分解(qr) : Q,R=qr(a) 非奇异矩阵非奇异矩阵A ,A=QR,Q为正交矩阵,为正交矩阵,R为上三角阵。为上三角阵。 注意,注意,MATLAB的函数发生作用后返回的变量信息这种形式,的函数发生作用后返回的变量信息这种形式,特别注意中、小括号的使用。特别注意中、小括号的使用。1 1、MATLAB提供了提供了6 6种关系运算符:种关系运算符: 2 2、关系运算符的运算法则、关系

35、运算符的运算法则(1 1)当)当两个两个比较量是比较量是标量标量时,直接比较两数大小,若关系成立,关系时,直接比较两数大小,若关系成立,关系表达式结果为表达式结果为1 1,否则为,否则为0 0。(2 2)当参与比较的两个量是)当参与比较的两个量是两个维数相同的矩阵两个维数相同的矩阵时,比较是对两矩阵时,比较是对两矩阵对应位置的元素按标量关系运算规则逐个进行,并给出元素比较结对应位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个与原矩阵维数相同的矩阵,元素果。最终的关系运算的结果是一个与原矩阵维数相同的矩阵,元素由由0 0或或1 1组成。组成。(3 3)当参与比

36、较的一个是标量,而另一个是矩阵时,则把)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵标量与矩阵的每一个元素按标量关系运算规则逐个比较的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由由0 0或或1 1组成。组成。五、矩阵五、矩阵元素之间元素之间的关系运算的关系运算example8表表1 关系操作符关系操作符指令指令含义含义指令指令含义含义大于大于=大于等于大于等于=等于等于=不等于不等于 A =1 2 3;4 5 6;7 8 0A =

37、 1 2 3 4 5 6 7 8 0 find(A=5)ans = 3 5 6 8find() i,j=find(A=5);i,j 显示行标,列标显示行标,列标ans = 3 1 2 2 3 2 2 3rem(x,n):):求余函数。求余函数。X:被除数;被除数;n:除数除数magic(n):):生成生成n阶魔术矩阵。方阵的每一行阶魔术矩阵。方阵的每一行每一列以及每条主对角线的元素之和都相同(每一列以及每条主对角线的元素之和都相同(2 2阶方阵除外)。阶方阵除外)。 A=magic(4)B=(rem(A,3);C=(rem(A,3)=1);example7+fix:向零方向取整Example8

38、-六、矩阵六、矩阵元素之间元素之间的逻辑运算的逻辑运算1、MATLAB提供了提供了3种关系运算符:种关系运算符:2、逻辑运算的运算法则为:、逻辑运算的运算法则为:(1)在逻辑运算中,确认非零元素为真,用)在逻辑运算中,确认非零元素为真,用1表示;表示;0元素为假,元素为假,用用0表示。表示。(2)设参与逻辑运算的是两个标量)设参与逻辑运算的是两个标量a和和b,那么,那么,a&b a,b全为非零时运算结果为全为非零时运算结果为1,否则为,否则为0。a|b a,b中只要有一个非中只要有一个非0,运算结果为,运算结果为1。a 当当a是是0时,运算结果为时,运算结果为1;当;当a非非0时,运算结果为时

39、,运算结果为0。example8表表2 逻辑运算符逻辑运算符指令指令含义含义指令指令含义含义&逻辑逻辑 and|逻辑逻辑 or逻辑逻辑 notq 相关函数:相关函数:若若 x 为矩阵,则为矩阵,则 any 和和 all 按列运算按列运算,返回一个,返回一个0-1向量向量any(x):若若向量向量 x 中中存在非零元素存在非零元素,则返回,则返回 1,否则返回,否则返回 0all(x): 若若向量向量 x 中中所有元素非零所有元素非零,则返回,则返回 1,否则返回,否则返回 0表表3 逻辑关系函数逻辑关系函数指令指令含义含义指令指令含义含义xor不相同取不相同取1,否则取,否则取0any只要有非

40、只要有非0就取就取1,否则取,否则取0all全为全为1取取1,否则为,否则为0isempty矩阵为空取矩阵为空取1,否则取,否则取0xor(x):异或函数异或函数 A =1 2 3;4 5 6;7 8 0A = 1 2 3 4 5 6 7 8 0 all(A=5) 某列元素全大于或等某列元素全大于或等于于5时,相应元素为时,相应元素为1,否则为,否则为0。ans = 0 0 0 any(A=5) 某列元素中含有大于某列元素中含有大于或等于或等于5时,相应元素为时,相应元素为1,否则为,否则为0。ans = 1 1 1 a=1 2 3;0 5 6;7 8 0a = 1 2 3 0 5 6 7 8

41、 0 b=ones(3)b = 1 1 1 1 1 1 1 1 1 xor(a,b)ans = 0 0 0 1 0 0 0 0 1七、矩阵的多维数组形式七、矩阵的多维数组形式1 1、数组的维、数组的维(1 1)具有)具有n个元素的一行或一列的矩阵数组称为一维数组。个元素的一行或一列的矩阵数组称为一维数组。(2 2)具有)具有n行行m列的矩阵数组称为列的矩阵数组称为nm二维数组。二维数组。(3 3)具有)具有h个二维数组称为个二维数组称为nmh三维数组。三维数组。2 2、多维数组的构成、多维数组的构成(1 1)函数)函数cat的使用。的使用。(2 2)B=cat(dim,a1,a2.)(3 3)

42、意义:将多个数组)意义:将多个数组a1,a2构成一个高维数组构成一个高维数组B。Dim是高维数组是高维数组B B的维数,它必须等于或大于的维数,它必须等于或大于a1,a2的阶次的阶次example9第三节第三节 MATLAB数据分析与数据分析与多项式计算多项式计算一、 Matlab多项式表示多项式表示q 在在Matlab中,中,n次多项式是用一个长度为次多项式是用一个长度为n+1的向量来的向量来表示,缺少的幂次项系数为表示,缺少的幂次项系数为0。在在Matlab中表示为相应的向量:中表示为相应的向量:1N的的N维向量。维向量。例:例:注:系数中的零不能省!注:系数中的零不能省!二、多项式的创建

43、二、多项式的创建(1 1)系数矢量系数矢量直接输入法直接输入法 poly2sym(A)example10P=3 5 0 1 0 12 P= 3 5 0 1 0 12y=poly2sym(P) %(poly2sym函数将函数将该向量转换为多项式该向量转换为多项式)y=3*x5+5*x4+x2+12disp(y) %显示矩阵或文本显示矩阵或文本3*x5+5*x4+x2+12(2 2)由)由根矢量根矢量创建多项式:创建多项式: 若已知多项式的全部根,若已知多项式的全部根,则可以用则可以用poly函数建立起函数建立起该多项式,其调用格式为:该多项式,其调用格式为: P=poly(A) P=1 2 3

44、4;y=poly(P)y = 1 -10 35 -50 24 h=poly2sym(y) h = x4-10*x3+35*x2-50*x+24如果如果A A为二维或以上的矩阵,为二维或以上的矩阵,poly(A)表示由表示由A的特征根的特征根确定的多项式。如果确定的多项式。如果A A为一维矩阵,为一维矩阵,poly(A)表示由表示由A的的元素为多项式的根创建多项式。元素为多项式的根创建多项式。 a=1 2;3 4; b=poly(a)b= 1.0000 -5.0000 -2.0000 V,D=eig(a) V = -0.8246 -0.4160 0.5658 -0.9094D = -0.3723

45、 0 0 5.3723Y= polyval(b,D)Y = 0 -2.0000 -2.0000 0(1 1)polyval函数:函数:调用格式调用格式:Y= polyval(px,x) px为多项式系数向量,为多项式系数向量,x为多项式自变量取值,为多项式自变量取值,Y为对应为对应函数值。多项式函数值。多项式px在在x点的取值,点的取值,x也可以是一组数,代也可以是一组数,代表多项式表多项式px在各点的值。在各点的值。(2 2) polyvalm函数函数调用格式:调用格式: Y= polyvalm(px,x)多项式多项式px对于矩阵对于矩阵x的取值,要求矩阵的取值,要求矩阵x必须是方阵,必须是

46、方阵,x若若是一标量,求得的值与函数是一标量,求得的值与函数polyval相同。相同。三、多项式的求值三、多项式的求值polynomial valueexample11example13-y = x3+2*x2+3*x+4四、多项式运算的函数四、多项式运算的函数(1 1)多项式求根:)多项式求根: roots(A)-列向量列向量 n次多项式具有次多项式具有n个根,当然这些根可能是实根,个根,当然这些根可能是实根,也可能含有若干对共轭复根。也可能含有若干对共轭复根。MATLAB提供的提供的roots函数用于求多项式的全部根,其调用格式为:函数用于求多项式的全部根,其调用格式为:x=roots(A

47、) 其中其中A为多项式的系数向量,求得的根赋给向为多项式的系数向量,求得的根赋给向量量x,即,即x(1),x(2),x(n)分别代表多项式的分别代表多项式的n个根。个根。example12(2 2)多项式四则运算多项式四则运算 多项式加减运算:多项式加减运算:Matlab没有提供专门进行多项式没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。应的系数向量的加减运算。例例 对于次数相同的多项式,可以直接对其系数向量对于次数相同的多项式,可以直接对其系数向量进行加减运算;进行加减运算; 如果两个多项式次数不同,

48、则应该把低次多项式如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用中系数不足的高次项用0补足,然后进行加减运算。补足,然后进行加减运算。多项式乘除法运算多项式乘除法运算例:计算多项式例:计算多项式 和和 的乘积的乘积 p=2,-1,0,3; q=2,1; k=conv(p,q); 多项式除法运算:多项式除法运算: k=deconv(p,q)k,r=deconv(p,q)其中其中 k 返回的是多项式返回的是多项式 p 除以除以 q 的商,的商,r 是余式。是余式。k,r=deconv(p,q)p=conv(q,k)+r 多项式乘法运算:多项式乘法运算: k=conv(p,q)dec

49、onv是是conv的逆函数,即有的逆函数,即有P=conv(k,q)+r。例:求多项式例:求多项式 和和 的乘积。的乘积。 练习:多项式乘法:练习:多项式乘法:conv(a,b) 除法:除法:deconv(a,b)练习:多项式除法:函数练习:多项式除法:函数Q,r=deconv(P1,P2)用于对多用于对多项式项式P1和和P2作除法运算。其中作除法运算。其中Q返回多项式返回多项式P1除以除以P2的的商式,商式,r返回返回P1除以除以P2的余式。这里,的余式。这里,Q和和r仍是多项式仍是多项式系数向量。系数向量。 deconv是是conv的逆函数,即有的逆函数,即有P1=conv(P2,Q)+r

50、。计算计算x/yexample13-(2 2)多项式的微积分多项式的微积分对多项式求微分的函数是:对多项式求微分的函数是: p=polyder(P)p=3x2+4xP=x3+2x2+1P=1 2 0 1 p=polyder(P)P= 3 4 0example12例:求多项式例:求多项式 的微分和积分。的微分和积分。 练习:多项式的微分:练习:多项式的微分:polyder(A) 积分:积分:polyint(A)p=polyder(P,Q):求:求PQ的导函数的导函数p,q=polyder(P,Q):求:求P/Q的导函数,导函数的分的导函数,导函数的分子存入子存入p,分母存入,分母存入q。上述函数

51、中,参数上述函数中,参数P,Q是多项式的向量表示,结果是多项式的向量表示,结果p,q也是多项式的向量表示。也是多项式的向量表示。 P=1 2 0 1P = 1 2 0 1 poly2sym(P) ans = x3+2*x2+1 Q=3 0 1Q = 3 0 1 poly2sym(Q) ans = 3*x2+1 M=conv(P,Q)M = 3 6 1 5 0 1 poly2sym(M)ans = 3*x5+6*x4+x3+5*x2+1 p=polyder(P,Q)p = 15 24 3 10 0 p2=polyder(M)p2 = 15 24 3 10 0 曲线拟合是进行数据分析时经常遇到的问

52、题,它是指曲线拟合是进行数据分析时经常遇到的问题,它是指根据一组或多组测量数据找出数学上可以描述此数据走向根据一组或多组测量数据找出数学上可以描述此数据走向的一条曲线的过程。的一条曲线的过程。 曲线拟合曲线拟合:利用两个或多个变量的离散点,用平滑曲:利用两个或多个变量的离散点,用平滑曲线来拟合它们之间的关系。线来拟合它们之间的关系。参数拟合参数拟合:曲线不通过所有点,采用最小二乘法。:曲线不通过所有点,采用最小二乘法。非参数拟合非参数拟合:曲线通过所有点,采用插值法。:曲线通过所有点,采用插值法。5 5、多项式曲线拟合、多项式曲线拟合1 1)最小二乘法)最小二乘法:通过最小化残差的平方和来获得

53、待定系数:通过最小化残差的平方和来获得待定系数的估计。的估计。 评价一条曲线是否准确地描述了测量数据的最通用方评价一条曲线是否准确地描述了测量数据的最通用方法,是看测量数据点与该曲线上对应点之间的平方误差是法,是看测量数据点与该曲线上对应点之间的平方误差是否达到最小。否达到最小。example132)步骤:步骤: (1)找出函数上的已知点系列。找出函数上的已知点系列。 (2)由已知点系列确定多项式。由已知点系列确定多项式。 (3)再用再用polyval函数按所得的多项式计算所给出的函数按所得的多项式计算所给出的点上的函数近似值。点上的函数近似值。3)polyfit函数来求得最小二乘拟合多项式的

54、系数,即函数来求得最小二乘拟合多项式的系数,即 P=polyfit(x,y,n),p为模拟的多项式,为模拟的多项式,polyfit为调用函数,为调用函数,x和和y为已知点系列,为已知点系列,n是多项式的阶次。(一般是多项式的阶次。(一般n越大越精确)越大越精确)P,S=polyfit(x,y,n) 函数根据采样点函数根据采样点x和采样点函数值和采样点函数值y,产生一个,产生一个n次多项次多项式式P及其在采样点的误差向量及其在采样点的误差向量S。其中。其中X, ,Y是两个等长的向是两个等长的向量,量,P是一个长度为是一个长度为n+1的向量,的向量,P的元素为多项式系数。的元素为多项式系数。例:对

55、数据例:对数据x=0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0和和y=-0.232 0.647 1.877 3.565 5.134 7.443 9.221 10.011 11.678 12.566 13.788 做二次曲线拟合,并图做二次曲线拟合,并图示拟合曲线和原来数据。示拟合曲线和原来数据。 example14例:用三次多项式拟合正弦曲线,并图示拟合曲线和例:用三次多项式拟合正弦曲线,并图示拟合曲线和原来数据。原来数据。6、数据插值数据插值 是指在原数据点之间按照一定的关系插入新的数是指在原数据点之间按照一定的关系插入新的数据点,以便更准确地分析数据的

56、变化规律。据点,以便更准确地分析数据的变化规律。1)一维插值:是对单变量函数进行插值一维插值:是对单变量函数进行插值例如:在例如:在-2,2区间上分别用区间上分别用5个数据点和个数据点和50个数据点个数据点绘制抛物线函数绘制抛物线函数 的图形。的图形。example15(1)线性插值:)线性插值: (默认方法)两个数据点之间连接直线,根据(默认方法)两个数据点之间连接直线,根据给定的插值点计算出它们在直线上的值。给定的插值点计算出它们在直线上的值。调用格式:调用格式: yi=interp1(x,y,xi,linear)(2)三次插值:用于满足三阶多项式的数据之间的插值。)三次插值:用于满足三阶

57、多项式的数据之间的插值。调用格式:调用格式: yi=interp1(x,y,xi,cubic)(3)三次样条插值:用三次样条函数拟合每对数据点。)三次样条插值:用三次样条函数拟合每对数据点。调用格式:调用格式: yi=interp1(x,y,xi,spline) yi=spline(x,y,xi,spline) (4)最邻近插值:将插值点的值设置为已知数据点中距离最近)最邻近插值:将插值点的值设置为已知数据点中距离最近的点的值的点的值调用格式:调用格式: yi=interp1(x,y,xi,nearest)x为自变量取值范围,为自变量取值范围,y为函数矢量,为函数矢量,xi为插值点的自变量矢量

58、。为插值点的自变量矢量。example162)二维插值:对两个变量的函数)二维插值:对两个变量的函数z=f(x,y)进行插值,进行插值,调用格式:调用格式:zi=interp2(x,y,z,xi,yi,method)example17(1)双线性插值:)双线性插值: (默认方法)该方法用双线性曲面拟合数据(默认方法)该方法用双线性曲面拟合数据点,插值点的值是四个最近点的组合。比三次插值快,而且内存点,插值点的值是四个最近点的组合。比三次插值快,而且内存消耗更少。消耗更少。调用格式:调用格式: zi=interp2(x,y,z,xi,yi,linear)(2)双三次插值:用双三次曲面拟合数据点。

59、插值点的值是)双三次插值:用双三次曲面拟合数据点。插值点的值是16个最近点的组合。平滑性较好个最近点的组合。平滑性较好调用格式:调用格式: zi=interp2(x,y,xi, yi,cubic)(3)最邻近插值:)最邻近插值:调用格式:调用格式: zi=interp2(x,y,xi, yi,nearest)X为自变量取值范围,为自变量取值范围,y为函数矢量,为函数矢量,Xi为插值点的自变量矢量。为插值点的自变量矢量。3)多维插值)多维插值4)lagrange插值插值5)newton插值插值example17例:假设某勘测公司要对某山峰的地形进行勘测,例:假设某勘测公司要对某山峰的地形进行勘测

60、,勘测人员将测量的地域用勘测人员将测量的地域用0.4m宽的方格栅分成宽的方格栅分成不同的区域,并在格栅和每个交点处记录下测量不同的区域,并在格栅和每个交点处记录下测量的山峰高度(单位:的山峰高度(单位:km)以便日后分析。)以便日后分析。7.数据分析 利用MATLAB对数据分析时,MATLAB将数据集成为按列存储的数组,一个数组的每一列代表不同的观测量,每一行代表该变量的一次采样或观测值。example18函数功能函数功能max(x)求x各列的最大元素prd(x)求x各列的元素之积min(x)求x各列的最小元素sum(x)求x各列的元素之和median(x)求x各列的中位元素S=cumsum(

61、x)求x各列累计和mean(x)求x各列的平均值P=cumprod(x)求x各列的累计积std(x)求x各列的标准差sort(x)将x各列元素按递增排序a=1 2 3;4 5 6;7 8 9;S=cumsum(a) %累计和S = 1 2 3 5 7 9 12 15 18例:某商场例:某商场4个营业部一年(个营业部一年(12个月)的个月)的销售额如下销售额如下:(单位:万元):(单位:万元)1、求四个营业部的年、求四个营业部的年平均营业额。平均营业额。2、每月四个营业部的、每月四个营业部的营业额。营业额。3、每个营业部月营业、每个营业部月营业额与年平均营业额的额额与年平均营业额的额差。差。4、

62、四个营业部本年的、四个营业部本年的最高营业额和最低营业最高营业额和最低营业额。额。maxsale = 50 51 60 50minsale = 20 20 23 25第四节第四节 矩阵构造及运算矩阵构造及运算一、矩阵(一、矩阵(Matrix)的构造)的构造1.矩阵的建立:矩阵的建立: (1)直接输入法。注意元素间隔和行间隔。)直接输入法。注意元素间隔和行间隔。 (2)冒号法()冒号法(1N)。注意元素的个数问题。)。注意元素的个数问题。 (3)函数法(特殊矩阵)。)函数法(特殊矩阵)。 (4)矩阵的编辑()矩阵的编辑(Array Editor)。)。四、矩阵的数组运算四、矩阵的数组运算 运算中,往往需要在矩阵之间进行对应元素的运算,这就是矩阵的数组运算。矩阵运算与矩阵的数组运算区别主要反映在乘和除两种运算中。1.乘法(1)矩阵运算A*B。(2)矩阵的数组运算A.*B(称为数乘)2.除法(1)矩阵运算A/B或AB。(2)矩阵的数组运算A./B(称为数除)3.幂运算(1)矩阵幂运算An。(2)矩阵的数组幂运算A.n结束结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号