多项式与插值.pptVIP

  • 0
  • 0
  • 约8.36千字
  • 约 60页
  • 2023-08-25 发布于广东
  • 举报
对 n+1个数据点,设 ,则得到 n+1个线性方程,可以表示为矩阵形式 求解该方程组可确定系数(或用 polyfit(x,y,n)确定) 第二十九页,共六十页,2022年,8月28日 例 求用下列数据点拟合出的多项式的系数,并求当x取2.101、4.234时 y 的值,并画出已知数据点和拟合曲线。 clear,clf,hold off x=[1.1, 2.3, 3.9, 5.1]; y=[3.887, 4.276, 4.651, 2.117] ; n=length(x)-1 ; c=polyfit(x,y,n); xi=[2.101, 4.234]; yi=polyval(c,xi) plot(x,y, ro) hold on xp=1.1:0.05:5.1; yp=polyval(c,xp); pause plot(xp,yp) yi = 4.1457 4.3007 第三十页,共六十页,2022年,8月28日 第三十一页,共六十页,2022年,8月28日 三、Lagrange插值多项式 1、给定 n+1 个数据点: 插值基函数: 满足插值条件: 的次数不超过n的lagrange多项式 g(x) 为: 第三十二页,共六十页,2022年,8月28日 function y = lagrange1(x0,y0,x) np=length(x0); y=zeros(size(x)); for i=1:np z=ones(size(x)); for j=1:np if j~=i z=z.*(x-x0(j))/(x0(i)-x0(j)); end end y= y+y0(i)*z end 2、MATLAB程序(法1): 调用格式: y = lagrange1(x0,y0,x) 第三十三页,共六十页,2022年,8月28日 clear x0 = [1.1, 2.3, 3.9, 5.1]; y0=[3.887, 4.276, 4.651, 2.117]; x = [2.101, 4.234]; y = lagrange1(x0,y0,x) 例:写出拟合下面四个数据点的Lagrange插值公式,并计算 x=2.101、4.234时 y 的值。 x0 y0 1.1 3.887 2.3 4.276 3.9 4.651 5.1 2.117 结果为 y = 4.1457 4.3007 第三十四页,共六十页,2022年,8月28日 由于lagrange插值基函数li(x)在节点xk(k=1,2,…,n)处满足 又由于过 n+1个数据点的 n 次插值多项式是唯一的,故 li(x)也可看做是拟合下列数据点的n次多项式 可编写程序求出 2、MATLAB程序实现(法2): 进而求出lagrange插值公式 第三十五页,共六十页,2022年,8月28日 function p = lag_base(x) np = length(x); for j=1:np y = zeros(1,np); y(j) = 1; p(j,:)=polyfit(x,y,np-1); end 其调用格式为: p=lag_base(x) 其中: x 是数据点的横坐标数组, p 是一个矩阵,它的第 i 行 为li(x) 的幂系数。 先编写程序求出 第三十六页,共六十页,2022年,8月28日 如前例也可求解如下: x = [1.1, 2.3, 3.9, 5.1]; y = [3.887, 4.276, 4.651, 2.117]; xi = [2.101 ,4.234]; p=lag_base(x); np = length(x); s=0; for i=1:np s = s+p(i,:) .*y(i); end s yi=polyval(s,xi) 结果为: yi= 4.1457 4.3007 第三十七页,共六十页,2022年,8月28日 3、 Lagrange 插值公式的微分 插值公式 微分 为计算Lagrange插值多项式的一阶导数,可用polyder 函数将 p 的每一行转换为一阶导数的系数数组。 第三十八页,共六十页,2022年,8月28日 例:求出拟合下面四个数据点的Lagrange插值多项式在x=2.101、4.234处的一阶导数值。 x0 y0 1.1 3.887 2.3 4.276 3.9 4.651 5.1 2.117 x = [1.1, 2

文档评论(0)

1亿VIP精品文档

相关文档