时的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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验08 数据处理与多项式计算(第6章)(3)在线全文阅读。
相关推荐: