实验08 数据处理与多项式计算(第6章)(3)

2018-12-17 12:33

时的f值。

t f t f 0 5 10 15 20 25 30 3.1025 2.256 879.5 1835.9 2968.8 4136.2 5237.9 35 40 45 50 55 60 65 6152.7 6725.3 6848.3 6403.5 6824.7 7328.5 7857.6 X=2:5:57; T=0:5:65; F=[3.1025,2.256,879.5,1835.9,2968.8,4136.2,5237.9, ... 6152.7,6725.3,6848.3,6403.5,6824.7,7328.5,7857.6]; F1=interp1(T,F,X) F2=interp1(T,F,X,'nearest') F3=interp1(T,F,X,'spline') F4=interp1(T,F,X,'cubic') 2 . 二维数据插值(interp2)

Z1=interp2(X,Y,Z,X1,Y1,'method')

? X,Y是两个向量,分别描述两个参数的采样点。 ? Z是与参数采样点对应的函数值。

? X1,Y1是两个向量或标量,描述欲插值的点。 ? Z1是根据相应的插值方法得到的插值结果。 ? method的取值与一维插值函数相同。 ? X,Y,Z也可以是矩阵形式。

注:X1,Y1的取值不能超出X,Y的给定范围,否则,给出“NaN”错误。

例6.9(二维插值)计算z=x2+y2 p148

设z=x2+y2,对z函数在[0,1]×[0,2]区域内进行插值。 x=0:0.1:1;y=0:0.2:2; [X,Y]=meshgrid(x,y);%产生自变量网格坐标 Z=X.^2+Y.^2; %求对应的函数值 interp2(x,y,Z,0.5,0.5)%在(0.5,0.5)点插值 %在(0.5,0.4)点和(0.6,0.4)点插值 interp2(x,y,Z,[0.5 0.6],0.4) %在(0.5,0.4)点和(0.6,0.5)点插值 interp2(x,y,Z,[0.5 0.6],[0.4 0.5]) %下一命令在(0.5,0.4),(0.6,0.4),(0.5,0.5) %和(0.6,0.5)各点插值 interp2(x,y,Z,[0.5 0.6]',[0.4 0.5]) interp2(x,y,Z,[0.5 0.6]',[0.4 0.5],'spline') 例6.10(二维插值)3次多项式插值p148

某实验对一根长10米的钢轨进行热源的温度传播测试。用x表示测量点距离(m),用h表示测量时间(s),用T表示测得各点的温度(℃),测量结果如下。

11

T x h 0 30 60 0 2.5 5 7.5 10 95 14 0 0 0 88 48 32 12 6 67 64 54 48 41 试用3次多项式插值求出在一分钟内每隔10s、钢轨每隔0.5米处的温度。 x=0:2.5:10; h=[0:30:60]'; T=[95,14,0,0,0;88,48,32,12,6;67,64,54,48,41]; xi=[0:0.5:10]; hi=[0:10:60]'; temps=interp2(x,h,T,xi,hi,'cubic'); mesh(xi,hi,temps); 6.1.3 曲线拟合 p150

1. 曲线拟合与最小二乘原理

y=f(x)的n组数据 x f(x) x1 y1 x2 y2 ... ... xn yn ? 曲线拟合

构造函数y=g(x)去逼近f(x),使误差

12

δi=g(xi)-f(xi)(i=1,2,...,n) 在某种意义上达到最小。 ? 曲线拟合的最小二乘原理 构造m(m≤n)次多项式

p(x)=a1xm+a2xm-1+...+amx+am+1

使得

?(p(x)?y)iii?1n2达到最小。

2. 曲线拟合的实现

用polyfit函数来求得最小二乘拟合多项式的系数,再用polyval函数按所得的多项式计算所给出的点上的函数近似值。

调用格式:

[P,S]=polyfit(X,Y,m)

根据采样点X和Y,产生一个m次多项式P及其在采样点的误差向量S。 ? X,Y是两个等长的向量。

? P是一个长度为m+1的向量,P的元素为多项式系数。

例 6.11 曲线拟合 p150

