MATLAB第二讲数值计算和符号计算.ppt
《MATLAB第二讲数值计算和符号计算.ppt》由会员分享,可在线阅读,更多相关《MATLAB第二讲数值计算和符号计算.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Matlab基础应用1第二讲第二讲 数值计算和符号运算数值计算和符号运算Matlab基础应用21.1.数值计算数值计算1.1 矩阵和数组基础矩阵和数组基础创建矩阵创建矩阵元素标识元素标识矩阵操作矩阵操作矩阵函数矩阵函数1.2 矩阵和数组的计算矩阵和数组的计算Matlab基础应用31.3 1.3 多项式运算多项式运算 MATLAB MATLAB语言把多项式表达成一个语言把多项式表达成一个行向行向量量,该向量中的元素是按,该向量中的元素是按降幂降幂排列多项式各排列多项式各项系数的,如果缺某次幂项,则该次幂项系项系数的,如果缺某次幂项,则该次幂项系数为。数为。f(x)=f(x)=a an nx xn
2、 n+a an-1n-1x xn-1n-1+a a1 1x+x+a a0 0 用行向量用行向量 p=p=a an n a an-1n-1 a a1 1 a a0 0 表示。表示。多项式多项式 行向量行向量Matlab基础应用4u可用polyval函数,计算多项式在变量为特定值的结果。1.3.1 1.3.1 多项式求值多项式求值例2:计算x=0:0.5:3时,p(x)=x3+21x2+20 x值。解:p1=1 21 20 0;x=0:0.5:3;polyval(p1,x)0 15.3750 42.0000 80.6250 132.0000 196.8750 276.0000Matlab基础应用5
3、多项式求根多项式求根 -求方程的解求方程的解例例3 3:p(x)=xp(x)=x3 3-6x-6x2 2-72x-27-72x-27u 在MATLAB利用函数:roots解:解:p=1-6-72-27r=roots(p)r=12.1229 -5.7345 -0.3884Matlab基础应用61.3.3 1.3.3 部分分式展开部分分式展开u利用residue函数来实现部分分式展开。u语法:语法:r,p,k=residue(B,A)r,p,k=residue(B,A)其中:其中:B,AB,A分别为分子、分母多项式系数行向量;分别为分子、分母多项式系数行向量;r r为为r1,r1,rnrn留数行向
4、量;留数行向量;p p为为p1p1pnpn极点行向量;极点行向量;k k为直项行向量。为直项行向量。Matlab基础应用71.3.4 1.3.4 多项式乘除运算多项式乘除运算o多项式的乘法多项式的乘法u语法:语法:p=conv(p1,p2)p=conv(p1,p2)u说明:说明:p p是多项式是多项式p1p1和和p2p2的乘积多项式。的乘积多项式。o多项式的除法多项式的除法u语法:语法:q,r=deconv(p1,p2)q,r=deconv(p1,p2)u说明:说明:p1p1被被p2p2除,商为多项式除,商为多项式q q,余数式为,余数式为r r。Matlab基础应用81.3.4 1.3.4
5、多项式乘除运算(续)多项式乘除运算(续)例4:a(x)=x2+2x+3;b(x)=4x2+5x;求c=a(x)*b(x)。解:a=1 2 3;b=4 5 0;c=conv(a,b)c=4 13 22 15 0d,r=deconv(c,a)d=4 5 0r=0 0 0 0 0Matlab基础应用9(1 1)字符串用字符数组来存储,以单引号)字符串用字符数组来存储,以单引号 来界定来界定。(2 2)常见的字符串函数)常见的字符串函数:length(str):length(str):计算字符串的长度;计算字符串的长度;double(str):double(str):查看字符串的查看字符串的ASCII
6、ASCII码码;char(x):char(x):将将ASCIIASCII码转换成字符串形式码转换成字符串形式;strcmp(x,y):strcmp(x,y):比较两字符串是否相同;比较两字符串是否相同;strcat(s1,s2,strcat(s1,s2,):):字符串级连函数字符串级连函数;findstr(x,x1):findstr(x,x1):查找查找x x中是否有中是否有x1x1;(3 3)执行字符串:)执行字符串:eval(str)eval(str)命令命令 例例1 1:str1=str1=a=2*3a=2*3;eval(str1)a=6;eval(str1)a=61.4 1.4 字符串
7、字符串Matlab基础应用10(1 1)元胞数组的基本单元是元胞,每个元胞可存放不同类型)元胞数组的基本单元是元胞,每个元胞可存放不同类型(矩阵、数组、字符串等)的数据,以(矩阵、数组、字符串等)的数据,以 来界定。来界定。(2 2)元胞数组的创建:)元胞数组的创建:方法方法1 1:直接创建:直接创建 如:如:A=A=THISTHIS,3 4;ones(3),3 4;ones(3),ONEONE,TWOTWO方法方法2 2:由各元胞创建:由各元胞创建 如:如:A(1,1)=A(1,1)=THISTHIS A(1,2)=3 4 A(1,2)=3 4 A(2,1)=ones(3)A(2,1)=on
8、es(3)A(2,2)=A(2,2)=ONEONE,TWOTWO (3)(3)元胞数组元素内容的获取:元胞数组元素内容的获取:X=AX=A 2,12,1 X=1 1 1;1 1 1;1 1 1 X=1 1 1;1 1 1;1 1 1 1.5 1.5 元胞数组元胞数组Matlab基础应用11(1 1)结构数组的基本组成是结构,每个结构都包含某一对象的)结构数组的基本组成是结构,每个结构都包含某一对象的多个域,以多个域,以.来标识域。来标识域。(2 2)结构数组的创建:)结构数组的创建:方法方法1 1:TU(1)=TU(1)=structstruct(namename,曲线曲线1 1,colorc
9、olor,redred,)方法方法2 2:TU(1).name=TU(1).name=曲线曲线1 1;TU(1).color=TU(1).color=redred TU(1).shape=TU(1).shape=sinsin;TU(1).position=0 piTU(1).position=0 pi TU(2).name=TU(2).name=曲线曲线2 2;TU(2).color=TU(2).color=blueblue TU(2).shape=TU(2).shape=coscos;TU(2).position=0 2*piTU(2).position=0 2*pi(3)(3)结构数组元素
10、内容的获取:用结构数组元素内容的获取:用.号来获取号来获取 X=TU(2).shape X=cosX=TU(2).shape X=cos1.6 1.6 结构数组结构数组Matlab基础应用121.7 1.7 数据分析数据分析u遵循的原则:遵循的原则:(1 1)如果输入是向量,则按整个向量进行)如果输入是向量,则按整个向量进行 计算。计算。(2 2)如果输入的是矩阵,则)如果输入的是矩阵,则按列按列进行运算。进行运算。因此因此:一定要将需要分析的数据按列进行分类。一定要将需要分析的数据按列进行分类。若已有的矩阵是按行进行分类的,可用矩阵的旋若已有的矩阵是按行进行分类的,可用矩阵的旋转使矩阵变成按
11、列进行分类转使矩阵变成按列进行分类Matlab基础应用13函数名函数名功能功能max(X)max(X)矩阵中各列的矩阵中各列的最大值最大值。min(X)min(X)矩阵中各列矩阵中各列最小值最小值。mean(X)mean(X)矩阵中各列矩阵中各列平均值平均值。std(X)std(X)矩阵中各列矩阵中各列标准差标准差,指各元素与该列平均,指各元素与该列平均值值(mean)(mean)之差的平方和开方。之差的平方和开方。median(X)median(X)矩阵中各列的矩阵中各列的中间元素中间元素。var(X)var(X)矩阵中各列的矩阵中各列的方差方差。C=cov(X)C=cov(X)矩阵中各列间
12、的矩阵中各列间的协方差协方差。S,k=sort(X,n)S,k=sort(X,n)沿第沿第n n维按模增大维按模增大重新排序重新排序,k k为为S S元素的元素的原位置。原位置。数据统计和相关分析数据统计和相关分析Matlab基础应用14函数名函数名功能功能diff(X,m,n)diff(X,m,n)沿第沿第n n维求第维求第m m阶列向差分阶列向差分。差分是求相邻行。差分是求相邻行(列列)之间的差,结果会减少一行(列)之间的差,结果会减少一行(列)fx,fy=gradient(Z)fx,fy=gradient(Z)对对Z Z求求x x、y y方向的方向的数值梯度数值梯度。sum(X)sum(
13、X)矩阵矩阵各列元素的和各列元素的和。cumsum(X,n)cumsum(X,n)沿第沿第n n维求维求累计和累计和cumprod(X,n)cumprod(X,n)沿第沿第n n维求维求累计乘积累计乘积trapz(x,y)trapz(x,y)梯形法求积分梯形法求积分近似于求元素和,把相邻两点数近似于求元素和,把相邻两点数据的平均值乘以步长表示面积。据的平均值乘以步长表示面积。x x为自变量,为自变量,y y为函数。为函数。cumtrapz(x,y,n)cumtrapz(x,y,n)用梯形法沿第用梯形法沿第n n维求函数维求函数y y对自变量对自变量x x累计积分累计积分。1.7.2 1.7.2
14、 差分与积分差分与积分Matlab基础应用151.7.3 1.7.3 卷积和快速傅立叶变换卷积和快速傅立叶变换-离散序列离散序列p卷积uConvConv:计算向量的卷积。计算向量的卷积。uconv2conv2:计算二维:计算二维(矩阵或二维数组矩阵或二维数组)卷积。卷积。udeconvdeconv:解卷积运算。:解卷积运算。p快速傅立叶变换快速傅立叶变换u fft fft:一维快速傅立叶变换。:一维快速傅立叶变换。u ifft ifft:一维快速傅立叶:一维快速傅立叶逆逆变换。变换。Matlab基础应用16u课程导入课程导入o求半径为5的圆的面积o数值运算:r=5 s=pi*r2 s=78.5
15、398o如果要求求解的精度保留到小数点后10位,怎样求解呢?符号运算是数值运算的扩展符号运算是数值运算的扩展,为了得到更高精度的运算结果为了得到更高精度的运算结果o符号运算:syms s r s=pi*r2 r=5 s=vpa(subs(s),32)s=78.53981633974482 符号运算符号运算Matlab基础应用172.1 2.1 符号对象的建立符号对象的建立2.1.1 2.1.1 创建符号常量(创建符号常量(symsym是是symbolicsymbolic缩写)缩写)u语法:语法:sym(常量常量)例例1 1:创建数值常量和符号常量:创建数值常量和符号常量a1=2*sqrt(5)
16、+pi%数值常量数值常量a2=sym(2*sqrt(5)+pi)%符号常量符号常量符号对象符号对象:是一种数据结构,用来存储代表符号:是一种数据结构,用来存储代表符号的的字符串字符串,包括符号常量、符号变量和符号,包括符号常量、符号变量和符号表达式,符号运算的结果也都是符号对象。表达式,符号运算的结果也都是符号对象。Matlab基础应用18(1 1)使用)使用symsym命令创建命令创建u符号变量:符号变量:sym(sym(argarg,参数参数)%参数设置数学特性参数设置数学特性,可为可为positive,real,unreal,positive,real,unreal,可省略可省略;u符号
17、表达式:符号表达式:sym(sym(表达式表达式)注意注意:符号对象必须用符号对象必须用单引号单引号括起来括起来MATLABMATLAB才能识别。才能识别。例例2 2:f=sym(f=sym(sin(x)+5*x sin(x)+5*x )f f 符号表达式名符号表达式名 sin(x)+5*x sin(x)+5*x 符号表达式符号表达式 符号标识符号标识2.1.2 2.1.2 创建符号变量和表达式创建符号变量和表达式注意注意:常数与符号变量常数与符号变量的相乘不能省的相乘不能省*(2 2)使用)使用symssyms命令创建:命令创建:一个或多个符号变量的创建一个或多个符号变量的创建 syms(s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 第二 数值 计算 符号
限制150内