《MATLAB的数值运算》PPT课件.ppt

上传人:tia****nde 文档编号:11499103 上传时间:2020-04-26 格式:PPT 页数:48 大小:271.50KB
返回 下载 相关 举报
《MATLAB的数值运算》PPT课件.ppt_第1页
第1页 / 共48页
《MATLAB的数值运算》PPT课件.ppt_第2页
第2页 / 共48页
《MATLAB的数值运算》PPT课件.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
第二章MATLAB的数值运算,MATLAB具有强大的数值运算能力,它是基于矩阵的运算工具。2.1基本语法结构MATLAB语言的所有运算都是基于矩阵运算来完成的所有变量都定义为矩阵所有的运算都是关于矩阵的运算。对于传统的标量运算,在MATLAB中单独定义了点运算。2.1.1变量与赋值语句(1)变量名称:字母+数字,以字母开头,长度最大为63个字母,区分大小写(2)变量性质:全为矩阵,size()函数。,2.1基本语法结构,A=12;34;56;size(A)ans=32矩阵用“”作为标识符,1*1矩阵可省略“”。矩阵的行元素之间用空格或“,”分隔,各行之间用“;”分隔。如:A=12;34;56%或A=1,2;3,4;5,6A=123456,2.1基本语法结构,(3)变量赋值常数赋值:如上例中矩阵A的赋值,x=9;字符串赋值:f1=Thisisastring;表达式赋值:f2=exp(-2*x)*sin(x/5);(4)变量查询(A)变量值的查询:直接键入变量名(B)变量信息:who,whos命令whosANameSizeBytesClassA3x248doublearrayGrandtotalis6elementsusing48bytes,2.1基本语法结构,2.1.2函数语句MATLAB中除赋值语句外的其他语句a=123;b=4;5;6;%赋值语句c=a*b%乘运算x=0.9;y=sin(x);2.1.3结构变量1.结构变量的创建1)直接创建patient.name=hello;patient.bill=50;patient.home=jinan;,patientpatient=name:hellobill:50home:jinanpatient(2).name=web;patient(2).bill=89;patient(2).home=uk;2)利用结构函数创建S=STRUCT(field1,VALUES1,field2,VALUES2,.)s=struct(type,big,little,color,red,x,34),数据的显示格式,2.1.4变量精度MATLAB中一律使用双精度数可用format命令设置数据的显示格式format只是影响结果的显示,不影响计算与存储。format(short):短格式(5位定点数)formatlong:长格式(15位定点数)formatshorte:短格式e方式formatlonge:长格式e方式formatbank:2位十进制99.12(银行货币形式)formathex:十六进制格式,2.1.5永久变量,matlab中预定义的一些特殊的量。i,j虚数单位Realmin最小的正浮点数,pi圆周率Realmax最大的浮点数,eps浮点运算的相对精度Inf无穷大NaNnotanumber,不定值,1/0Warning:Dividebyzero.ans=Inf0/0Warning:Dividebyzero.ans=NaN,2.2矩阵运算,2.2.1矩阵变量赋值方法1.直接赋值a=11+2i;2+iexp(1)a=1.00001.0000+2.0000i2.0000+1.0000i2.71832.增量赋值格式:x=初值:增值:终值x=1:0.1:1.2x=1.00001.10001.2000增量缺省时默认为1,2.2.1矩阵变量赋值方法,3.初等矩阵赋值zeros(m,n)m*n全0矩阵ones(m,n)m*n全1矩阵eyes(m,n)m*n单位矩阵rand(m,n)m*n随机矩阵,01之间均匀分布randn(m,n)m*n随机矩阵,正态分布,期望值0rand(3,4)ans=0.92180.40570.41030.35290.73820.93550.89360.81320.17630.91690.05790.0099,2.2.1矩阵变量赋值方法,例2.9已知控制系统的3个特征根,构造系统的伴随矩阵。sysroot=-123;%3个特征根a=poly(sysroot);%得到特征方程的系数向量b=a(4),a(3),a(2);comp=zeros(2,1),eye(2);-b;comp=%控制系统的伴随矩阵为010%|01|001%|:.|-6-11-6%|0.1|%|-a(n)a(n-1)-a(2)|,2.2.2矩阵常规运算,矩阵的常规运算应符合矩阵维数的要求,其常规运算符有:+;-;*;.*;;.;/;./a;inv(a)矩阵翻转fliplr,flipud,rot90关于除法左除“”:相当于Ax=B的解,x=A-1B。右除“/”:相当于xA=B的解,x=BA-1a=12;34b=23;c=a/bc=0.61541.3846,2.2.3矩阵特征运算,特征值函数eig()奇异值函数svd()范数函数norm()秩函数rank迹函数:矩阵所有对角线上元素的和称为矩阵的迹。trace()条件数函数:判断矩阵的“病态”程度。cond()矩阵的行列式运算函数det()例:计算矩阵的特征值与奇异值,a=12;34eig(a),ans=-0.37235.3723,svd(a)ans=5.46500.3660,2.2.4矩阵分解运算,1.奇异值分解:对任意矩阵A,存在酉阵U、V,使得U*S*V=A,其中S=diag(s1,s2,sp),si非负,且称si为矩阵A的第i个奇异值U,S,V=svd(X)其中XUSV,a=1;1;U,S,V=svd(a)U=-0.7071-0.7071-0.70710.7071S=1.41420V=-1,2.2.4矩阵分解运算,2.LU分解L,U=lu(A)又称三角分解,目的是分解成一个下三角阵L和一个上三角阵U的乘积,即ALUa=123;241;467;l,u=lu(a),l=0.25000.50001.00000.50001.000001.000000,u=4.00006.00007.000001.0000-2.5000002.5000,2.2.4矩阵分解运算,3.QR分解Q,R=qr(A)做矩阵的正交三角形分解,将矩阵A做正交化分解,使得Q*R=A,其中Q为正交矩阵(其范数为1,指令norm(Q)=1),R为对角化的上三角矩阵。,a=111;2-1-1;2-45;q,r=qr(a)q=-0.3333-0.6667-0.6667-0.6667-0.33330.6667-0.66670.6667-0.3333r=-33-30-3300-3,2.3基本数学函数,MATLAB的基本数学函数十分丰富,包括:三角函数:sin,sinh(双曲正弦),asin(反正弦),asinh,cos,cosh,acos,acosh,atan2(四象限反正切)指数函数:exp,log,log10,sqrt(平方根)复数函数:abs,angle,congj(共轭复数),image,real数值运算:fix(向0取整),floor(向负无穷取整),ceil(向正无穷取整),round(向最近整数圆整)rem(求余),sign(根据符号取值)矩阵函数:expm,logm,例:sin(2)ans=0.9093,log(8)ans=2.0794,2.4点运算,a.ba,b两数组必须有相同的行和列两数组相应元素相乘。a./b都是a的元素被b的对应元素除数组乘方(.)元素对元素的幂,例:a=123;b=456;z=a.2z=1.004.009.00z=a.bz=1.0032.00729.00,2.5逻辑关系运算符,=等于eq=不等于ne大于gt=大于等于ge4:6;7:9;x=5;y=ones(3)*5;xa=xb=010;101;001;a=1:3;4:6;7:9a=123456789ab=aa2=all(a3)a2=11000a11=any(a(:,1)10)a11=1a22=any(a10)a22=11111,a=17241815235714164613202210121921311182529,matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。f(x)=anxn+an-1xn-1+a0可用行向量p=anan-1a1+a0表示poly产生特征多项式系数向量特征多项式一定是n+1维的特征多项式第一个元素一定是1,2.6多相式运算,例:a=123;456;780;p=poly(a)p=1.00-6.00-72.00-27.00p是多项式p(x)=x3-6x2-72x-27的matlab描述方法,我们可用:p1=poly2str(p,x)函数文件,显示数学多项式的形式p1=x3-6x2-72x-27,2.6多相式运算,2.6多相式运算,2.roots求多项式的根a=123;456;780;p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.12-5.73显然r是矩阵a的特征值-0.39,用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00-27.00matlab规定多项式系数向量用行向量表示,一组根用列向量表示。,2.6多相式运算,3.conv,convs多项式乘运算4.deconv多项式除运算5.polyder函数多项式的微分,2.7、代数方程组求解,matlab中有两种除运算:左除和右除。对于方程ax+b,a为anm矩阵,有三种情况:(n为方程个数,m为未知数个数)当n=m时,此方程成为“恰定”方程当nm时,此方程成为“超定”方程当nn=5;d=11.25;y,x,t=step(n,d),ym=max(y)ym=1.4166tm=spline(y,t,ym)tm=1.4435,2.8.2相关分析,主要有两个函数:cov()和corrcoef()1.协方差矩阵函数cov()Cov(X)计算Cov(X)=E(X-EX)T(X-EX)Cov(X,Y)计算两个向量XY的协方差2.相关矩阵系数P=corrcoef(X)计算相关矩阵P=corrcoef(X,Y)计算两个向量XY的相关系数,插值的定义是对某些集合给定的数据点之间函数的估值方法。当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。Matlab提供了一维、二维、三次样条等许多插值选择,2.9函数插值运算,table1table2interp1interp2spline,插值函数,Table1和table2已基本被interp1和interp2代替,2.9函数插值运算,1.一维插值函数interp1调用格式:YI=interp1(x,y,XI,method)X、y是已知的基准数据向量对,且x必须单调排列,XI为插值点坐标值向量,method为插值算法,默认为线性插值。,x=0:2*pi/10:2*pi;y=sin(x);xi=0:2*pi/180:2*pi;yi=interp1(x,y,xi);yii=sin(xi);stem(x,y);holdonplot(xi,yi)plot(xi,yii,r),2.9函数插值运算,2.二维插值函数interp2调用格式:ZI=interp1(x,y,z,XI,YI,method)X、y、z是已知的基准数据,XI、YI自变量对组,method为插值算法,默认为线性插值。3.三次样条函数插值Yy=spline(x,y,xx)根据样点数据(x,y),求xx对应的三次样条插值yy。例:x=0:2*pi/360:2*pi;y=sin(x).*cos(x);xi=0:2*pi/45:2*pi;yi=spline(x,y,xi);plot(x,y)plot(xi,yi,r),2.9函数插值运算,因求f(x)的极大值等价于求-f(x)的极小值,故MATLAB中只有处理极小值的指令X=fminbnd(fun,x1,x2)1.一元函数的极小值点2.多元函数的极小值点X=fminsearch(fun,x0)单纯形法X=fminunc(fun,x0)拟牛顿法X0是一个向量,表示极值点位置的初始猜测例1:f(x)=x2+3x+2在-55区间的最小值f=fminbnd(x2+3*x+2,-5,5)f=-1.5000,2.10函数优化(函数极值点),functionf=myfun01(x)f=x2+3*x+2;s=fminsearch(myfun01,-5)s=-1.5000f=inline(x2+3*x+2);a=fminsearch(f,-5)a=-1.5000,例2:f(x)=100(y-x2)2+(1-x)2在x=-1.2,y=1的最小值functionf=xun(x)f=100*(x(2)-x(1).2).2+(1-x(1).2;X0=-1.2,1;x=fminsearch(xun,x0)x=1.00001.0000,2.10函数优化(函数极值点),2.11数值运算,2.11.1数值积分常用一元函数求闭区间积分运算的函数如下:Quad采用自适应simpson法计算积分,精度较高,较常用Quadl采用自适应lobatto法计算积分,精度高,最常用Trapz采用梯形法求定积分,速度快,精度差Cumsum等宽矩形法求一个区间上的积分曲线,精度差,一般不用调用格式:Quad(l)(fun,a,b,)%fun可为字符串或m函数例:求,fun=exp(-x.*x);quad(fun,0,1),ans=0.7468quadl(fun,0,1)ans=0.7468,quad(exp(-x.*x),0,1)ans=0.7468F=inline(exp(-x.*x);quad(F,0,1)ans=0.7468quad(myfun01,0,1)ans=0.7468,x=12345;diff(x)ans=1111x=12345;25476;02348;diff(x)ans=13131-2-3-1-32,2.11数值运算,2.11.2微分方程数值求解(初值常微分方程)Ode23采用低阶算法ode45采用中阶算法计算步骤:(1)列出微分方程和相应的初始条件(2)运用变量替换,把高阶方程化为一阶微分方程(3)定义描述微分方程的m文件(4)利用ode函数解方程。例:求解微分方程解:(1)降阶,2.11.2微分方程数值求解,(2)定义m函数functionxs=nonel(t,x)xs=zeros(2,1);xs(1)=x(2);xs(2)=-2*x(1)-x(1)2-0.5*x(2);(3)求解,t0=0;tf=20;x0=01;tspn=t0tf;t,x=ode23(nonel,tspn,x0);plot(t,x),2.11数值运算,2.11.3非线性方程组数值求解FSOLVE(FUN,X0)使用最小二乘法求解非线性方程组,其中FUN为定义的方程组,X0为初值向量或初值矩阵。例:求解非线性方程组初值为x(0)=Y(0)=z(0)=1先定义方程组的m函数equ.m:functionxs=equ(xi)x=xi(1);y=xi(2);z=xi(3);xs=zeros(3,1);xs(1)=sin(x)+y2+log(z)-7;xs(2)=3*x+2y-z3+1;xs(3)=x+y+z-5;,x0=111;xyz=fsolve(equ,x0)xyz=0.59912.39592.0050,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!