用一个三次多项式在 [0,2π]内逼近sinx。 X=linspace(0,2*pi,50); Y=sin(X); P=polyfit(X,Y,3) P = 0.0912 -0.8596 1.8527 -0.1649 X=linspace(0,2*pi,20); Y=sin(X); Y1=polyval(P,X) plot(X,Y,':o',X,Y1,'-*') legend('sinx','多项式') 6.1.4 多项式计算 p151

若n次多项式表示为:

p(x)=a0xn+a1xn-1+...+an-1x+an

13

则在MATLAB中,p(x)表示为向量形式:

[ a0, a1, ..., an-1, an ]

1. 多项式的四则运算

(1) 多项式的加减运算

? 加减运算就其所对应的系数向量的加减运算。

? 若多项式的次数不同,则应把低次的多项式系数不足的高次项用0补足。 (2) 多项式乘法运算 conv(P1,P2):用于求多项式P1和P2的乘积。这里,P1、P2是两个多项式系数向量。 (3) 多项式除法

[Q,r]=deconv(P1,P2):用于对多项式P1和P2作除法运算。 ? Q返回多项式P1除以P2的商式。 ? r返回P1除以P2的余式。 ? Q和r仍是多项式系数向量。 deconv是conv的逆函数,即有

P1=conv(P2,Q)+r。

例6.12 多项式四则运算 p152

设

f(x)=3x-5x+2x-7x+5x+6 g(x)=3x+5x-3

① 求f(x)+g(x)、f(x)-g(x) ② 求f(x)×g(x)、f(x)/g(x) f=[3,-5,2,-7,5,6]; g=[3,5,-3]; g1=[0,0,0,g]; f+g1 f-g1 conv(f,g) [Q,r]=deconv(f,g) conv(g,Q)+r ans = 3 -5 2 -4 10 3 ans = 3 -5 2 -10 0 9 ans = 9 0 -28 4 -26 64 15 -18 Q = 1.0000 -3.3333 7.2222 -17.7037 r = 0 0 0 0 115.1852 -47.1111 ans = 3.0000 -5.0000 2.0000 -7.0000 5.0000 6.0000 25

4

3

2

2. 多项式的导函数

? p=polyder(P):求多项式P的导函数 ? p=polyder(P,Q):求P·Q的导函数

? [p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。 参数P,Q是多项式的向量表示,结果p,q也是多项式的向量表示。

14

例6.13 求有理分式的导数 p152

3x5?5x4?8x2?x?5 f(x)?10963210x?5x?6x?7x?x?100P=[3,5,0,-8,1,-5]; Q=[10,5,0,0,6,0,0,7,-1,0,-100]; [p,q]=polyder(P,Q) 3. 多项式的求值

(1) 代数多项式求值

Y=polyval(P,x)

? 若x为一数值,则求多项式在该点的值Y;

? 若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值Y。

例6.14 代数多项式求值 p153

已知多项式x4+8x3-10,分别取x=1.2和一个2×3矩阵为自变量计算该多项式的值。 A=[1,8,0,0,-10]; x=1.2; y1=polyval(A,x) x=[-1,1.2,-1.4;2,-1.8,1.6]; y2=polyval(A,x) y1 = 5.8976 y2 = -17.0000 5.8976 -28.1104 70.0000 -46.1584 29.3216 (2) 矩阵多项式求值 Y=polyvalm(P,x)

要求x为方阵,以方阵为自变量求多项式的值。

设A为方阵,P代表多项式x3-5x2+8,那么

? polyvalm(P,A)的含义是:A*A*A-5*A*A+8*eye(size(A)) ? polyval(P,A)的含义是:A.*A.*A-5*A.*A+8*ones(size(A))

例6.15 多项式求值 p154

已知多项式x4+8x3-10,取一个2×2矩阵为自变量分别用polyval和polyvalm计算该多项式的值。 A=[1,8,0,0,-10]; x=[-1,1.2;2,-1.8]; y1=polyval(A,x) y2=polyvalm(A,x) y1 = 15


实验08 数据处理与多项式计算(第6章)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:机械传动控制试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: