《天津理工大学中环信息学院ppt课件》由会员分享,可在线阅读,更多相关《天津理工大学中环信息学院ppt课件(68页珍藏版)》请在金锄头文库上搜索。
1、天津理工大学中环信息学院ppt课件Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望 第第2 2章章 MATLABMATLAB语言基础语言基础主要内容:主要内容:1 1、数据结构与语句结构、数据结构与语句结构2 2、基本控制流程结构、基本控制流程结构3 3、M-M-函数设计函数设计4 4、图形可视化、图形可视化5 5、数据处理、数据处理2.1 2.1 数据结构与语句结构数据结构与语句结构第第2 2章章1 1、MATLABMATLAB基本操作基本操作MATLABMATLAB工作界面:工作
2、界面:标题栏、标题栏、菜单栏、菜单栏、工具栏、工具栏、命令窗口、命令窗口、工作空间、工作空间、历史命令窗口历史命令窗口等等命令窗口命令窗口 工作空工作空间 历史命令史命令 当前路径当前路径 2 2、编程规范、编程规范 变量命名规则变量命名规则 避免使用无意义的字母组合 Temperature Degree_C/ Degree_F 函数命名规则函数命名规则 模块名_功能名 Key_GetKey() 书写规范书写规范3 3、变量、变量 变量命名规则:变量命名规则: 必须以字母开头; 可以由字母、数字和下划线混合组成; 变量长度应不大于31个; 字母区分大小写。如:如: 1 1、Degree、deg
3、ree 2、12Myvar、_Myvar 正确的变量名如a、a1、a_1.在命名的过程中,避免使用无意义的字母组合。 特殊变量特殊变量尽量避免重新赋值尽量避免重新赋值返回变量名称变量名称功能功能变量名称变量名称功能功能ansans用于结果的缺用于结果的缺省变量值省变量值pipi圆周率圆周率realmaxrealmax最大浮点数值最大浮点数值realminrealmin最小浮点数值最小浮点数值i i虚数单位虚数单位j j虚数单位虚数单位infinf正无穷大正无穷大NaNNaN不定式不定式(0/0,inf/inf(0/0,inf/inf) )epseps机器浮点运算机器浮点运算误差限误差限narg
4、innargin函数的输入变函数的输入变量数目量数目 MATLAB快捷键: 回调上一行命令回调上一行命令 回调下一行命令回调下一行命令 左移一个字符左移一个字符 右移一个字符右移一个字符Delet Delet Backspace Backspace 删除字符删除字符Ctrl+C Ctrl+C 中断中断MATLABMATLAB任务任务 通用命令:helphelp帮助帮助clearclear清除变量清除变量clcclc清屏清屏whatwhat查看当前路径下的查看当前路径下的m m文件文件who, whoswho, whos查看查看workspaceworkspace变量变量load, savelo
5、ad, save储存、读取储存、读取matmat文件文件 数据结构数据结构:在在MATLABMATLAB里共有六种数据类型,每一种里共有六种数据类型,每一种类型可以是一维、二维和多维的。类型可以是一维、二维和多维的。双精度型双精度型数值量常用数值量常用doubledouble(),(), 取值范围(取值范围(-1.7-1.710103083081.7101.710308308)字符串型字符串型单引号扩起来,单引号扩起来,hellohello多维数组多维数组是矩阵的拓展,用是矩阵的拓展,用 括起来。括起来。单元数组单元数组是矩阵的直接扩展,可存储是矩阵的直接扩展,可存储 任意类型的信息任意类型的
6、信息,Ai,j,Ai,j类与对象类与对象如传递函数类,如传递函数类,tf(G)tf(G)符号变量符号变量syms asyms a可用于公式推导可用于公式推导 数据的存储与读取 数据存储:save fname A1 A2.Am其中fname为文件名,自动生成fname.mat的数据文件类型。 数据读取:load fname A1 A2.Am 注意:需要存储的数据A1 A2.Am之间用空格隔开, 不能采用逗号隔开举例说明4、基本语句结构基本语句结构:(1 1)直接赋值语句)直接赋值语句 变量名列表变量名列表= =赋值表达式赋值表达式 等号左边的变量名列表为等号左边的变量名列表为MATLABMATL
7、AB语句的返回值,语句的返回值,若一次返回多个结果,则变量列表用若一次返回多个结果,则变量列表用 括起来,括起来,各变量间用各变量间用逗号逗号分隔;分隔; 等号右边为表达式,可以是矩阵运算或函数调等号右边为表达式,可以是矩阵运算或函数调用,可以由用,可以由分号分号(;)(;)、逗号、逗号(,)(,)或回车或回车结束。结束。注意注意:语句结尾有无分号的显示结果区别是什么。:语句结尾有无分号的显示结果区别是什么。如: var1=2,5,6,7,8,3运行结果:var1= 2 5 6 7 8 3如果不想显示结果,在赋值语句的结尾加一个分号。 var1=2,5,6,7,8,3; 如果省略了赋值变量和等
8、号,则表达式运算的结果将赋值保留变量ans。ans将存放最后一次无赋值变量语句的结果。如: 2,5,6,7,8,3 运行结果:ans= 2 5 6 7 8 3 基本语句结构基本语句结构:(2 2)函数调用语句)函数调用语句 返回变量列表返回变量列表=函数名(输入变量列表)函数名(输入变量列表)一般函数名应对应在一般函数名应对应在MATLABMATLAB路径下的一个文件,路径下的一个文件,如,函数名如,函数名my_funmy_fun应该对应在应该对应在my_fun.mmy_fun.m文件;文件;返回变量列表和输入变量列表可以有若干变量,返回变量列表和输入变量列表可以有若干变量,变量间用变量间用“
9、,”分隔,此外,返回变量还允许用分隔,此外,返回变量还允许用“空格空格”分隔分隔如:如:A_inv=inv(A) A_inv=inv(A) (其中(其中invinv求解逆矩阵)求解逆矩阵) u,s,v=svd(X) ( u,s,v=svd(X) (其中其中svdsvd对矩阵对矩阵X X进行奇进行奇异值分解,异值分解,s s为对角矩阵,为对角矩阵,X=u*s*v)X=u*s*v)5 5、矩阵的、矩阵的MATLABMATLAB表示表示: 矩阵的赋值 矩阵用“ ”扩起来 “分号”表示换行 “,”或“空格”表示同一行元素分隔如:直接输入 A=1 2, 3; 4 5 6;7, 8 9 冒号操作符 a=0
10、:1:10 a=linspace(0,1,10) a=logspace(1,2,10) 下标操作:矩阵下标(按列优先排列)用两个下标来表示。第i行j列的元素用A(i,j)来表示用一个下标来表示。对于矩阵按列操作,可用单下标引用A(i) 。在下标的表达式中使用冒号表示矩阵的一部分。 下标引用从序号1开始。矩阵行列删除B=1 2 3;4 5 6; 7 8 9; B(2,: )=B= 1 2 3 7 8 9选择特定行列B=1 2 3;4 5 6; 7 8 9; B(2,: ) B= 4 5 6 下标操作:例: A= 1 4 7 2 5 8 3 6 9 A(4)+A(8) 矩阵的尺寸:为了判断矩阵的尺
11、寸,Matlab提供了以下函数: m,n=size(A) %返回矩阵的行数m和列数n M=size(A) %在矩阵M中返回矩阵的行数、 列数 len=length(A) %返回矩阵A行数和列数中的 最大值 矩阵表示练习例子:x=0.3,0.4,0.6,1.5,0.8,1.2x(3)x(1 2 5)b=16 2 3 13;5 11 10 8;9 7 6 12;4 14 15 1b(3,4)b(2 4,1 3)b(2,5,8)b(2;5;8) b(b10) size(b)nrow,ncol=size(b) 特殊矩阵:单位矩阵eye(n)%生成n维单位阵eye(m,n) %生成mn的单位阵eye(m
12、,n) %生成mn的单位阵eye(size(A)%生成与A矩阵同样大 小的单位矩阵 特殊矩阵:全全1 1矩阵矩阵 ones(n) ones(m,n) ones(m,n) ones(size(A)ones(n) ones(m,n) ones(m,n) ones(size(A)全零矩阵全零矩阵zeros(n) zeros(m,n) zeros(m,n) zeros(size(A)zeros(n) zeros(m,n) zeros(m,n) zeros(size(A)随机矩阵随机矩阵rand(n) rand(m,n) rand(m,n) rand(size(A)rand(n) rand(m,n) r
13、and(m,n) rand(size(A)生成的随机矩阵的各个元素值在生成的随机矩阵的各个元素值在0 0和和1 1之间。之间。对角阵对角阵 diag(n) diag(n) 对角阵对角阵魔术矩阵魔术矩阵 magic(n)magic(n)魔术矩阵的所有行元素和、列元素和、对角线元素和魔术矩阵的所有行元素和、列元素和、对角线元素和均相等均相等 矩阵的代数运算:转置 B=A(hermit转置,有复数的变共轭复数)加减乘 A+B A-B A*B左除 AB 即AX=B的解X=A-1B右除 A/B 即XB=A的解X=AB-1(B-1A-1)翻转 fliplr(左右翻转)flipud(上下翻转) rot90(
14、逆时针旋转90)乘方 AB(A为方阵)点运算 A.*B A./B A.B A.B A. A.*B表示矩阵A、B的相应元素之间直接进行乘法。注意:点乘运算A、B矩阵的维数相同6 6、矩阵的基本运算、矩阵的基本运算: 矩阵的代数运算练习例:例:a=1 2-1j 3 4;5 6+2j 7 8,a=1 2-1j 3 4;5 6+2j 7 8,b=4 3 1;5 3 2;8 6 3;2 1 6,b=4 3 1;5 3 2;8 6 3;2 1 6,c=1 2 3 4;5 6 7 8c=1 2 3 4;5 6 7 8求 a , a. , a*b , a.*c , a/c , a./c , fliplr(a)
15、 , flipud(b) , rot90(c) 矩阵的逻辑运算:逻辑运算& (与) |(或) (非)结果是一个0-1矩阵。当逻辑表达式的值为真时,赋值1,否则为0 逻辑函数all :当某列的元素都为真时,返回值为1,否则返回0。最终运算结果为一个0-1行向量any :当向量中至少有一个元素为真时,返回值为1,否则返回0。最终运算结果为一个0-1行向量 find:用于查找向量中的真元素的下标,返回由所有真元素下标构成的列向量。 矩阵的比较运算:比较运算在MATLAB里共有六个关系运算符 大于 =大于等于 = 等于 =不等于关系运算符将生成一个0-1矩阵,当运算数相应元素为真时,对应位置上生成1,
16、否则为0。知识点总结:1、全英文状态输入2、文件类型: 数据文件 *.mat M文件*.m 图片文件 *.fig 模型文件*.mdl3、, ; : ( ) 4、点运算 a= 1 2 3 4b= 1 2 3 4a*b= 7 10 15 22 a.*b= 1 4 9 16 t=1 2 3 4; s=2.t s=2 4 8 162.2 2.2 基本控制流程结构基本控制流程结构第第2 2章章1 1、顺序结构、顺序结构最简单的语句结构,逐条执行语句即可。如:a=1 2 3;4 5 6;b=2 5 8;7 2 0;s=a.*b2 2、循环结构、循环结构MATLAB中的循环语句包括for循环和while循环
17、两种类型。 for语句:基本格式为:for 循环变量=起始值:步长:终止值循环体end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定, 对于正数,循环变量的值大于终止值时,循环结束; 对于负数,循环变量的值小于终止值时,循环结束。(循环次数确定) while语句:基本格式为:while while 表达式表达式循环体循环体endend 其表达式是个逻辑表达式,若为真,则执行循环体其表达式是个逻辑表达式,若为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。出循环体,向下继续执行,否
18、则继续执行循环体。break:从循环体中跳出,并使循环结束(循环次数不确定)例:解题过程:1.用for语句表示: s=0;for i=1:100,s=s+i;end,s 或用while语句表示: s=0;i=1;while(i=100) s=s+i;i=i+1;end,s2. i=0;s=0;while(s1000, break; end, end, m3 3、选择结构、选择结构 开关结构开关结构表达式的值和哪种情况的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。注意:无需像C语言那样在下一个case之前加break语句switch 表达式(标量或字符串)cas
19、e 值1语句1case 值2语句2case 值n语句notherwise语句owendend 2.3 2.3 M-M-函数设计函数设计第第2 2章章1 1、MATLABMATLAB程序设计基本原则程序设计基本原则 后面的内容是程序的注解,要善于运用注解使程序更具可读性。 养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。 参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句运行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。 程序尽量模块化,也就是采用主程
20、序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。 充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行) 设置好MATLAB的工作路径,以便程序运行。2 2、MATLABMATLAB程序的基本组成结构程序的基本组成结构 说明 清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱提供的专用命令. . . 控制循环:包含for,if.else,switch,while等语句 逐行执行命令. . . 绘图命令:将运算结果绘制出来3 3、MATLABMATL
21、AB程序类型程序类型对于简单的计算可直接在指令窗口中输入指令,但指令数多的时候,则用源程序文件即M文件设计。M M文件文件: :用用MatlabMatlab语言编写的可以在语言编写的可以在MatlabMatlab环环境中运行的程序称为境中运行的程序称为M M文件。文件。 M M文件以文件以.m.m为扩展名,为扩展名, M M文件分为两种:文件分为两种:M-M-脚本文件(命令文件)脚本文件(命令文件) 和和M M函数文件函数文件 M-M-脚本文件:脚本文件:根据用户要求,使用Matlab语 言组成一定功能的MatlabMatlab指令集合指令集合. .使用方法:在使用方法:在MATLABMATL
22、AB的提示符的提示符下键入该文件名。下键入该文件名。M-M-脚本文件运行后脚本文件运行后, ,所产生的变量驻留在所产生的变量驻留在MatlabMatlab工作空间中工作空间中, ,只要不用只要不用clearclear命令清除命令清除,(,(或关闭或关闭MatlabMatlab窗口窗口) )这些变量会一直保留在这些变量会一直保留在MatlabMatlab工作工作空间中空间中. .适用范围:适用于小规模运算适用范围:适用于小规模运算例例: :下面语句如果以下面语句如果以.m.m为扩展名存盘为扩展名存盘, ,就构成就构成 M M 脚本文件脚本文件M M 脚本文件:脚本文件: num=2*1,2; n
23、um=2*1,2; den=conv(conv(1,0,1,3),1,2,2); den=conv(conv(1,0,1,3),1,2,2); G1=tf(num,den); G1=tf(num,den); G=ss(G1); G=ss(G1); a,b,c,d=ssdata(G); a,b,c,d=ssdata(G); Ab=a-b*c Ab=a-b*c Bb=b Bb=b Cb=c Cb=c Db=0 Db=0 step(Ab,Bb,Cb,Db) step(Ab,Bb,Cb,Db)M M函数文件:函数文件: M M函数文件就是建立一个函数,它可以同函数文件就是建立一个函数,它可以同Matl
24、abMatlab的基本函数一的基本函数一样加以使用。样加以使用。 基本结构:基本结构: function function 返回变量列表返回变量列表=函数名(输入变量列表)函数名(输入变量列表) 注释说明语句段,由注释说明语句段,由% %引导引导 输入、返回变量格式的检测输入、返回变量格式的检测 函数体语句函数体语句注意:注意:函数文件的第一行必须包括函数文件的第一行必须包括“functionfunction”这个这个关键字。关键字。函数文件的文件名必须和函数定义的函数名称函数文件的文件名必须和函数定义的函数名称相同相同, , M M函数文件中所定义的变量是内部变量,函数文件中所定义的变量是内
25、部变量, M M函数函数执行完后这些变量随之消失。执行完后这些变量随之消失。输入参数的定义用小括号(),如果有多个输输入参数的定义用小括号(),如果有多个输入参数则用逗号分隔;输出参数的定义用中括号入参数则用逗号分隔;输出参数的定义用中括号,如果有多个输出参数则用逗号或空格分隔。,如果有多个输出参数则用逗号或空格分隔。 例:例:function y=mean(x) function y=mean(x) %This is a M function file %This is a M function file m=length(x) m=length(x); y=sum(x)/m y=sum(x
26、)/m ; 将上面程序保存:将上面程序保存:mean1.M mean1.M 构造了一个构造了一个M M函数函数文件,该函数可实现对平均数的求取。随时可调文件,该函数可实现对平均数的求取。随时可调用。用。 如:如:r=1r=1:9999; mean(r) mean(r) 运行得到:运行得到: ans= 50 ans= 50(1 1)函数定义行(关键字)函数定义行(关键字functionfunction) functionout1,out2,.=filename(in1,in2,.) functionout1,out2,.=filename(in1,in2,.)输入和输出(返回)的参数个数分别由输
27、入和输出(返回)的参数个数分别由narginnargin和和nargoutnargout两个两个MATLABMATLAB保留的变量来给出。保留的变量来给出。(2 2)第一行帮助行)第一行帮助行, ,即即H1H1行行, ,以(以(% %)开头,作为)开头,作为lookforlookfor指令搜索的行指令搜索的行(3 3)函数体说明及有关注解:以()函数体说明及有关注解:以(% %)开头,用以说明函数的作用)开头,用以说明函数的作用及有关内容及有关内容; ;如果不希望显示某段信息,可在它的前面加空行如果不希望显示某段信息,可在它的前面加空行(4 4)函数体语句:函数体内使用的除返回和输入变量这些在
28、)函数体语句:函数体内使用的除返回和输入变量这些在functionfunction语句中直接引用的变量以外的所有变量都是语句中直接引用的变量以外的所有变量都是局部变量局部变量,即,即在该函数返回之后,这些变量会自动在在该函数返回之后,这些变量会自动在MATLABMATLAB的工作空间中清除掉。的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。将它们设置为全局变量。 2.4 2.4 图形可视化图形可视化第第2 2章章 图形绘制 () 图形标注 图形控制plot(y)plot(x,y)plo
29、t(x1,y1,option1,x2,y2,option2,.)plot控制:控制:功能:在调用函数plot时,可以指定线型,颜 色,和数据点的图标。格式:plot(x,y, color_linestyle_marker)说明:参数color_linestyle_marker 为一个字 符串,由颜色、线型、数据点的图标组成。 线性和颜色字符定义表线性和颜色字符定义表:字符定义字符定义颜色颜色字符定义字符定义颜色颜色y yyellowyellow(黄)(黄)m mmagentamagenta(洋红(洋红c ccyancyan(青)(青)r rredred(红)(红)g ggreengreen(绿
30、)(绿)b bblueblue(兰兰)默默认认w wwhitewhite(白)(白)k kblackblack(黑)(黑)字符定义字符定义线型线型字符定义字符定义线型线型- -实线(默认)实线(默认)-虚线虚线: :点划线点划线-.-.点连线点连线nonenone无线无线 图形绘制 图形标注() 图形控制 text(x,y,字符串)在图形的指定坐标位置在图形的指定坐标位置(x,y)(x,y)处,标示单引号括起来的处,标示单引号括起来的字符串。字符串。 gtext(字符串) 利用鼠标在图形的某一位置标示字符串。利用鼠标在图形的某一位置标示字符串。 title(字符串)在所画图形的最上端显示说明该
31、图形标题的字符串。在所画图形的最上端显示说明该图形标题的字符串。 xlabel(字符串),ylabel(字符串)设置设置x x,y y坐标轴的名称坐标轴的名称 图形绘制 图形标注 图形控制()figure(1);figure(2);figure(n)打开不同的图形窗口,以便绘制不同的图形。grid on; grid off 显示/不显示格栅线hold on; hold off 保存/不保存当前的坐标系axis(xmin xmax ymin ymax)设置坐标轴subplot(m,n,k) 分割图形显示窗口,m:上下分割个数,n:左右分割个数,k:子图编号semilogx;semilogy 绘制
32、以x(或y)轴为对数坐标(以10为底),y轴(或x轴)为线性坐标的半对数坐标图形。绘图一般步骤 准备绘图需要的数据; 指定绘图的窗口或者区域; 调用基本绘图命令; 选择线型、颜色、数据点形状; 坐标轴控制,包括显示范围、刻度线、比例、网格线; 标注控制,包括坐标轴名称、标题、相应文本等。 MATLABMATLAB提供了丰富的绘图功能提供了丰富的绘图功能help graph2dhelp graph2d可得到所有画二维图形的命令可得到所有画二维图形的命令help graph3dhelp graph3d可得到所有画三维图形的命令可得到所有画三维图形的命令例:P26 例2-7 例2-8 例2-92.5
33、 2.5 数据处理数据处理第第2 2章章1 1、矩阵分解、矩阵分解三角分解 特征值分解 L,U=lu(A)L,U=lu(A) % %求矩阵求矩阵A A的的LULU分解分解 X Xinv(A) inv(A) % %求矩阵求矩阵A A的逆矩阵的逆矩阵 d=det(A)d=det(A) % %求矩阵求矩阵A A的行列式的行列式 d deigeig(A A);); V V,DDeigeig(A A);); V V,DDeigeig(A A,nobalancenobalance)2 2、多项式的创建、多项式的创建 直接输入法直接输入法例如:例如: A=1,2;3,4 A=1,2;3,4 poly(A)
34、poly(A) % %创建方阵创建方阵A A的特征多项式的特征多项式A=1 2;3 4;poly(A)A=1 2;3 4;poly(A)得到得到ans=1 -5 -2;ans=1 -5 -2;即即x x2 2-5x-2-5x-2 poly(a) poly(a) % %如果如果a a为向量为向量bbn n b bn-1n-1bb1 1 b b0 0 ,则创建则创建(x-b(x-b0 0 )( x-b )( x-b1 1) ) (x-b (x-bn-1n-1 )(x- b )(x- bn n ) )生生成的多项式的系数向量成的多项式的系数向量b=1 2 3;poly(b)b=1 2 3;poly(
35、b)得到得到ans=1 -6 11 -6;ans=1 -6 11 -6;即即x x3 3-6x-6x2 2+11x-6+11x-6多项式常用函数多项式常用函数 roots()%求多项式的根求多项式的根p=poly(A) %求矩阵的特征多项式求矩阵的特征多项式polyval(p,x) %求当多项式求当多项式p的参数为某个特的参数为某个特定值定值x时的多项式的值,时的多项式的值,p为系数向量,为系数向量,polyvalm(p,A) %和和polyval作用相同,输入参作用相同,输入参数值也可为方阵数值也可为方阵A例:例:w=1 -3 2;roots(w)w=1 -3 2;roots(w)得到得到2
36、 12 1 即即x x2 2-3x+2=0,-3x+2=0,得到得到x=1,x=2x=1,x=2求求x x3 3-6x-6x2 2+11x+6,+11x+6,当当x=1x=1时的解时的解a=1 -6 11 6;polyval(a,1)a=1 -6 11 6;polyval(a,1)卷积和解卷积卷积和解卷积 c=conv(A,B)c=conv(A,B) % %卷积函数卷积函数 ,多项式乘法函数,多项式乘法函数Q,R=deconv (A,B)Q,R=deconv (A,B) % %解卷积函数,多项式除法函数解卷积函数,多项式除法函数导数导数 PdPdpolyder(P)polyder(P) % %
37、求多项式求多项式P P的导数的导数 PmPmpolyder(P1,P2)polyder(P1,P2) % %求多项式求多项式P1P1和多项式和多项式P2P2乘积的导数乘积的导数 Q,D=polyder(P1,P2) Q,D=polyder(P1,P2) % %求多项式求多项式P1P1除以多项式除以多项式P2P2商的导数商的导数多项式拟合 从最小二乘法的意义上,从最小二乘法的意义上,polyfitpolyfit函数将拟合出函数将拟合出所给数据的多项式系数,其调用格式为:所给数据的多项式系数,其调用格式为:p=polyfit(x,y,n)p=polyfit(x,y,n)其中,其中,x x和和y y
38、为已知数据的横坐标和纵坐标向量,为已知数据的横坐标和纵坐标向量,n n为多项式的次数。为多项式的次数。多项式插值 多项式插值是指根据给定的有限个样本点,多项式插值是指根据给定的有限个样本点,产生另外的估计点产生另外的估计点以达到数据更为平滑的效果。以达到数据更为平滑的效果。该技巧在信号处理与图像处理上该技巧在信号处理与图像处理上应用广泛。应用广泛。 所用指令有一维的所用指令有一维的interp1interp1、二维的、二维的interp2interp2、三维的、三维的interp3interp3。这些指令分别有不同的方法(。这些指令分别有不同的方法(methodmethod),设计者可以),设
39、计者可以根据需要选择适当的方法,以满足系统属性的要求。根据需要选择适当的方法,以满足系统属性的要求。Help Help polyfunpolyfun可以得到更详细的内容。可以得到更详细的内容。y=interp1(xs,ys,x,method)y=interp1(xs,ys,x,method) 在有限样本点向量在有限样本点向量xsxs与与ysys中,插值产生向量中,插值产生向量x x和和y y,所用方法,所用方法定义在定义在methodmethod中,有中,有4 4种选择:种选择:nearestnearest:执行速度最快,输出结果为直角转折:执行速度最快,输出结果为直角转折linearline
40、ar:默认值,在样本点上斜率变化很大:默认值,在样本点上斜率变化很大splinespline:最花时间,但输出结果也最平滑:最花时间,但输出结果也最平滑cubiccubic:最占内存,输出结果与:最占内存,输出结果与splinespline差不多差不多数据处理练习题: 如:如:1 1、多项式、多项式x x4 4-12x-12x3 3+0x+0x2 2+25x+116+25x+116求多项式当求多项式当x=5x=5的的值,及多项式值,及多项式=0=0时的根。时的根。P=1 -12 0 25 116P=1 -12 0 25 116;poly2sym(P) poly2sym(P) polyval (
41、P,5) %polyval (P,5) %求此多项式当求此多项式当x=5x=5时的值时的值r=roots(P)%r=roots(P)%求此多项式求此多项式=0=0时的根时的根2 2、a=1 2 3;b=1 2a=1 2 3;b=1 2求求a a与与b b的卷积的卷积c;c;求多项式求多项式c c除以除以多项式多项式a;a;求多项式求多项式a a的导数;求多项式的导数;求多项式a a当当x x为为2 2时的解。时的解。 c=conv(a,b)=1 4 7 6 c=conv(a,b)=1 4 7 6其中,其中,convconv指令可以嵌套使用,如指令可以嵌套使用,如conv(conv(a,b),c
42、)conv(conv(a,b),c) q,r=deconv(c,b) q,r=deconv(c,b)得得q=1 2 3 q=1 2 3 商多项式商多项式 r=0 0 0 r=0 0 0 余多项式余多项式 polyder(a)=2 2 polyval(a,2)=11 polyder(a)=2 2 polyval(a,2)=11数据处理练习题: 如:如:3 3、t=0 0.3 0.8 1.1 1.6 2.3;t=0 0.3 0.8 1.1 1.6 2.3; y=0.5 0.82 1.14 1.25 1.35 1.40; y=0.5 0.82 1.14 1.25 1.35 1.40;求阶数求阶数为为
43、2 2的多项式拟合的多项式拟合,t=0.2,0.5,1.0,1.5,2.0,t=0.2,0.5,1.0,1.5,2.0的插值。的插值。t=0 0.3 0.8 1.1 1.6 2.3;t=0 0.3 0.8 1.1 1.6 2.3; y=0.5 0.82 1.14 1.25 1.35 1.40; y=0.5 0.82 1.14 1.25 1.35 1.40;p=polyfit(t,y,2)p=polyfit(t,y,2)fv=polyval(p,t) %fv=polyval(p,t) %求拟合多项式在求拟合多项式在t t时的拟合数据时的拟合数据plot(t,y,plot(t,y,o o,t,fv
44、),t,fv)x=0.2,0.5,1.0,1.5,2.0;n=interp1(t,y,x,spline)x=0.2,0.5,1.0,1.5,2.0;n=interp1(t,y,x,spline)plot(t,y,O,x,n,*,t,fv)plot(t,y,O,x,n,*,t,fv)常微分方程数值解 t, x=ode23(xfun, t0, tf x0, tol, trace)t, x=ode23(xfun, t0, tf x0, tol, trace)t, x=ode23(xfun, t0, tf x0, tol, trace)t, x=ode23(xfun, t0, tf x0, tol,
45、trace)课本课本P53 P53 例例2-202-20线性常微分方程求解:线性常微分方程求解: 先用先用symssyms命令声明符号变量,然后再用命令声明符号变量,然后再用dsolve(dsolve(表达表达式式) )命令。命令。课本课本P56 P56 例例2-212-21求解M-文件 function yp=vdp(t,x) yp(1)=x(2); yp(2)=2*(1-x(1)2)*x(2)-x(1); % %令令u=2 u=2 在命令行求解这个方程: t,x=ode45(t,x=ode45(vdpvdp,0,20,1 ;1);,0,20,1 ;1); plot(t,x(:,1),t,x(:,2); plot(t,x(:,1),t,x(:,2); % %画出画出x x和和dx/dtdx/dt的时域波形的时域波形 单击此处添加段落文字内容P61 1P61 1、2 2、3 3、4 4、1111、3131课后练习单击此处添加段落文字内容1 1、掌握变量命名、常用的数据类型、掌握变量命名、常用的数据类型2 2、掌握常用的矩阵运算及流程结构、掌握常用的矩阵运算及流程结构3 3、掌握两种、掌握两种M M文件,文件,4 4、掌握一维、二维图形显示、掌握一维、二维图形显示5 5、了解常用的数据处理、了解常用的数据处理本章小结