资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Sanming,University,Matlab,and Engineering Calculation,第,4,章,MATLAB,的其他函数库,4.1,数据分析函数库,datafun,4.2,矩阵的分解与变换,matfun,4.3,多项式函数库,polyfun,4.4,函数功能和数值积分函数库,funfun,4.5,字符串函数库,strfun,4.6,符号数学函数库,4.7,系统仿真函数库,4.1,数据分析函数库,datafun,corrcoef(x,),求相关系数,cov(x,),协方差矩阵,cplxpair(x,),把向量分类为复共轭对,cross(x,y),向量的向量积,cumprod(x,),列累计积,cumsum(x,),列累计和,del2(A),五点离散拉氏算子,diff(x),计算元素之间差,dot(x,y),向量的点积,gradient(Z,dx,dy,),近似梯度,histogram(x),直方图和棒图,max(x),max(x,y),最大分量,mean(x),均值或列的平均值,median(x),列的中值,min(x),min(x,y),最小分量,prod(x),列元素的积,rand(x,),均匀分布随机数,randn(x,),正态分布随机数,sort(x),按升序排列,std(x),列的标准偏差,subspace(A,B),两个子空间之间的夹角,sum(x),各列的元素和,4.1,数据分析函数库,datafun,4.1.1,基本的数据分析,1.max%,求各列最大值,min%,求各列最小值,mean%,求各列平均值,std%,求各列标准差,median%,求各列中间元素,sum%,求各列和,trapz,%,梯形法求积分,diff%,求差分,sort%,排序,max(A)=0.9501 0.8214 0.9218 0.9355,min(A)=0.2311 0.0185 0.1763 0.4057,mean(A)=0.6331 0.5006 0.6487 0.7124,std(A)=0.2963 0.3197 0.2861 0.2783,median(A)=0.6068 0.4565 0.7382 0.8936,sum(A)=3.1654 2.5032 3.2437 3.5620,trapz(A,)=2.2447 1.8998 2.8478 2.9123,diff(A)=-0.7190 -0.3056 0.1765 0.5298,0.3757 -0.4380 0.1299 -0.0186,-0.1209 0.8029 -0.1836 -0.5066,0.4053 -0.3767 -0.5619 0.4834,sort(A)=0.2311 0.0185 0.1763 0.4057,0.4860 0.4447 0.6154 0.4103,0.6068 0.4565 0.7382 0.8936,0.8913 0.7621 0.7919 0.9169,0.9501 0.8214 0.9218 0.9355,4.1,数据分析函数库,datafun,4.1.2,用于场论的数据分析函数,1,、,gradient%,求梯度,2,、,del2%,拉普拉斯算子,3,、,cross%,求矢量积,4,、,dot%,求数量积,4.1,数据分析函数库,datafun,4.1.3,用于随机数据分析的函数,1,、,rand(m,n,),2,、,randn(m,n),3,、,hist(x)%,画直方图,4,、,hist(x,N,)%N,等份画直方图,x=rand(1,1000);plot(x),hist(x,),x=randn(1,1000);plot(x),hist(x,);hist(x,50);,4.1,数据分析函数库,datafun,4.1.4,用于相关分析和傅立叶分析的函数,1,、,corrcoef(x,y,)%,相关系数,2,、,cov(x,y,)%,协方差,3,、,conv(x,y,)%,卷积和多项式相乘,4,、,deconv(x,y,)%,卷积和多项式相除,5,、,filter(b,a,x)%,一维数据滤波,6,、,X=,fft(x,N,)%,快速傅立叶变换,7,、,X=,ifft(X,)%,逆傅立叶变换,8,、,sound(u,s)%,向量变为声音,9,、,filter2,conv2,deconv,fft2,ifft2,等,x=rand(1,1000);,y=randn(1,1000);,R=,corrcoef(x,y,),%,对角线是自相关系数,R=1.0000 0.0094,0.0094 1.0000,Z=,cov(x,y,)Z=0.0835 0.0026,0.0026 0.8928,%,对角线是,x,和,y,的均方差,P=,conv(x,y,);,%,卷积,P,长度为,Mx+Ny-1,如,x=1 3 2 1;y=1 2 2;,Q,R=,deconv(x,y,),则:,Q=1 1,R=0 0 -2 -1,例,4-1-1,t=0:.001:3;,u=sin(300*t)+2*cos(200*t);,U=fft(u);,plot(abs(U),axis(0,300,0,3000),4.2,矩阵的分解与变换,matfun,主要考虑以下函数,det,%,求行列式,rank,%,求矩阵的秩,inv,%,求逆矩阵,trace,%,求矩阵的迹(矩阵主对角线上元素的和),cond,%,求条件数,A=magic(3);%,魔方矩阵,B=,det(A,)=B=-360,C=inv(A)=,C=0.1472 -0.1444 0.0639,-0.0611 0.0222 0.1056,-0.0194 0.1889 -0.1028,R=rank(A)=R=3,T=trace(A)=T=15,CD=,cond(A,)=CD=4.3301,矩阵的分解,l,u,=,lu(a,),%,三角分解,a=,准下三角矩阵,l*,上三角矩阵,u,q,r,=,qr(a,),%,正交分解,a=,正交方阵,q*,上三角阵,r,u,s,v=,svd(a,),%,奇异值分解,a=,正交方阵,u*,对角阵,s*,正交方阵,v,l,u=,lu(A,),l=1.0000 0 0,0.3750 0.5441 1.0000,0.5000 1.0000 0,%,准下三角必须交换二行才成为真下三角,u=8.0000 1.0000 6.0000,0 8.5000 -1.0000,0 0 5.2941,q,r=,qr(A,),q=,-0.8480 0.5223 0.0901,-0.3180 -0.3655 -0.8748,-0.4240 -0.7705 0.4760,r=,-9.4340 -6.2540 -8.1620,0 -8.2394 -0.9655,0 0 -4.6314,u,s,v=,svd(A,),u=-0.5774 0.7071 0.4082,-0.5774 0.0000 -0.8165,-0.5774 -0.7071 0.4082,s=15.0000 0 0,0 6.9282 0,0 0 3.4641,v=-0.5774 0.4082 0.7071,-0.5774 -0.8165 -0.0000,-0.5774 0.4082 -0.7071,其中,|u|=1,,,|v|=-1,矩阵特征值分析,e,r,=,eig(a,);,%,特征值分解;,e,为特征向量,,r,为特征值,e=,-0.5774 -0.8131 -0.3416,-0.5774 0.4714 -0.4714,-0.5774 0.3416 0.8131,r=,15.0000 0 0,0 4.8990 0,0 0 -4.8990,4.3,多项式函数库,polyfun,4.3.1,多项式四则运算,1,、,c=,conv(a,b,),相当于,c(x,)=,a(x,)*,b(x,),2,、,q,r,=,deconv(a,b,),多项式相除,,q,为商,,r,为余子式,例,.,求 的“商”及“余”多项式。,p1=conv(1,0,2,conv(1,4,1,1);,p2=1 0 1 1;,q,r=deconv(p1,p2);,cq,=,商多项式为,;,cr,=,余多项式为,;,disp(cq,poly2str(q,s),disp(cr,poly2str(r,s),商多项式为,s+5,余多项式为,5 s2+4 s+3,4.3.2,多项式求导、求根和求值,3,、,e=,polyder(a,),多项式求导,4,、,P=,roots(a,),和,a=,poly(P,),求,根、求多项式,a=a(1),a(2),a(3),.,a(n,),a(n+1),5,、,f=,polyval(a,xv,),多项式求值,x=xv,例,1.,求方程,f(x)=,x3+1.1 x2+0.55 x+0.125=0,的根,A=1,1.1,0.55,0.125;,p=roots(A),p=,-0.5000,-0.3000+0.4000i,-0.3000-0.4000i,例,2.,由给定根向量求多项式系数向量。,R=-0.5,-0.3+0.4*i,-0.3-0.4*i;,P=poly(R),PR=real(P),PPR=poly2str(PR,x),P=1.0000 1.1000 0.5500 0.1250,PR=1.0000 1.1000 0.5500 0.1250,PPR=x3+1.1 x2+0.55 x+0.125,例,3.,求,3,阶方阵,A,的特征多项式,A=11 12 13;14 15 16;17 18 19;PA=poly(A)PPA=poly2str(PA,s),PA=1.0000 -45.0000 -18.0000 -0.0000PPA=s3-45 s2-18 s-2.8387e-015,例,4.,求多项式,f(x)=,x3+4 x2+5 x+6,的导数和,f(2),a=1 4 5 6;,e=,polyder(a,),fx,=poly2str(e,x),f=polyval(e,2),e=3 8 5,fx,=3 x2+8 x+5,f=33,4.3.3,多项式拟合,6,、,P=,polyfit(x,y,n,),多项式拟合,%(,x,y,),为已知的,N,个数据点坐标向量,%n,为阶次,%P,为求出的多项式的系数,例,6.,对于给定数据对,x0,y0,,,求拟合三阶多项式,并图示拟合情况。,x0=0:0.1:1;,y0=-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22;,n=3;,P=polyfit(x0,y0,n),xx=0:0.01:1;,yy,=,polyval(P,xx,);,plot(xx,yy,-b,x0,y0,.r),xlabel(x),P=,56.6915 -87.1174 40.0070 -0.9043,例:曲线拟合,x=0:0.1:1;,y=-.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.30,11.2;,subplot(2,3,1),plot(x,y,o);title(,原始数据点,);,a1=polyfit(x,y,1);xi=linspace(0,1);y1=polyval(a1,xi);,subplot(2,3,2),plot(x,y,o,xi,y1,r);title(,线性拟合,);,a2=polyfit(x,y,2);y2=polyval(a2,xi);,subplot(2,3,3),plot(x,y,o,xi,y2,r);title(,二次拟合,);,a3=polyfit(x,y,3);y3=polyval(a3,xi);,subplot(2,3,4),plot(x,y,o,xi,y3,r);title(,三次拟合,);,a9=polyfit(x,y,9);y9=polyval(a9,xi);,subplot(2,3,5),plot(x,y,o,xi,y9,r);title(,九次拟合,);,a10=polyfit(x,y,10);y10=polyval(a10,xi);,subplot(2,3,6),plot(x,y,o,xi,y10,r);title(,十次拟合,);,4.3.4,多项式插值,7,、,yi,=interp1(x,y,xi,method),插值函数,method,有三种:,linear,cubic,spline,8,、,tc,=interp2(x,y,z,wx,dy,method),二维插值,7.,以上例所给数据,研究一维插值,并观察插值与拟合的区别。,x0=0:0.1:1;,y0=-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22;,xi=0:0.02:1;,yi,=interp1(x0,y0,xi,cubic);,plot(xi,yi,-b,x0,y0,.r),xlabel(x),4.4,函数功能和数值分析函数库,funfun,1,、绘制函数曲线,fplot,(,函数名,,初值,x0,,,终值,xf,),例:绘制正弦函数曲线,y=,sin(t,),法,1,:,t=0:0.02:2*pi;,y=,sin(t,);,plot(t,y,);,法,2,:,fplot(sin,0,2*pi),例:绘制函数 的曲线,function y=,jszero(t,),y=sin(t)2*exp(-3*,t)-abs(t,);,fplot(jszero,-10,10),扩展:,(1)fplot(,函数名,,初值,x0,,终值,xf,,,初值,y0,,终值,yf,线型颜色,),eg:fplot(sin,-2*pi,2*pi,-0.8,0.8,r+),ezplot,ezplot,sin(x,)%,默认自变量范围,-2*pi,2*pi,2,、求函数极值,fminbnd,(,函数名,初值,x0,,,终值,xf,),X=fminbnd(F,x1,x2),如:,m=fminbnd(humps,0,1.5);,3,、求函数零点,fzero,(,函数名,初猜值,x0),X=,fzero,(,humps,1),4.6,符号计算,定义一个符号对象,1.x=,sym(x,),%,将,x,转化为符号对象。,f=3*x2%,符号自变量的函数,符号对象,2.z=a*t2+b*,t+c,syms,a b c t%,定义多个符号变量,z=a*t2+b*,t+c,如,y=sym(2*,sin(x,)*,cos(x,),yy,=,simple(y,);,%,化为最简形式,如,syms,x,y=2*,sin(x,)*,cos(x,),yy,=,simple(y,);,合并同类项,z=sym(3*x2*y+2*x*(y-2)+2*x2-x*(y-2),z=,3*x2*y+2*x*(y-2)+2*x2-x*(y-2),p=collect(z),p=,(3*y+2)*x2+x*(y-2),求积分,int(P,),对表达式,P,进行不定积分。,int(P,v,),以,v,为积分变量对,P,进行不定积分。,int(P,v,a,b,),以,v,为积分变量,以,a,为下限,b,为上限对,P,进行定积分。,eg,:,求定积分,syms,x;,f3=int(sqrt(1-x2),0,1),求,syms,x y z,f2=int(int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2),x,1,2),求导数,diff(S,v),求表达式,S,对变量,v,的一阶导数。,diff(S,v,n),求表达式,S,对变量,v,的,n,阶导数。,如求,sin(x)+e,x,的三阶导数,键入命令,diff(sin(x)+x,*exp(x),3),得,ans,=,-cos(x)+3*exp(x)+x*exp(x),求极限,limit(P),表达式,P,中自变量趋于零时的极限。,limit(P,a),表达式,P,中自变量趋于,a,时的极限。,limit(P,x,a,left),表达式,P,中自变量,x,趋于,a,时的左极限。,limit(P,x,a,right),表达式,P,中自变量,x,趋于,a,时的右极限。,1,例如:求极限,键入,syms,x,limit(sin(x)/x,),得,ans,=1,2,、求极限,limit(1/x,x,0,right),得,ans,=,inf,练习(在,M,文件中完成),1,、用,fplot,,绘制 的函数曲线,2,、求定积分 (提示:用,int,函数),3,、计算表达式,x,cos(x,),的一阶导数、二阶导数和三阶导数。(提示:用,diff,函数),4.7,SIMULINK,动态系统仿真,1,SIMULINK,简介,2 SIMULINK,常用模块介绍,3,仿真参数配置,4,仿真实例,SIMULINK,创建的模型文件扩展名为,mdl,1,SIMULINK,简介,Simulink,是,matlab,下的一个组件,采用图形化的方式对连续或者离散系统进行建模和仿真。,在,命令窗口输入,simulink,命令启动,SIMULINK,2,SIMULINK,常用模块,sources,模块库,主要用于对仿真模型提供输入信号,sinks,模块库,主要用于接收信号并将信号显示出来,continuous,模块库,主要用于对连续系统,(,微分方程描述,),建模,discrete,模块库,主要用于对离散系统,(,差分方程描述,),建模,Math operations,模块库,主要用于对输入信号进行数学操作,3,仿真参数配置,Simulation,菜单下,Simulation parameters,菜单项,4,仿真实例,仿真一般步骤:,从模块库中选取出相应模块;,连接信号线;,设置仿真参数(系统参数和模块参数);,运行仿真。,信号积分实例,1,、模块选择:,Sine Wave,模块:,Simulink,/Source,模块库;,Integrator,(积分器)模块:,Simulink,/Continuous,模块库;,Mux,(多路复用器)模块:,Simulink,/Signal Routing,模块库;,Scope,模块:,Simulink,/Sinks,模块库;,2,、,参数保持默认设置,模块搭建:,仿真结果:,黄色线条:正弦波,紫色线条:正弦波积分后的波形,
展开阅读全文