matlab教学教案课件第四章+matlab的数值计算功能_第1页
matlab教学教案课件第四章+matlab的数值计算功能_第2页
matlab教学教案课件第四章+matlab的数值计算功能_第3页
matlab教学教案课件第四章+matlab的数值计算功能_第4页
matlab教学教案课件第四章+matlab的数值计算功能_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 MATLAB 的数值计算功能Chapter 4: Numerical computation of MATLAB 数值计算是MATLAB最基本、最重要的功能,是MATLAB最具代表性的特点。MATLAB在数值计算过程中以数组和矩阵为基础。数组是MATLAB运算中的重要数据组织形式。前面章节对数组、矩阵的特征及其创建与基本运算规则等相关知识已作了较详尽的介绍,本章重点介绍常用的数值计算方法。 一、多项式(Polynomial)多项式在众多学科的计算中具有重要的作用,许多方程和定理都是多项式的形式。MATLAB提供了标准多项式运算的函数,如多项式的求根、求值和微分,还提供了一些用于更高级运算的函数,如曲线拟合和多项式展开等。1多项式的表达与创建(Expression and Creating of polynomial)(1) 多项式的表达(expression of polynomial)_ Matlab用行矢量表达多项式系数(Coefficient),各元素按变量的降幂顺序排列,如多项式为:P(x)=a0xn+a1xn-1+a2xn-2an-1x+an则其系数矢量(Vector of coefficient)为:P=a0 a1 an-1 an如将根矢量(Vector of root)表示为:ar= ar1 ar2 arn则根矢量与系数矢量之间关系为:(x-ar1)(x- ar2) (x- arn)= a0xn+a1xn-1+a2xn-2an-1x+an(2)多项式的创建(polynomial creating) a)系数矢量的直接输入法利用poly2sym函数直接输入多项式的系数矢量,就可方便的建立符号形式的多项式。 例1:创建多项式x3-4x2+3x+2poly2sym(1 -4 3 2)ans =x3-4*x2+3*x+2POLY Convert roots to polynomial. POLY(A), when A is an N by N matrix, is a row vector with N+1 elements which are the coefficients of the characteristic polynomial, DET(lambda*EYE(SIZE(A) - A) . POLY(V), when V is a vector, is a vector whose elements are the coefficients of the polynomial whose roots are the elements of V . For vectors, ROOTS and POLY are inverse functions of each other, up to ordering, scaling, and roundoff error.b) 由根矢量创建多项式已知根矢量ar, 通过调用函数 p=poly(ar)产生多项式的系数矢量, 再利用poly2sym函数就可方便的建立符号形式的多项式。例2:由根矢量创建多项式。将多项式(x-6)(x-3)(x-8)表示为系数形式的多项式。 a=6 3 8 %根矢量pa=poly(a) %求系数矢量ppa=poly2sym(pa) %以符号形式表示原多项式ezplot(ppa,-50,50)pa = 1 -17 90 -144ppa =x3-17*x2+90*x-144说明:(1)根矢量元素为n ,则多项式系数矢量元素为n+1; (2)函数poly2sym(pa) 把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定自变量。 (3)使用简单绘图函数ezplot可以直接绘制符号形式多项式的曲线。例 3: 由给定复数根矢量求多项式系数矢量。r=-0.5 -0.3+0.4i -0.3-0.4i;p=poly(r)pr=real(p)ppr=poly2sym(pr)p = 1.0000 1.1000 0.5500 0.1250pr = 1.0000 1.1000 0.5500 0.1250ppr =x3+11/10*x2+11/20*x+1/8说明:含复数根的根矢量所创建的多项式要注意: (1)要形成实系数多项式,根矢量中的复数根必须共轭成对; (2)含复数根的根矢量所创建的多项式系数矢量中,可能带有很小的虚部,此时可采用取实部的命令(real)把虚部滤掉。如果需要进行系数表示形式的多项式的求根运算,有两种方法可以实现,一是直接调用求根函数roots,poly和 roots 互为逆函数。另一种是先把多项式转化为伴随矩阵,然后再求其特征值,该特征值即是多项式的根。c) 特征多项式输入法用poly函数还可实现由矩阵的特征多项式系数创建多项式。条件:特征多项式系数矢量的第一个元素必须为1。例 2: 求三阶方阵A的特征多项式系数,并转换为多项式形式。a=6 3 8;7 5 6; 1 3 5Pa=poly(a) %求矩阵的特征多项式系数矢量Ppa=poly2sym(pa)Pa = 1.0000 -16.0000 38.0000 -83.0000Ppa =x3-17*x2+90*x-144注:n 阶方阵的特征多项式系数矢量一定是n +1阶的。例 4: 将多项式的系数表示形式转换为根表现形式。求 x3-6x2-72x-27的根a=1 -6 -72 -27r=roots(a)r = 12.1229 -5.7345 -0.3884MATLAB约定,多项式系数矢量用行矢量表示,根矢量用列矢量表示。2. 多项式的乘除运算(Multiplication and division of polynomial)向量的卷积与解卷积对应着多项式的乘除法,多项式乘法(卷积)用函数conv(a,b)实现, 除法(解卷积)用函数deconv(a,b)实现。长度为m的向量a和长度为n的向量b的卷积定义为:C(k)=j=1kajb(k+1-j)C向量的长度为:m+n-1解卷积是卷积的逆运算,向量a对向量c进行解卷积将得到商向量 q和余量r,并且满足:ck-rk=j=1kajq(k+1-j)例1:a(s)=s2+2s+3, b(s)=4s2+5s+6,计算 a(s)与 b(s)的乘积。a=1 2 3; b=4 5 6; %建立系数矢量c=conv(a,b) cs=poly2sym(c,s) %建立指定变量为s的符号形式多项式c = 4 13 28 27 18cs =4*s4+13*s3+28*s2+27*s+18例2: 展开(s2+2s+2)(s+4)(s+1) (多个多项式相乘)c=conv(1,2,2,conv(1,4,1,1)cs=poly2sym(c,s) %(指定变量为s)c = 1 7 16 18 8cs =s4+7*s3+16*s2+18*s+8例3:求多项式s4+7*s3+16*s2+18*s+8分别被(s+4),(s+3)除后的结果。c=1 7 16 18 8;q1,r1=deconv(c,1,4) %q商矢量, r余数矢量q2,r2=deconv(c,1,3)cc=conv(q2,1,3) %对除(s+3)结果检验test=(c-r2)=cc)q1 = 1 3 4 2r1 = 0 0 0 0 0q2 = 1 4 4 6r2 = 0 0 0 0 -10cc = 1 7 16 18 18test = 1 1 1 1 13. 其他常用的多项式运算命令(Other computation command of polynomial)pa=polyval(p,s) 按数组运算规则计算给定s时多项式p的值。pm=polyvalm(p,s) 按矩阵运算规则计算给定s时多项式p的值。r,p,k=residue(b,a) 部分分式展开,b,a分别是分子(numerator)分母(denominator)多项式系数矢量,r,p,k分别是留数、极点和直项矢量p=polyfit(x,y,n) 用n阶多项式拟合x,y矢量给定的数据。polyder(p) 多项式微分。注: 对于多项式b(s)与不重根的n阶多项式a(s)之比,其部分分式展开为: 式中:p1,p2,pn称为极点(poles),r1,r2,rn 称为留数(residues),k(s)称为直项(direct terms),假如a(s)含有m重根pj,则相应部分应写成:RESIDUE Partial-fraction expansion (residues). R,P,K = RESIDUE(B,A) finds the residues, poles and direct term of a partial fraction expansion of the ratio of two polynomials B(s)/A(s). If there are no multiple roots,B(s) R(1) R(2) R(n) - = - + - + . + - + K(s) A(s) s - P(1) s - P(2) s - P(n)Vectors B and A specify the coefficients of the numerator and denominator polynomials in descending powers of s. The residuesare returned in the column vector R, the pole locations in column vector P, and the direct terms in row vector K. The number of poles is n = length(A)-1 = length(R) = length(P). The direct term coefficient vector is empty if length(B) n 可求出最小二乘解*欠定系统:(Underdetermind system) m n, then only the first n columns of Q are computed.4. 特征值与特征矢量(Eigenvalues and eigenvectors).MATLAB中使用函数eig计算特征值和 特征矢量,有两种调用方法:*e=eig(a), 其中e是包含特征值的矢量;*v,d=eig(a), 其中v是一个与a相同的nn阶矩阵,它的每一列是矩阵a的一个特征值所对应的特征矢量,d为对角阵,其对角元素即为矩阵a的特征值。例:计算特征值和特征矢量。a=34 25 15; 18 35 9; 41 21 9e=eig(a)v,d=eig(a)a = 34 25 15 18 35 9 41 21 9e = 68.5066 15.5122 -6.0187v = -0.6227 -0.4409 -0.3105 -0.4969 0.6786 -0.0717 -0.6044 -0.5875 0.9479d = 68.5066 0 0 0 15.5122 0 0 0 -6.0187EIG Eigenvalues and eigenvectors.E = EIG(X) is a vector containing the eigenvalues of a square matrix X.V,D = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D.V,D = EIG(X,nobalance) performs the computation with balancing disabled, which sometimes gives more accurate results for certain problems with unusual scaling. If X is symmetric, EIG(X,nobalance) is ignored since X is already balanced.5. 奇异值分解.( Singular value decomposition).如存在两个矢量u,v及一常数c,使得矩阵A满足:Av=cu, Au=cv称c为奇异值,称u,v为奇异矢量。 将奇异值写成对角方阵,而相对应的奇异矢量作为列矢量则可写成两个正交矩阵U,V, 使得: AV=U, AU=V 因为U,V正交,所以可得奇异值表达式: A=UV。一个m行n列的矩阵A经奇异值分解,可求得m行m列的U, m行n列的矩阵和n行n列的矩阵V.。奇异值分解用svd函数实现,调用格式为;u,s,v=svd(x) SVD Singular value decomposition.U,S,V = SVD(X) produces a diagonal matrix S, of the same dimension as X and with nonnegative diagonal elements in decreasing order, and unitary matrices U and V so that X = U*S*V.S = SVD(X) returns a vector containing the singular values.U,S,V = SVD(X,0) produces the economy size decomposition. If X is m-by-n with m n, then only the first n columns of U are computed and S is n-by-n.例: 奇异值分解。a=8 5; 7 3;4 6;u,s,v=svd(a) % s为奇异值对角方阵u = -0.6841 -0.1826 -0.7061 -0.5407 -0.5228 0.6591 -0.4895 0.8327 0.2589s = 13.7649 0 0 3.0865 0 0v = -0.8148 -0.5797 -0.5797 0.8148 五 数据分析(Data Analysis)MATLAB对数据分析有两条约定:(1) 若输入量X是矢量,则不论是行矢量还是列矢量,运算是对整个矢量进行的; (2)若输入量X是数组,(或称矩阵),则命令运算是按列进行的。即默认每个列是有一个变量的不同“观察“所得的数据组成。 1. 基本统计命令 (表4-1)例: 做各种基本统计运算。A=5 -10 -6 0;2 6 3 -3;-9 5 -10 11;-22 17 0 -19;-1 6 -4 4Amax=max(A) %找A各列的最大元素Amin=min(A) %找A各列的最小元素Amed=median(A) %列数为奇数使找A各列中数值居中的中位元素,列数为偶数使取两个中位元素的平均值Amean=mean(A) %找A各列的平均值Astd=std(A) %求A各列的标准差Aprod=prod(A) %求A各列元素的积Asum=sum(A) %求A各列元素的和S=cumsum(A) %求A各列元素的累积和P=cumprod(A) %求A各列元素的累积j积I=sort(A) %使A的各列元素按递增排列A = 5 -10 -6 0 2 6 3 -3 -9 5 -10 11 -22 17 0 -19 -1 6 -4 4Amax = 5 17 3 11Amin = -22 -10 -10 -19Amed = -1 6 -4 0Amean = -5.0000 4.8000 -3.4000 -1.4000Astd = 10.8397 9.6281 5.0794 11.1490Aprod = -1980 -30600 0 0Asum = -25 24 -17 -7S = 5 -10 -6 0 7 -4 -3 -3 -2 1 -13 8 -24 18 -13 -11 -25 24 -17 -7P = 5 -10 -6 0 10 -60 -18 0 -90 -300 180 0 1980 -5100 0 0 -1980 -30600 0 0I = -22 -10 -10 -19 -9 5 -6 -3 -1 6 -4 0 2 6 0 4 5 17 3 11求矩阵元素的最大值、最小值可用: Amax=max(max(A) 或 Amax=max(A(:), Amin=min(min(A) 或 Amin=min(A(:) 2协方差阵和相关阵(Covariance matrix and Correlation coefficients).向量的协方差体现了向量中各元素的分散程度,矩阵的协方差体现了矩阵中各列元素的相关性。求协方差阵和相关阵的命令:C=cov(x) 求协方差阵C=cov(x,y) 求两随机变量的协方差P=corrcoef(x) 关系数函数,是向量间相关性的归一化表示,求相关阵P=corrcoef(x,y) 求两随机变量的(22)相关系数,是向量间相关性的归一化表示。这些函数应用于m行n列矩阵时结果均为n行n列的对称矩阵,其第p行、第q列的元素表示矩阵的第p行、第q列的协方差或相关系数。例1: 计算协方差和相关阵。x=rand(10,3); y=rand(10,3);cx=cov(x) %求协方差阵cy=cov(y)cxy=cov(x,y) %求两随机变量的协方差px=corrcoef(x) %求相关阵pxy=corrcoef(x,y) %求两随机变量的(22)相关系数cx = 0.0483 -0.0066 0.0146 -0.0066 0.0283 0.0154 0.0146 0.0154 0.0978cy = 0.1177 0.0073 -0.0127 0.0073 0.0239 -0.0230 -0.0127 -0.0230 0.0772cxy = 0.0550 0.0023 0.0023 0.0697px = 1.0000 -0.1783 0.2118 -0.1783 1.0000 0.2934 0.2118 0.2934 1.0000pxy = 1.0000 0.0372 0.0372 1.0000COV Covariance matrix.COV(X), if X is a vector, returns the variance. For matrices, where each row is an observation, and each column a variable, COV(X) is the covariance matrix. DIAG(COV(X) is a vector of variances for each column, and SQRT(DIAG(COV(X) is a vector of standard dev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论