《Matlab基础及其应用教程复习2》由会员分享,可在线阅读,更多相关《Matlab基础及其应用教程复习2(61页珍藏版)》请在金锄头文库上搜索。
1、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为整除的多
2、项式 ,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); % 计算分子
3、多项式 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 = 03.2 插 值 和 拟
4、合插值和拟合 的概念。 插值:构造一个简单函数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为寻找最近数据节点,由其得出函数
5、值 ;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(
6、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=po
7、lyfit(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 p
8、4=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)为要
9、积分的函数 。不论在实际问题中的意义如何,该积分在数值上都等于曲线y=f(x) ,直线x=a、x=b 与x 轴所围成的曲边梯形的面积。因此,不管f(x)以 什么形式给出,只要近似地计算出相应的曲边梯形的面积,就得到 了所给定积分的近似值。求解定积分的数值方法基本思想:将整个积分区间 a,b分成n 个子区间 其中 这样求 定积分问题就分解为求和问题。MATLAB 提供了在有限区间内,数值计算某函数积分的函 数,它们分别是cumsum(矩形积分),trapz(梯形积分),quad( 辛普森积分),quadl(科茨积分,也称高精度数值积分)。3.4 线性方程组的数值解3.4.1 直接法 1. 矩阵相
10、除法 在MATLAB 中,线性方程组AX=B 的直接解法 是用矩阵除来完成的,即X=AB。若A 为m n的矩阵, 当m = n且 A可逆时,给出唯一解;当n m时,矩阵除 给出方程的最小二乘解;当n 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 =43-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; y
11、0=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命令 s
12、yms arg1 arg2 .例: sym(x) %定义符号变量x syms a b c syms m n real4.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
13、, 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已知多项式 求两个多项式的积和商。
14、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命令关闭图形窗口,其调用方式有