您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > matlab教学内容
2020/1/11第二章MATLAB7的安装和用户界面1第4章MATLAB的其他函数库教学目标:理解数据分析和傅里叶变换函数库,多项式函数库,了解矩阵的分解与变换函数库,理解函数功能与数值函数库,了解字符串、符合数学与系统仿真函数库教学重点:数据分析和傅里叶变换函数库,多项式函数库2020/1/11第二章MATLAB7的安装和用户界面2教学内容:数据分析和傅里叶变换函数库矩阵的分解与变换函数库多项式函数库函数功能和数值分析函数库字符串函数库符号数学函数库2020/1/11第二章MATLAB7的安装和用户界面34.1数据分析和傅里叶变换函数库MATLAB的基本数据处理功能默认按列进行,因此要求待处理的数据矩阵按列分类,行表示数据不同的样本。1基本的数据分析2020/1/11第二章MATLAB7的安装和用户界面4•max(A):各列最大值•min(A):各列最小值•mean(A):各列平均值•std(A):各列标准差•median(A):各列中间元素•sum(A):各列元素和•sum(A(:)):全部元素和•trapz(A):梯形法求积分,可看做求和2020/1/11第二章MATLAB7的安装和用户界面5标准差:std(date)=NdatemeandateN2)]([11Trapz:梯形法求积分,将相邻两点数据的平均值作为数据点相加求和。所以相加时比原数据少一组数据。它与sum函数的关系NdatemeandateN2)]([112020/1/11第二章MATLAB7的安装和用户界面6例:10个学生的身高及三门课的分数如下date=[15449836715899817515510068861456375961456375961415565751555664851478987771479654100145607667]2020/1/11第二章MATLAB7的安装和用户界面7max(date)min(date)mean(date)std(date)sum(date)sum((date:))trapz(date)2020/1/11第二章MATLAB7的安装和用户界面8处理结果不是标量而是列向量的函数cumsum(date):列向量累加和cumprod(date):列向量累乘积diff(date):列向差分sort(date):列向重新排序cumtrapz(date):列向累加积分(相当于不定积分)2020/1/11第二章MATLAB7的安装和用户界面9例:说明trapz和cumtrapz的区别x=0:0.05:1;y=x.^3-2.*x-3;I=trapz(x,y)x=0:0.1:1;y=x.^3-2.*x-3;Z=cumtrapz(x,y)2020/1/11第二章MATLAB7的安装和用户界面102用于场论的数据分析函数gradient:求二维场和三维场的近似梯度注:[Fx,Fy]=gradient(x),其中Fx为其水平方向上的梯度,Fy为其垂直方向上的梯度,Fx的第一列元素为原矩阵第二列与第一列元素之差,Fx的第二列元素为原矩阵第三列与第一列元素之差除以2,以此类推:Fx(i,j)=(F(i,j+1)-F(i,j-1))/2。最后一列则为最后两列之差。同理,可以得到Fy。2020/1/11第二章MATLAB7的安装和用户界面11x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]x=693405412567780789100[Fx,Fy]=gradient(x)例:求梯度2020/1/11第二章MATLAB7的安装和用户界面12del2:拉普拉斯算子。(二阶差分,即欧式空间中梯度的散度)x=0:0.01:1y=x.^3;ythe=6*x%理论二阶导yapp=4*del2(y,0.01);%matlab数值近似plot(x,ythe,'*');holdon;plot(x,yapp,'r');holdoff;2020/1/11第二章MATLAB7的安装和用户界面13a=[123];b=[456];c=cross(a,b)d=dot(a,b)设a=[ax,ay,az],b=[bx,by,bz],cross(a,b)=[ay*bz-az*by,az*by-y*bz,ax*by-ay*bx]dot(a,b)=a*b’cross:矢量积(叉乘,外积)。dot:数量积(点乘,内积)。2020/1/11第二章MATLAB7的安装和用户界面14rand(m,n):0和1之间均匀分布的m行n列随机数矩阵,均值为0.5,标准差为0.2877;randn(m,n):正态分布的m行n列随机数矩阵,均值为0,标准差为1;randi(imax,m,n):产生m*n的均匀分布的伪随机数,每个数取值在1到imax之间。分布情况可以直方图命令hist(x,N),N表示直方图横坐标的分割数3用于随机数据分析的函数2020/1/11第二章MATLAB7的安装和用户界面15•x=rand(1,1000);hist(x)•y=randn(1,1000);hist(y,50)•z=randi(10,1,10),hist(z)2020/1/11第二章MATLAB7的安装和用户界面16相关分析(包括卷积)和傅里叶分析分别用于信号的时域和频域处理。4用于相关分析和傅里叶分析的函数corrcoef(x,y):两个同长信号的相关系数,对角线上为x,y的自相关系数cov(x,y):x,y的协方差矩阵,主对角线上为x,y的标准差,两个实数随机变量x与y之间的协方差E[(x-E(x))(y-E(y))]conv(x,y):x,y的卷积,多用于线性系统的输出(如果x是输入信号,y是线性系统的脉冲过渡函数,则卷积给出系统的输出信号,卷积也可用于多项式相乘。翻转平移后乘积)2020/1/11第二章MATLAB7的安装和用户界面17filter(b,a,x):根据输入信号x和线性系统特性b,a求输出信号X=fft(x,N):输入信号x的N点离散傅里叶变换x=ifft(X):傅里叶反变换sound(u,s):在音箱中产生u对应的声音,s为重放速度例:t=0:.001:3;u=sin(300*t)+2*cos(200*t);U=fft(u);plot(abs(U))2020/1/11第二章MATLAB7的安装和用户界面184.2矩阵的分解与变换函数库1线性方程组的系数矩阵1)det(a):求方阵a的行列式。det(a)≠0,则inv(a)存在,a为系数的线性方程组有解。2)rank(a):任意矩阵a的秩,即它所能划分出的行列式不为0的最大方阵的边长。3)trace(a):矩阵a的迹,即矩阵主对角线上元素的和。4)cond(a):求矩阵条件数。如果det(a)接近于零,这样的方程称为病态的,其解的精度较低。条件数(conditionnumber)评价矩阵的病态程度,其值愈大,方程病态愈重,解的精度愈低。a可以不是方阵。2020/1/11第二章MATLAB7的安装和用户界面195)inv(a):求逆矩阵。6)pinv(a):求伪逆矩阵。逆矩阵函数inv只能对方阵求逆,pinv(a)可求非方阵求逆。pinv(a)=inv(a'*a)*a'。线性方程组A*x=B[n,m]=size(A),n为方程的数目,m为未知数的数目。(1)当n=m时,A为方阵,若A为满秩,即rank(A)=n,即det(A)≠0时,inv(A)存在,即方程都是有效的,可以得到解x=A\B=inv(A)*B2020/1/11第二章MATLAB7的安装和用户界面20(2)当nm(有效方程数大于未知数数目),超定方程组,A\B仍然合法,得到解为最小二乘解。此时inv(A)不存在,x=inv(A’*A)*(A’*B)A\B=pinv(A)*B(除数A可以不是方阵)(3)nm(有效方程数小于未知数),x=A\B仍然有效,所得解不是全解,是令x中m-n个元素为0的一个特殊解。2020/1/11第二章MATLAB7的安装和用户界面21•最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。•利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。2020/1/11第二章MATLAB7的安装和用户界面22a=[2900041475517874]b=[2900041475511410102]例:求下面两个矩阵的行列式及特性2020/1/11第二章MATLAB7的安装和用户界面23将矩阵分解为几个具有特殊构造性质的矩阵的乘积,MATLAB提供的函数可将这种在数学上非常繁重的工作简单化。2矩阵的分解2020/1/11第二章MATLAB7的安装和用户界面24(1)三角分解(lu分解):将任意方阵分解为一个准下三角方阵和一个上三角方阵的乘积。[l,u]=lu(a)(2)正交分解(qr分解):qr(a)将任意n×m阶矩阵分解为一个正交方阵q和一个与原矩阵同阶的上三角矩阵r的乘积。(3)奇异值分解(svd分解)[u,s,v]将任意n×m阶矩阵a分解为三个矩阵u、s和v‘的乘积。其中u、v分别为n、m阶正交方阵,s为n×m阶对角矩阵,对角线上的元素就是a的奇异值。注:矩阵s的最大奇异值与最小奇异值的比就是原矩阵的条件数2020/1/11第二章MATLAB7的安装和用户界面25[l,u]=lu(a);[qr]=qr(a);[usv]=svd(a)2020/1/11第二章MATLAB7的安装和用户界面26[e,r]=eig(a):e表示特征向量,r表示特征根。3矩阵的特征值分析2020/1/11第二章MATLAB7的安装和用户界面27多项式的表示一个多项式按降幂排列为:p(x)=anxn+an-1xn-1+…+a1x+a0在MATLAB中用行向量来表示多项式的各项系数,使用长度为n+1的行向量按降幂排列,用0表示多项式中某次幂的缺项,则表示为:p=[anan-1…a1a0]4.3多项式函数库例:p(x)=x^3-4x^2+3x+1可表示为p=[1-431];p(x)=x^3+5x^2+2x可表示为p=[1520]。2020/1/11第二章MATLAB7的安装和用户界面28例:两个多项式:a(x)=2x3+4x2+6x+8b(x)=3x2+6x+9对它们进行各种运算。定义a=[2,4,6,8]b=[0,3,6,9]或b=[3,6,9]2多项式的四则运算2020/1/11第二章MATLAB7的安装和用户界面29(1)多项式相乘c=conv(a,b)a(1)a(2)a(3)a(4)b(3)b(2)b(1)最高次项系数a(1)*b(1)(2)多项式相除:[q,r]=deconv(a,b)不一定除得尽,会有余子式,q是商式,r是余子式。[q,r]=deconv(c,a)(3)多项式相加:只有长度相同的向量才能相加。a=[2,4,6,8];b=[0,3,6,9];d=a+b2020/1/11第二章MATLAB7的安装和用户界面30functiony=polyadd(x1,x2)n1=length(x1);n2=length(x2);ifn1n2x2=[zeros(1,n1-n2),x2];elseifn1n2x1=[zeros(1,n2-n1),x1];endy=x1+x2这样,多项式相加可以写成c=ployadd(a,b),不再需要考虑多项式的项数。避免多项式相加减考虑项数的方法2020/1/11第二章MATLAB7的安装和用户界面312多项式求导、求根、求值a为多项式系数向量•求导:e=polyder(a)•求根:ra=roots(a)•由根求多项式系数:a=poly(ra)•当a是向量时,poly把它看作根来组成多项式;当a是方阵时,poly把它组成方阵的特征多项式•多项式求值:将多项式a中的自变量x赋予值xv时,该多项式的值可用F=polyval(a,xv)2020/1/1
本文标题:matlab教学内容
链接地址:https://www.777doc.com/doc-2887504 .html