%%%程序编写者 西北工业大学自动化学院 Email: yincwxa2013@mail.nwpu.edu.cn
%% All rights reserved
clear
clc
x0=input('输入起始节点坐标x0=')
h=input('输入步长h=')
y=input('输入节点坐标函数值f(x)=')
x2=input('输入所要计算的节点x2=')
syms t
n=length(y);
for i=1:n
x1(i)=x0+h*(i-1);
end
%%%%%%%%%%%%%%%%%%%%差分的求法
for i=2:n
f1(i,1)=(y(i)-y(i-1));
end
for i=2:n
for j=i+1:n
f1(j,i)=(f1(j,i-1)-f1(j-1,i-1));
end
end
f1=[y',f1]% 输出带0阶差分的差分表格
%%%%%%%%%%%%%%%%%%%%%%%%%%等距节点插值函数中牛顿向前插值函数
Newton1=f1(1,1);
ttt=1;
for i=2:n
tt=1;
for j=1:i-1
tt=tt*(t-j+1);
end
ttt=ttt*(i-1);
Newton1=Newton1+f1(i,i)*tt/(ttt)
end
fprintf('等距节点插值函数中牛顿向前插值函数为n')
expand(Newton1)
t=(x2-x0)/h;
p=eval(Newton1);
fprintf('等距节点插值函数中牛顿向前插值函数为在所求点x2的函数值为n')
p
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入起始节点坐标x0=0.4
%输入步长h=0.1
%输入节点坐标函数值f(x)=[0.38942 0.47943 0.56464]
%输入所要计算的节点x2=0.43251
%Newton插值函数为为:1+17/6*x-2/3*x^2+1/6*x^4-1/3*x^3
%Newton插值函数在所求点x2的函数值为 : 23
转载本文请联系原作者获取授权,同时请注明本文来自殷春武科学网博客。
链接地址:http://blog.sciencenet.cn/blog-748007-751135.html
上一篇:最新学科研究热点与前沿(2013-3)
下一篇:数值分析--低阶求积公式matlab程序