clear
clc
format long
n=5;
%n=10
%n=20
%n=input('please input the value of n(5,10 or 20):')
%第一问
for i=1:n+1
x(i)=-1+2/n*(i-1);
y1(i)=f(x(i));
%end
x
y1
%第二问
%Newton插值多项式
disp('Newton插值多项式');
for j=1:n+1
y(j,1)=f(x(j));
end
for j=1:n
for i=j:n
temp=y(i+1,j)-y(i,j);
y(i+1,j+1)=temp/(x(i+1)-x(i+1-j)) ;
end
c(j)=y(j,j);
end
c(j+1)=y(j+1,j+1);
y
%三次样条插值多项式
disp('三次样条插值多项式');
for i=2:n+1
hm(i)=x(i)-x(i-1);
end
for i=2:n
y1(i);
u(i-1)=hm(i)/(hm(i)+hm(i+1));
r(i-1)=1-u(i-1);
d(i-1)=6/(hm(i)+hm(i+1))*((y1(i+1)-y1(i))/hm(i+1)-(y1(i)-y1(i-1))/hm(i));
end
for i=1:n-1
for j=1:n-1
if(i==j)
Ms(i,j)=2;
elseif(i==j-1)
Ms(i,j)=r(i);
elseif(i==j+1)
Ms(i,j)=u(i);
end
end
end
Ms
disp('Size of Ms');
size(Ms)
%可用追赶法求解
%这里我采用简单一点的方法求得M矩阵
M0=0;
M=d*Ms^(-1);
%M*Ms
%d
M(n)=0;
hm(1)=(1-(-1))/n;
for i=1:n
temp=(x(i)-(-1))/(2/n);
xs=x(i);
if temp<1
S(i)=1/6/hm(1)*((x(2)-xs)^3*M0+(xs-x(1))^3*M(1))+(y1(1)-hm(1)^2*M0/6)*(x(2)-xs)/hm(1)+(y1(2)-hm(1)^2*M(1)/6)*(xs-x(1))/hm(1);;
else
S(i)=1/6/hm(i)*((x(i+1)-xs)^3*M(i-1)+(xs-x(i))^3*M(i))+(y1(i)-(hm(i))^2*M(i-1)/6)*(x(i+1)-xs)/hm(i)+(y1(i+1)-(hm(i))^2*M(i)/6)*(xs-x(i))/hm(i);;
end
end
S
y1
%第三问,直接利用第二问中所求的的差商
%n=5 or 20
for k=1:99
xx(k)=-1+2/100*k;
yy(k)=f(xx(k));
end
for k=1:99
%xs为一个临时变量
xs=xx(k);
for i=1:n+1
if i==1
s(i)=c(i);
else
s(i)=c(i);
for j=1:i-1
s(i)=s(i)*(xs-x(j));
end
end
end
Nn(k)=sum(s);
end
for i=1:99
temp=(xx(i)-(-1))/(2/n);
xs=xx(i);
k=ceil(temp);
if k==0
k=1;
end
if k==1
Sn(i)=1/6/hm(1)*((x(2)-xs)^3*M0+(xs-x(1))^3*M(1))+(y1(1)-hm(1)^2*M0/6)*(x(2)-xs)/hm(1)+(y1(2)-hm(1)^2*M(1)/6)*(xs-x(1))/hm(1);
else
Sn(i)=1/6/hm(k)*((x(k+1)-xs)^3*M(k-1)+(xs-x(k))^3*M(k))+(y1(k)-(hm(k))^2*M(k-1)/6)*(x(k+1)-xs)/hm(k)+(y1(k+1)-(hm(k))^2*M(k)/6)*(xs-x(k))/hm(k);
end
end
xx;
yy;
Nn;
%第4问
ENn=max(abs(yy-Nn));
ESn=max(abs(yy-Sn));
str1='原始曲线,蓝色';
%画图
plot(xx,yy);
gtext('原始曲线,蓝色');
hold on
plot(xx,Nn,'g');
gtext('牛顿插值,绿色');
plot(xx,Sn,'r')
gtext('三次样条插值插值,红色');
hold off
newton_牛顿插值_TheQuestion_源码
版权申诉
14 浏览量
2021-09-30
00:33:05
上传
评论
收藏 273KB RAR 举报
弓弢
- 粉丝: 42
- 资源: 4021
最新资源
- mysql触发器及相关代码示例
- mysql的使用语法及代码示例
- EXCEL从图片链接获取图片
- Untitled-1 (1).dwt
- ChatGPT是一款由OpenAI研发的人工智能聊天机器人程序,以下是对其特点、发展历程和功能的详细归纳: 特点 技术驱动:C
- 基于STM32的毕业设计项目可以涵盖多个领域和应用,以下是一个典型的基于STM32的毕业设计项目框架,并结合参考文章中的相关数字
- 在植物大战僵尸杂交版中,代码资源或秘籍指令可以提供各种游戏内的效果 以下是一些常用的代码资源和秘籍指令,以及它们的描述和用途:
- C语言题库-信.doc
- 对于端午节代码资源,你可以考虑以下几个方向: ### 1. 端午节主题的小游戏 你可以创建一个端午节主题的小游戏,比如"捞粽
- 如果你是在寻找编程相关的节日主题代码资源,我可以为你提供一些常见的做法和示例 以下是一些可能会有帮助的方法: ### 1. 制
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