Matlab基础及其应用教程复习.ppt

上传人:sh****n 文档编号:2819753 上传时间:2019-11-30 格式:PPT 页数:61 大小:1.02MB
返回 下载 相关 举报
Matlab基础及其应用教程复习.ppt_第1页
第1页 / 共61页
Matlab基础及其应用教程复习.ppt_第2页
第2页 / 共61页
Matlab基础及其应用教程复习.ppt_第3页
第3页 / 共61页
点击查看更多>>
资源描述
Matlab基础及其应用教程复习,第三章 MATLAB数值运算,3.1 多项式 3.2 插值和拟合 3.3 数值微积分 3.4 线性方程组的数值解,3.1 多 项 式,3.1.1 多项式的表达和创建 3.1.2多项式的四则运算 多项式的四则运算包括多项式的加、减、乘、除运算。 Polyadd函数。,多项式的四则运算法则,相加:polyadd(a,b) ; a,b为多项式 相减:polyadd(a,-b); 相乘:c=conv(a,b);其中a, b 代表两个多项式的系数向量,函数conv 也可以嵌套使用,如conv(conv(a,b),c)。 相除:q,r=deconv(a,b),其中q为整除的多项式,r为余数多项式。,例3.2 调用polyadd函数来完成两个不同阶次多项式: 的相加运算。 m=1 2; n=1 4 7; s=polyadd(m,n) s= 1 5 9,,,例3.4完成两个同阶次多项的相乘运算。, a=1 2 3 4; b=1 4 9 16; e = conv(a,b) e = 1 6 20 50 75 84 64,【例 3.3】 完成两个同阶次多项式: 的相减运算。 a=1 2 3 4; b=1 4 9 16; d=polyadd(a,-b) d = 0 -2 -6 -12,例3.7 求商多项式及余多项式。, p1=conv(1,0,1,conv(1,2,1,1); % 计算分子多项式 p2=1 0 1 1; % 注意缺项补零 q,r=deconv(p1,p2),q = 1 3 r = 0 0 2 -1 -1 即表示商多项式为s+3,余多项式为 。,3.1.3多项式求值和求根运算,多项式求值y = polyval(p,x) 利用 polyval 函数找出 在 s=3 处的值: p=1 2 -12 -1 7; z=polyval(p,3) z = 31 2. 多项式求根x=roots(P),求多项式 的根并验证。 p=1 -3 2; roots(p) ans = 2 1 polyval(p,2), polyval(p,1) ans = 0 ans = 0,3.2 插 值 和 拟 合,插值和拟合 的概念。 插值:构造一个简单函数P(x)作为f(x)的近似,然后通过处理P(x)获得关于f(x)的结果,要求近似函数P(x)取给定的离散数据,则P(x)为f(x)的插值函数。 拟合:根据N个给定的点求一条近似曲线,所求的近似曲线并不要求通过所有给定的点,只要求函数能够反映数据的基本变化趋势。,1多项式插值函数: yi = interp1(x,y,xi,method) 其中x和y是原已知数据的x、y值,xi是要内插的数据点,method是插值方法 。插值方法有:nearest ,linear ,spline ,cubic。其中nearest为寻找最近数据节点,由其得出函数值;linear为线性插值;spline为样条插值函数,在数据节点处光滑,即左导等于右导;cubic为三次方程式插值。,例3.16:取余弦曲线上11个点的自变量和函数值点作为已知数据,再选取41个自变量点,分别用分段线性插值、三次方程式插值和样条插值三种方法计算确定插值函数的值。, x=0:10; y=cos(x); xi=0:.25:10; y0=cos(xi); %精确值 y1=interp1(x,y,xi); %线性插值结果 y2=interp1(x,y,xi,cubic); %三次方程式插值结果 y3=interp1(x,y,xi,spline); %样条插值结果 plot(xi,y0,o,xi,y1,xi,y2,-.,xi,y3) subplot(3,1,1);plot(xi,y1-y0);grid on subplot(3,1,2);plot(xi,y2-y0);grid on subplot(3,1,3);plot(xi,y3-y0);grid on 3 种插值方法比较如图3.1 所示,将3 种插值结果分别减去直接由函数计算的值,得到其误差如图3.2 所示。从图3.2 可以看出,样条插值和三次方程式插值效果较好,而分段线性插值则较差。,图3.1 3 种插值方法比较图,图3.2 3 种插值方法的误差,2多项式拟合函数: p=polyfit(x,y,n) p,s=polyfit(x,y,n) 其中x,y为已知的数据组,n为要拟合的多项式的阶次,向量p为返回的要拟合的多项式的系数,向量s为调用函数polyval获得的错误预估计值 。 一般来说,多项式拟合中阶数n越大,拟合的精度就越高 。,例3.18:对向量X=-2.8 -1 0.2 2.1 5.2 6.8和Y=3.1 4.6 2.3 1.2 2.3 -1.1分别进行阶数为3、4、5的多项式拟合,并画出图形进行比较。 x=-2.8 -1 0.2 2.1 5.2 6.8; y=3.1 4.6 2.3 1.2 2.3 -1.1; p3=polyfit(x, y, 3); % 用不同阶数的多项式拟合x 和y p4=polyfit(x, y, 4); p5=polyfit(x, y, 5); xcurve= -3.5:0.1:7.2; % 生成x 值 p3curve=polyval(p3, xcurve); % 计算在这些x 点的多项式值 p4curve=polyval(p4, xcurve); p5curve=polyval(p5, xcurve); plot(xcurve,p3curve,-,xcurve,p4curve,-.,xcurve,p5curve,-,x,y,*);,3.3.2 牛顿-科茨系列数值积分公式,考虑一个积分式的数学式 ,其中 a,b 分别为这个积分式的上限及下限,f(x)为要积分的函数。不论在实际问题中的意义如何,该积分在数值上都等于曲线y=f(x),直线x=a、x=b 与x 轴所围成的曲边梯形的面积。因此,不管f(x)以什么形式给出,只要近似地计算出相应的曲边梯形的面积,就得到了所给定积分的近似值。 求解定积分的数值方法基本思想:将整个积分区间a,b分成n 个子 区间 其中 这样求 定积分问题就分解为求和问题。,MATLAB 提供了在有限区间内,数值计算某函数积分的函数,它们分别是cumsum(矩形积分),trapz(梯形积分),quad(辛普森积分),quadl(科茨积分,也称高精度数值积分)。,3.4 线性方程组的数值解,3.4.1 直接法 1. 矩阵相除法 在MATLAB 中,线性方程组AX=B 的直接解法是用矩阵除来完成的,即X=AB。若A 为m n的矩阵,当m = n且 A可逆时,给出唯一解;当n m时,矩阵除给出方程的最小二乘解;当n m时,矩阵除给出方程的最小范数解。,【例3.31】求解下列线性方程组 a=1/2 1/3 1;1 5/3 3;2 4/3 5; %A为33 矩阵,n=m b=1;3;2; c=ab %因为n=m,且A 可逆,给出唯一解 c = 4 3 -2 由此得知方程组的解为1 2 3 x = 4, x = 3, x = 2。注意:矩阵B 为列向量。,习题讲解,教材 P102 3.8习题 2、3、5。,练习,1.多项式的四则运算 2.插值与拟合。 已知: x0=0,1,2,3,4,5,6; y0=0,2.24,2.83,3.00,2.83,2.24,0 求(1)在区间0,6上对已知点分别进行线性插值,三次方程组插值。 (2)在区间0,6上对已知点分别进行二次拟合,三次拟合,并求出相应的拟合多项式。,第4章 MATLAB符号运算,4.1 符号对象及其表达方式 4.2 符号算术运算 4.3 独立变量与表达式化简 4.4 符号微积分运算 4.5 方程的解析解,4.1 符号对象及其表达方式,符号对象是对参与符号运算的各种形式量的一个统称。包括符号常量、符号变量、符号表达式和符号矩阵或数组.,定义符号变量可以有两种方法: (1)使用sym( )函数: sym(x) (2) 使用syms命令 syms arg1 arg2 . 例: sym(x) %定义符号变量x syms a b c syms m n real,4.1.2 符号表达式,【例4.4】构造符号表达式。 syms x y z r s t; x2+2*x+1 ans = x2+2*x+1 exp(y)+exp(z)2 ans = exp(y)+exp(z)2,例4.5构造符号矩阵 S=sym(l,x,y,z;n,u,v,w;a,b,c,d;g,h,j,p) H=sym(cos(t), -sin(t); sin(t), cos(t) 例4.6 用sym()函数将数值矩阵转换成符号矩阵。 先建立一个数值矩阵,例如: M=1.1, 1.2, 1.3; 2.1, 2.2, 2.3; 3.1, 3.2, 3.3 再通过sym命令可直接将数值矩阵转换为符号矩阵,例如: S=sym(M),4.2 符号算术运算,4.2.1 符号对象的加减 A+B、A-B 例4.9 求两个符号表达式的和与差 syms x fx gx % 定义符号变量于符号表达式 fx = 2*x2+3*x-5 gx= x2-x+7 fx+gx fx-gx 4.2.2 符号对象的乘除 A*B、A/B可分别用来求A和B两个符号矩阵的乘法与除法。A.*B则用来实现两个符号数组的乘法。其中矩阵除法也可用来求解符号线性方程组的解。,例4.10已知多项式 求两个多项式的积和商。 syms x fx gx fx = 3*x5-x4+2*x3+x2+3 gx= 1/3*x3+x2-3*x-1 fx*gx expand(fx*gx) %展开积的符号表达式 fx/gx expand(fx/gx) %展开商的符号表达式,4.3 表达式化简,MATLAB提供了化简和美化符号表达式的各种函数,具体有:合并同类项(collect)、多项式展开(expand)、因式分解(factor)、一般化简(simplify)、不定化简(simple)、通分(numden)和书写格式美化(pretty)。,4.4 符号微积分运算,4.4.1 符号极限 求解极限limit( )函数 4.4.2 符号微分 diff( )函数可用来求解符号对象的微分 4.4.3 符号积分 MATLAB提供的符号函数积分int( )的函数,既可以计算不定积分又可以 计算定积分、广义积分,习题讲解,教材P154 习题 1、4、7、12,练习,1.符号算术运算 2.符号表达式的化简 3.符号微积分运算,第5章 MALAB数据可视化,5.1 二维图形 创建图形窗口 figure 2. 关闭与清除图形窗口 以close命令关闭图形窗口,其调用方式有: (1)close:关闭当前图形窗口,等效于close(gcf); (2)close(h):关闭图形句柄h指定的图形窗口; (3)close all:关闭除隐含图形句柄的所有图形窗口; 清除当前图形窗口中使用如下命令: (1)clf:清除当前图形窗口所有可见的图形对象。,5.1.2 基本二维图形绘制,在MATLAB中,主要的二维绘图函数如下: (1)plot(x,y):x轴和y轴均为线性刻度; (2) plotyy: 绘制双纵坐标图形。,例5.1 用plot函数画出sin(x2)在x0, 5之间的图形。 x=0:0.05:5; % x坐标从0到5 y=sin(x.2); % 对应的y坐标 plot(x,y); % 绘制图形 输出图形如图5.2所示。,函数plotyy 可以绘制两条具有不同纵坐标的曲线,调用格式为 plotyy(x1,y1,x2,y2),例5.3,x=0:pi/180:2*pi; y1=exp(-0.3*x).*cos(2*x);y2=10*exp(-1.5*x); plotyy(x,y1,x,y2) 输出图形如图 所示。,具有不同纵坐标的图形,5.1.3 其他类型的二维图,在MATLAB中,还有其他的绘图函数,可以绘制不同类型的二维图形,以满足不同的要求.表5.1列出了这些绘图函数。 表5.1 其他绘图函数,例5.4画极坐标图示例。 t=0:.01:2*pi; % 极坐标的角度. figure polar(t,abs(cos(2*t); 输出图形如图5.5所示。,5.1.4 色彩和线型,在MATLAB中为区别画在同一窗口中的多条曲线,可以改变曲线的颜色和线型等图形属性,plot函数可以接受字符串输入变量,这些字符串输入变量用来指定不同的颜色和线型。,表5.2 plot绘图函数的常用参数,例5.8 绘制两条不同颜色,不同线型的曲线。 x=0:0.05:20; y1=0.2+sin(-2*x); % 曲线y1 y2=sin(x.0.5); % 曲线y2 figure plot(x,y1,g+,x,y2,r-); %曲线y1用绿色加号线型表示,曲线y2用红色虚线表示 输出图形如图5.9所示。,5.1.5 坐标轴及标注,MATLAB在绘图时会根据数据的分布范围自动选择坐标轴的刻度范围,ATLAB同时提供了函数axis指定坐标轴的刻度范围其调用格式为: axis(xmin,xmax,ymin,ymax) 函数中 xmin,xmax,ymin,ymax分别表示x轴的起点、终点, y轴的起点、终点。,MATLAB还提供了一些图形的标注命令(见表5.3),可以对每个坐标轴单独进行标注,在图形的任意位置上放置文本以注解图形,还可以加上网格线以确定曲线上某一点的坐标值,还可以用hold on/off 实现保持原有图形或刷新原有图形。,表5.3 常用图形标注命令,例5.9 图形标注示例。 x=0:0.05:5 ; figure y1=exp(0.4.x)-1.5;y2=sin(x*4); plot(x,y1,x,y2,r-.) % 曲线y2用红色点划线表示. line(0,5,0,0) % 在(0,0)和(5,0)之间画直线,代替横坐标. xlabel(Input);ylabel(Output); % x轴标注Input, y轴标注Output title(Two Function); % 图形标题Two Function legend(y1=exp(0.4.x)-1.5,y2=sin(x*4) % 注解图形. grid on % 显示网格线 输出图形如图5.11所示。,例5.10子图绘制示例。 x=linspace(0,2*pi,100); %x轴从02取100点 subplot(2,2,1);plot(x,sin(x); %视窗的第一行第一列画sin(x), xlabel(x);ylabel(y); title(sin(x) %x轴加注解x,y轴加注解y,加标题sin(x) subplot(2,2,2);plot(x,cos(x); xlabel(x);ylabel(y); title(cos(x); subplot(2,2,3);plot(x,exp(x); xlabel(x);ylabel(y); title(exp(x); subplot(2,2,4);plot(x,exp(-x); xlabel(x);ylabel(y); title(exp(-x); 输出图形如图5.13所示。,5.2 三维图形,5.2.1 三维曲线图,用函数plot3可以绘制三维图形,其调用格式有: (1)plot3(X1,Y1,Z1,.):X1、Y1、Z1为向量或矩阵,表示图形的三维坐标。该函数可以在同一图形窗口一次画出多条三维曲线,X1,Y1,Z1,. Xn,Yn,Zn指定各条曲线的三维坐标; (2)plot3(X1,Y1,Z1,LineSpec,.):以LineSpec指定的属性绘制三维图形;,例5.11绘制三维曲线示例。 t=0:0.05:20; figure subplot(2,2,1); plot3(sin(t),cos(t),t); % 画三维曲线 grid, text(0,0,0,0); % 在x=0,y=0,z=0处标记”0” title(Three Dimension); xlabel(sin(t),ylabel(cos(t),zlabel(t); subplot(2,2,2);plot(sin(t),t); % 三维曲线在x-z平面的投影 grid title(x-z plane); xlabel(sin(t),ylabel(t); subplot(2,2,3);plot(cos(t),t); % 三维曲线在y-z平面的投影 grid title(y-z plane); xlabel(cos(t),ylabel(t); subplot(2,2,4);plot(sin(t),cos(t); % 三维曲线在x-y平面的投影 title(x-y plane); xlabel(sin(t),ylabel(cos(t); grid 输出图形如图5.14所示。,5.2.2 三维曲面图,可用surf、surfc函数来绘制三维曲面图,调用格式如下: (1)surf(Z):以矩阵Z指定的参数创建一渐变的三维曲面,坐标x = 1:n,y = 1:m,其中m,n = size(Z),进一步在x-y平面上形成所谓“格点”矩阵X,Y=meshgrid(x,y),Z为函数z=f(x,y)在自变量采样“格点”上的函数值,Z=f(X,Y)。Z既指定了曲面的颜色,也指定了曲面的高度,所以渐变的颜色可以和高度适配。所谓“格点”如图所示。,三维曲面与格点,(2)surf(X,Y,Z):以Z确定的曲面高度和颜色,按照X、Y形成的“格点”矩阵,创建一渐变的三维曲面。X、Y可以为向量或矩阵,若X、Y为向量,则必须满足m= size(X),n = size(Y),m,n = size(Z)。,例5.12 绘制球体的三维图形。 figure X,Y,Z=sphere(30); %计算球体的三维坐标 surf (X,Y,Z); %绘制球体的三维图形 xlabel(x),ylabel(y),zlabel(z); title(SURF OF SPHERE) 输出图形如图5.16所示。,2标准三维曲面,(1) 用sphere 函数绘制三维球面,调用格式为 x,y,z=sphere(n) 产生(n+1)(n+1)矩阵x,y,z,采用这3 个矩阵绘制圆心位于原点,半径为1 的球体。n决定球面的光滑程度,默认值为20。 (2) 用cylinder 函数绘制三维柱面,调用格式为 x,y,z=cylinder(R,n) R 是一个向量,存放柱面各等间隔高度上的半径,n 表示圆柱圆周上有n 个等间隔点,默认值为20。 (3) 多峰函数peaks,常用于三维函数的演示。函数形式为 调用格式为 z=peaks(n) 生成一个nn 的矩阵z,n 的默认值为48;z=peaks(x,y):根据网格坐标矩阵x,y 计算函数值矩阵z。,【例5.15】 绘制三维标准曲面。 t=0:pi/20:2*pi; x,y,z=sphere; subplot(1,3,1); surf(x,y,z);xlabel(x),ylabel(y),zlabel(z); title(球面) x,y,z=cylinder(2+sin(2*t),30); subplot(1,3,2); surf(x,y,z);xlabel(x),ylabel(y),zlabel(z); title(柱面) x,y,z=peaks(20); subplot(1,3,3); surf(x,y,z);xlabel(x),ylabel(y),zlabel(z); title(多峰);,图5.20 三维标准曲面,输出图形如图5.20 所示。因柱面函数的R 选项2+sin(2*t),所以绘制的柱面是 一个正弦型的。,5. 4函数绘图,5.4.1一元函数绘图,利用符号函数,我们可以通过ezplot函数绘制任意一元函数,其调用格式为: (1)ezplot(f):按照x的缺省取值范围(-2*pix2*pi)在绘制f=f(x)的图形。对于f=f(x,y),x、y的缺省取值范围:-2*pi x 2*pi,、-2*pi y2*p,绘制f(x,y) = 0的图形; (2)ezplot(f,min,max):按照x的指定取值范围(minxmax)绘制函数f=f(x)的图形。对于f=f(x,y),ezplot(f,xmin,xmax,ymin,ymax),按照x、y的指定取值范围(xminxxmax,yminyymax),绘制f(x,y) = 0的图形; (3)ezplot(x,y):按照t的缺省取值范围(0t2*pi)绘制函数x=x(t)、y=y(t)的图形; (4)ezplot(f,xmin,xmax,ymin,ymax):按照指定的x、y取值范围(xminxxmax,yminyymax)在图形窗口绘制函数f=f(x,y)的图形; (5)ezplot(x,y,tmin,tmax):按照t的指定取值范围(tminttmax)在绘制函数x=x(t)、y=y(t)的图形;,例5.22 一元函数绘图示例。 f=x.2+y.2-16; ezplot(f) 输出图形如图5.29所示。,例5.23 一元函数绘图示例。 x=3*t*sin(t); y=t*cos(t); ezplot(x,y,0,8*pi) 输出图形如图5.30所示。,5.4.2 二元函数绘图,对于二元函数z=f(x,y),同样可以借用符号函数提供的ezmesh函数绘制各类图形;也可以用meshgrid函数获得矩阵z,或者用循环语句for(或while)计算矩阵z的元素,然后用5.3节介绍的函数绘制二元函数图。,1. ezmesh函数 该函数的调用格式如下: (1)ezmesh(f) :按照x、y的缺省取值范围(-2*pix2*pi, -2*piy2*pi)绘制函数f(x,y)的图形; (2)ezmesh(f,domain):按照domain指定的取值范围绘制函数f(x,y)的图形,domain 可以是41的向量:xmin, xmax, ymin, ymax;也可以是21的向量:min, max,此时,minxmax,min y max。 (3)ezmesh(x,y,z):按照s、t的缺省取值范围(-2*pi s2*pi,-2*pi t2*pi)绘制函数x=x(s,t)、y=y(s,t)和z=z(s,t)的图形; (4)ezmesh(x,y,z,smin,smax,tmin,tmax) 或 ezmesh(x,y,z,min,max):按照指定的取值范围smin,smax,tmin,tmax或min,max绘制函数f(x,y)的图形。 (5)ezmesh(.,n):调用ezmesh绘制图形时,同时绘制nn的网格,n=60(缺省值)。 (6)ezmesh(.,circ):调用ezmesh绘制图形时,以指定区域的中心绘制图形。,例5.24 二元函数绘图示例。 syms x,y; f=sqrt(1-x2-y2); ezmesh(f) 输出图形如图7.31所示。,例5.25 二元函数绘图示例。 syms x y z s t; x=s*cos(t);y=s*sin(t);z=t; ezmesh(x,y,z,0,pi,0,5*pi) 输出图形如图5.32所示。,习题讲解,作业1:教材P212 习题 1、2、3、4 作业2:教材P212 习题 5、6 实验三 MATLAB数据可视化,练习,1.二维、三维图形绘制 2.一元、二元函数绘制,
展开阅读全文
相关资源
相关搜索

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


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

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


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