logo资料库

matlab 多项式、插值与数据拟合.ppt

第1页 / 共84页
第2页 / 共84页
第3页 / 共84页
第4页 / 共84页
第5页 / 共84页
第6页 / 共84页
第7页 / 共84页
第8页 / 共84页
资料共84页,剩余部分请下载后查看
第五章 多项式、插值与数据拟合 • 多项式MATLAB命令 • 插值 – Lagrange插值 – Hermite插值 – Runge现象和分段插值 – 分段插值 – 样条插值的MATLAB表示 • 数据拟合 –多项式拟合 –函数线性组合的曲线拟合方法 –最小二乘曲线拟合 –B样条函数及其MATLAB表示
5.1 关于多项式MATLAB命令 n c x c  n n 1  y  • 一个多项式的幂级数形式可表示为:    c x 1 • 也可表为嵌套形式 (( ) ( c x c x c x  1 c x 2  n 1  ) 2  y  • 或因子形式 y  3   )n c x c  1 n   ( c x 1  r 1 )( x  r 2 )  x ( )n r N阶多项式n个根,其中包含重根和复根。若多 项式所有系数均为实数,则全部复根都将以共轭对 的形式出现
• 幂系数:在MATLAB里,多项式用行向量表示,其 元素为多项式的系数,并从左至右按降幂排列。 y  2 x    3 x 4 x 5 2 例: 被表示为 >> p=[2 1 4 5] >> poly2sym(p) ans = 2*x^3+x^2+4*x+5 • Roots: 多项式的零点可用命令roots求的。 例: >> r=roots(p) 得到 r = 0.2500 + 1.5612i 0.2500 - 1.5612i -1.0000 所有零点由一个列向量给出。
y  6 x  1 • Poly: 由零点可得原始多项式的各系数,但可能相差   6 x 5 6 x  6 1) 4 15 x ( x   一个常数倍。 例: >> poly(r) ans = 1.0000 0.5000 2.0000 2.5000 注意:若存在重根,这种转换可能会降低精度。 例: 2 15 x   >> r=roots([1 -6 15 -20 15 -6 1]) r = 1.0042 + 0.0025i 1.0042 - 0.0025i 1.0000 + 0.0049i 1.0000 - 0.0049i 0.9958 + 0.0024i 0.9958 - 0.0024i 舍入误差的影响,与计算精度有关。 3 20 x
  3 7 x 2 2 x 1 x   • polyval: 可用命令polyval计算多项式的值。 例: 计算y(2.5) >> c=[3,-7,2,1,1]; xi=2.5; yi=polyval(c,xi) yi = 23.8125 如果xi是含有多个横坐标值的数组,则yi也 y  4 3 x 为与xi长度相同的向量。 >> c=[3,-7,2,1,1]; xi=[2.5,3]; >> yi=polyval(c,xi) yi = 23.8125 76.0000
• polyfit:给定n+1个点将可以唯一确定一个n阶多项式。利 用命令polyfit可容易确定多项式的系数。 例: >> x=[1.1,2.3,3.9,5.1]; >> y=[3.887,4.276,4.651,2.117]; >> a=polyfit(x,y,length(x)-1) a = -0.2015 1.4385 -2.7477 5.4370 >> poly2sym(a) ans = -403/2000*x^3+2877/2000*x^2-27477/10000*x+5437/1000  多项式为 Polyfit的第三个参数是多项式的阶数。 3 0.2015 x 1.4385 x  y   2 2.7477 x  5.4370
 n c x 1  c x 2 n  1    c x n  c n  1 n  1 x  c 2 n n x    c n 2 2 x  c x  c n  2 n  1 多项式积分: y n   Y  ydx c 1 1  功能:求多项式积分 调用格式:py=poly_itg(p) p:被积多项式的系数 py:求积后多项式的系数 poly_itg.m function py=poly_itg(p) n=length(p); py=[p.*[n:-1:1].^(-1),0] 不包括最后一项积分常数
n 1  c x 2    c x n  c 多项式微分:   n y c x 1 nc x 1 ' y c  ( n n  2   n 1   1) c x 2 1 n   • Polyder: 求多项式一阶导数的系数。 调用格式为: b=polyder(c ) c为多项式y的系数,b是微分后的系数, 其值为: [ 1) , (  n n c 2 ,  , c ]n nc 1
分享到:
收藏