资源描述:
《matlab基础及其应用教程复习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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为整除的多项式,r为余数多项式。例3.2调用polya
2、dd函数来完成两个不同阶次多项式:的相加运算。>>m=[12];>>n=[147];>>s=polyadd(m,n)s=159,例3.4完成两个同阶次多项的相乘运算。>>a=[1234];>>b=[14916];>>e=conv(a,b)e=162050758464【例3.3】完成两个同阶次多项式:的相减运算。>>a=[1234];>>b=[14916];>>d=polyadd(a,-b)d=0-2-6-12例3.7求商多项式及余多项式。>>p1=conv([1,0,1],conv([1,2],[1,1]));%计算分子多项式>>p2=[1011];%注意缺项补零>>[q,r]=deco
3、nv(p1,p2)q=13r=002-1-1即表示商多项式为s+3,余多项式为。3.1.3多项式求值和求根运算多项式求值y=polyval(p,x)利用polyval函数找出在s=3处的值:>>p=[12-12-17];>>z=polyval(p,3)z=312.多项式求根x=roots(P)求多项式的根并验证。>>p=[1-32];>>roots(p)ans=21>>polyval(p,2),polyval(p,1)ans=0ans=03.2插值和拟合插值和拟合的概念。插值:构造一个简单函数P(x)作为f(x)的近似,然后通过处理P(x)获得关于f(x)的结果,要求近似函数P(x)取给
4、定的离散数据,则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:取
5、余弦曲线上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)
6、;gridon>>subplot(3,1,2);plot(xi,y2-y0);gridon>>subplot(3,1,3);plot(xi,y3-y0);gridon3种插值方法比较如图3.1所示,将3种插值结果分别减去直接由函数计算的值,得到其误差如图3.2所示。从图3.2可以看出,样条插值和三次方程式插值效果较好,而分段线性插值则较差。图3.13种插值方法比较图图3.23种插值方法的误差2.多项式拟合函数:p=polyfit(x,y,n)[p,s]=polyfit(x,y,n)其中x,y为已知的数据组,n为要拟合的多项式的阶次,向量p为返回的要拟合的多项式的系数,向量s为调用函数po
7、lyval获得的错误预估计值。一般来说,多项式拟合中阶数n越大,拟合的精度就越高。例3.18:对向量X=[-2.8-10.22.15.26.8]和Y=[3.14.62.31.22.3-1.1]分别进行阶数为3、4、5的多项式拟合,并画出图形进行比较。>>x=[-2.8-10.22.15.26.8];>>y=[3.14.62.31.22.3-1.1];>>p3=polyfit(x,y,3);%用不同阶数的多项式拟合x和y>>p4=po