数值分析代码7-拉格朗日插值,牛顿插值

题目1:
下表是自然对数lnx的部分数表,利用拉格朗日插值求ln(0.6);

x0.40.50.70.8
ln x-0.916291-0.693147-0.356675-223144

通过表格可以看出共有n+1=4个插值点,所以n=3,通过拉格朗日插值定义建立拉格朗日插值多项式,代码块如下:

%n=3时拉格朗日插值
clc;
clear;
syms x;
x0=[0.4 0.5 0.7 0.8];
y0=[-0.916291 -0.693145 -0.356675 -0.223144];
L1(x)=(x-x0(2))*(x-x0(3))*(x-x0(4))/((x0(1)-x0(2))*(x0(1)-x0(3))*(x0(1)-x0(4)));
L2(x)=(x-x0(1))*(x-x0(3))*(x-x0(4))/((x0(2)-x0(1))*(x0(2)-x0(3))*(x0(2)-x0(4)));
L3(x)=(x-x0(1))*(x-x0(2))*(x-x0(4))/((x0(3)-x0(1))*(x0(3)-x0(2))*(x0(3)-x0(4)));
L4(x)=(x-x0(1))*(x-x0(2))*(x-x0(3))/((x0(4)-x0(1))*(x0(4)-x0(2))*(x0(4)-x0(3)));
L(x)=L1(x)*y0(1)+L2(x)*y0(2)+L3(x)*y0(3)+L4(x)*y0(4);
fprintf('利用拉格朗日插值求得ln(0.6)的值为:%0.8f\n',L(0.6))
plot(x0,y0,'b*')
hold on
plot(x0,L(x0),'r')
hold on 
fprintf('3次polyfit多项式拟合由高到低系数为:\n')
p=polyfit(x0,y0,3)
y(x)=p(1)*x^3+p(2)*x^2+p(3)*x+p(4);
plot(x0,y(x0),'g--')

运行结果:
在这里插入图片描述
图形对比:
在这里插入图片描述
可以看出插值多项式和拟合多项式完全重合,其实在matlab中,polyfit函数就是插值函数;
注意,插值多项式一定经过插值点

题目2:
下表是二氧化碳在不同温度下在水中的溶解度,利用牛顿插值求t=4时的溶解度

t0135
s0.33460.32130.29780.2774

利用差商构建牛顿插值多项式,代码块如下:

%n=3时牛顿插值
clc;
clear;
syms x;
x0=[0 1 3 5];
y0=[0.3346 0.3213 0.2978 0.2774];
n12=(y0(2)-y0(1))/(x0(2)-x0(1));%n2
n13=(y0(3)-y0(1))/(x0(3)-x0(1));
n14=(y0(4)-y0(1))/(x0(4)-x0(1));
n123=(n13-n12)/(x0(3)-x0(2));
n124=(n14-n12)/(x0(4)-x0(2));
n1234=(n124-n123)/(x0(4)-x0(3));
p(x)=y0(1)+n12*(x-x0(1))+n123*(x-x0(1))*(x-x0(2))+n1234*(x-x0(1))*(x-x0(2))*(x-x0(3));
p4=vpa(p(4),8);

fprintf('利用newton插值求得4°时的溶解度为:%0.8f\n',p4)
plot(x0,y0,'b*')
hold on
plot(x0,p(x0),'r')
fprintf('3次polyfit多项式拟合由高到低系数为:\n')
p=polyfit(x0,y0,3)
y(x)=p(1)*x^3+p(2)*x^2+p(3)*x+p(4);
plot(x0,y(x0),'g--')

运行结果如下:
在这里插入图片描述
图形对比:
在这里插入图片描述
其实牛顿插值多项式和拉格朗日插值多项式只是构建形式不同,化为最简多项式后,二者完全一致,即插值多项式具有唯一性。
插值余项和误差估计挺重要的,是后面的插值型求积公式的基础。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值