matlab教学ppt第四章.ppt

上传人:tia****nde 文档编号:12707163 上传时间:2020-05-14 格式:PPT 页数:44 大小:739.50KB
返回 下载 相关 举报
matlab教学ppt第四章.ppt_第1页
第1页 / 共44页
matlab教学ppt第四章.ppt_第2页
第2页 / 共44页
matlab教学ppt第四章.ppt_第3页
第3页 / 共44页
点击查看更多>>
资源描述
杨惠-matlab语言及应用-第四章,第四章、数值计算,杨惠-matlab语言及应用-第四章,内容提要,1、矩阵的相关计算2、线性方程组的解3、多项式和卷积4、拟合与插值5、matlab的泛函指令6、符号计算,4.1矩阵的相关计算,Matlab的相关指令:det(A)inv(A)rank(A)d=eig(A)V,D=eig(A),求矩阵A的行列式,求矩阵A的逆,求矩阵的秩计算A的特征值,以向量形式存放(d)计算A的特征向量阵V和特征值对角阵D,例题开讲,计算A的逆矩阵、特征值及特征向量?,det(A)inv(A)rank(A)d=eig(A)V,D=eig(A),4.2线性方程组的解,关于线性方程组的解法一般可以分为两类:,(2)迭代法:是用某种极限过程去逐渐逼近方程组精确解的方法,适用于解大型稀疏矩阵方程组。,(1)直接法:通过矩阵的变形、消去直接得到方程的解,适用于解低阶稠密矩阵(阶数大约150)方程组。,1、利用左除运算符的直接解法2、利用矩阵求逆的方法求解线性方程组,1、jacobi迭代法2、Gauss-Serdel迭代法3、超松弛迭代法4、两步迭代法,杨惠-matlab语言及应用-第四章,4.2线性方程组的解,在matlab中,线性方程组的直接求解方法:矩阵除法,例:求解下列方程组。,在matlab命令窗中的指令是:a=0.40960.2943;0.17840.3927;b=0.40430.15500.4240-0.2557;X=ab,求解下列线性方程组:(矩阵求逆法),在matlab命令窗中的指令是:a=0.40960.2943;0.17840.3927;b=0.40430.15500.4240-0.2557;X=inv(a)*b,4.3多项式计算,1、多项式的表示:MATALB中,用一个向量来表示多项式。这个向量中按照降幂的顺序排列多项式的各项系数。,在MATLAB中为:p=1,0,-2,5;,说明:如果多项式中缺某幂次项,则认为该项的系数为零。,4.3多项式计算,2、多项式的四则运算:,1、Matlab没有提供专门的多项是加减运算函数。依靠加减运算符直接完成,2、多项式乘法运算conv(p1,p2),3、多项式除法运算Q,r=deconv(p1,p2),p1=conv(p2,Q)+r,杨惠-matlab语言及应用-第四章,例题开讲,4.3多项式计算,3.多项式值的计算:,y=polyval(p,x);,y=polyvalm(p,x);,功能:按数组运算规则计算多项式的值。其中x可以是标量和数组。,功能:按矩阵运算规则计算多项式的值。其中x必须为方阵。,杨惠-matlab语言及应用-第四章,例题开讲,P=231;X=123;321;213;,y=polyval(P,X),y=polyvalm(P,X),y=2*X.*X+3*X+ones(size(X),y=2*X*X+3*X+eye(size(X),4.3多项式计算,4、多项式的根,R=roots(P),功能:计算多项式P的根。,P=1-6-72-27;R=roots(P),4.3多项式计算,有理多项式的部分分式展开:,r,p,k=residue(b,a);,有理多项式有两种表示方法:,b,a=residue(r,p,k);,4.3多项式计算,6.多项式求导,q=polyder(p);,具体用法:(1)q=polyder(p)可以得到多项式p的导数。,(2)q=polyder(a,b)可以求出多项式a,b之积的导数。,(3)p,q=polyder(b,a)可以求出多项式之比b(s)/a(s)的导数。,1、矩阵的相关计算2、线性方程组的求解3、多项式和卷积,Matlab的相关指令:det(A)inv(A)rank(A)d=eig(A)V,D=eig(A),1、利用左除运算符的直接解法2、利用矩阵求逆的方法求解线性方程组,Matlab的相关指令:conv(p1,p2)q,r=deconv(p1,p2)y=polyval(p,x)y=polyvalm(p,x)roots(p)r,p,k=residue(b,a)b,a=residue(r,p,k)q=polyder(p)q=polyder(a,b)p,q=polyder(b,a),review,4.3多项式计算,7.多项式曲线拟合,p=polyfit(x,y,n);,4.4拟合与插值,在matlab中实现最小二乘法拟合通常可以采用如下两种途径:(1)利用polyfit函数进行多项式拟合。(2)利用矩阵除法解决复杂型函数的拟合。,4.4拟合与插值,p=polyfit(x,y,n);,%给定数据对x0=0:0.1:1;y0=-.44,1.97,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,MarkerSize,20),xlabel(x),拟合:寻找一条“平滑”曲线来最好的表现带噪声的“测量数据”。但并不要求拟合曲线穿过这些“测量数据”点。,4.4拟合与插值,插值:是在认定所给“基准数据”完全正确的情况下,研究如何“平滑”的估算出“基准数据”之间其它点的函数值。因此,插值所得曲线一定穿过“基准数据”。,%给定数据对x0=0:0.1:1;y0=-.44,1.97,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,MarkerSize,20),xlabel(x),4.4拟合与插值,其中:(1)x,y是测量数据对;(2)xs是需要内插的点所构成的向量。(3)method是指所使用的内插方法。,ys=interp1(x,y,xs,method);,说明:interp1仅是插值指令的一种,还有interp2、interp3等。,插值算法:nearest,linear,spline,cubic,4.4拟合与插值,1)最邻近插值方法(nearest),插值点的值与其最邻近的点的函数值相等。,*,*,*,*,*,4.4拟合与插值,2)线性插值方法(linear),插值点的值在前,后两个数据点所构成的直线上。,*,*,*,*,*,4.4拟合与插值,3)三次样条插值方法(spline),利用一系列样条函数获得内插数据点,从而确定已有数据点之间的函数。,4)三次曲线内插方法(cubic),构造三次曲线函数来拟合已知数据x、y,从而确定内插点的值。,4.4拟合与插值,说明:1、四种插值方法中,x中的数据是单调但不一定距均匀的。2、若已知x为均匀的,则在method前加*,可使执行速度加快。3、按nearestlinearcubicspline的顺序,对内存要求从小到大,执行速度由快到慢,平滑度由差到好。,给出概率积分的数据如下表所示:,x=0.46:0.01:0.49;f=0.48465550.49375420.50274980.5116683;formatlonginterp1(x,f,0.472)interp1(x,f,0.472,nearest)interp1(x,f,0.472,spline)interp1(x,f,0.472,cubic)formatshort,4.5matlab的泛函指令,主要内容:1、数值积分2、解微分方程,在matlab中,凡是以“函数”为输入宗量的指令,都被统称为matlab的泛函指令。,q=quad(fun,a,b)q=quadl(fun,a,b),t,y=ode45(fun,tspan,y0),被处理“函数”fun可以有三种形式:(1)字符串表达式(2)内联函数(3)“M函数文件”的函数句柄,4.5.1数值积分,例:求以下的定积分。其精确值为0.7468204,%(1)使用字符串表示被处理函数fun=exp(-x.*x);,%(2)调用积分指令求积分值E1=quad(fun,0,1)E2=quadl(fun,0,1),区别:求数值积分是采取不同的方法,4.5.2常微分方程求解,例:求下列微分方程在初始条件x(0)=1,dx(0)/dt=0下的解。,(1)将高阶微分方程改写成一阶微分方程令y1=x,y2=dx/dt,于是二阶微分方程可以改写成如下的一阶微分方程组,设u=2,%(2)根据一阶微分方程组编写M函数文件dydt.mfunctionydot=dydt(t,y)mu=2;ydot=y(2);mu*(1-y(1)2)*y(2)-y(1);,%(3)结算微分方程tspan=0,30;y0=1;0;tt,yy=ode45(dydt,tspan,y0)tt,yy=ode45(dydt,tspan,y0),杨惠-matlab语言及应用-第四章,例题开讲,例:微分方程组当t=0时,x1(0)=1,x2(0)=-0.5,求微分方程在t0,25上的解。,functiondx=equationy(t,x)dx=-x(1)+0.5;x(1)-4*x(2);,x0=1;-0.5;tspan=0,25;T,X=ode45(equationy,tspan,x0),4.6符号计算,1、符号对象和符号表达式,2、符号微积分,4.6符号计算,4.6.1、符号表达式的生成,规定:(1)在定义符号运算时,首先要定义基本的符号对象,然后用这些基本符号对象去构成新的表达式,进而从事所需的符号运算。(2)在运算中,凡是包含符号对象的表达式所生成的衍生对象也都是符号对象。,生成方式:指令sym、syms,4.6符号计算,符号对象的建立:符号变量名=sym(符号字符串)symsargv1argv2argvk,常量、变量、函数或表达式,例题开讲,例一:a=sym(a);b=sym(b);c=sym(c);x=5;y=-8;z=11;w=a*a+b*b+c*cw=x*x+y*y+z*z,例二:symsxh;y=sym(h*2*sin(x)*cos(x)y=simple(y),按规则把已有的y符号表达式化为最简形式,例二:pi1=sym(pi);k1=sym(8);k2=sym(3);pi2=pi;r1=8;r2=3;sin(pi1/3)sin(pi2/3)sqrt(k1+sqrt(k2)sqrt(r1+sqrt(r2),例题开讲,例题开讲,例:求以下矩阵的行列式值、逆和特征根。,symsa11a12a21a22;A=a11,a12;a21,a22DA=det(A)IA=inv(A)EA=eig(A),4.6符号计算,建立符号表达式:1)利用单引号生成2)用sym函数建立符号表达式3)使用已经定义的符号变量组成符号表达式,y=1/sqrt(2*x)U=sym(3*x2-5*y+2*x*y+6),symsxy;V=3*x2-5*y+2*x*y+6,4.6符号计算,4.6.2符号极限,limit(F,x,a)limit(F),计算符号表达式F在xa条件下的极限值,计算a=0时的极限,symsxath;limit(sin(x)/x)limit(1+2*t/x)(3*x),x,inf),4.6符号计算,4.6.3符号积分,intf=int(f,v)intf=int(f,v,a,b),给出f对指定变量v的不定积分,给出f对指定变量v的定积分,说明:当f是矩阵时,积分将对矩阵中的元素逐个进行。,例:求,symsabx;f=a*x,b*x2;1/x,sin(x);int(f)%pretty(int(f),4.6符号计算,4.6.4符号微分,f=diff(f,v,n),求,symsatx;f=a,t3;t*cos(x),log(x);df=diff(f)%求矩阵f对x的导数dfdt2=diff(f,t,2)%求矩阵f对t的二阶导数dfdxdt=diff(diff(f,x),t)%求二阶混合导数,例:,4.5.1求函数的零点,例:求以下函数的零点。,z,f-z,exitflag=fzero(fun,x0,option,p1,p2),零点初始猜测值,向函数fun传递的参数,P1=0.1;P2=0.5;y_C=sin(x).2.*exp(-P1*x)-P2*abs(x);x=-10:0.01:10;Y=eval(y_C);plot(x,Y,r);holdonplot(x,zeros(size(x),k);xlabel(t);ylabel(y(t)holdoffzoomontt,yy=ginput(5);zoomoffttt4,y4,exitflag=fzero(y_C,tt(4),P1,P2),%(2)作图法观察函数零点分布x=-10:0.01:10;%对自变量采样,采样步长不宜太大。Y=eval(y_C);%在采样点上计算函数plot(x,Y,r);holdon,plot(x,zeros(size(x),k);xlabel(t);ylabel(y(t),holdoff,%(3)利用zoom和ginput指令获得零点的初始近似值zoomon%在MATLAB指令窗中运行,获局部放大图tt,yy=ginput(5);zoomoff%在MATLAB指令窗中运行,用鼠标获零点猜测值。tt,%(4)求靠近tt(4)的精确零点t4,y4,exitflag=fzero(y_C,tt(4),P1,P2),%(1)使用字符串表示被处理函数P1=0.1;P2=0.5;%按泛函指令要求,这里参数必须用P1,P2表示y_C=sin(x).2.*exp(-P1*x)-P2*abs(x);%这里自变量必须用x表示,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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