Newton插值法精选.doc
文本预览下载声明
《数值分析》实验报告
学号: 姓名: 班级: 日期:
题目:Newton插值法 的函数表如下
x
0.0 0.1 0.2 0.3 0.4
0.5000 0.5398 0.5793 0.6179 0.7554
(1)编程实现求Newton插值(2)用Newton算法求的近似值,统计计算时间,并与lagrange算法进行比较。
1、算法:step 1 输入[x0,x1,…xn],[y1,y2,…yn];
step 2 对j=0,1,2…n;
di-yi;
step 3 对k=0,1,2…n-1;
dj=(dj-d(j-i))/(xi-x(j-k-1));
step 4 输出[d0,d1,…dn]
程序:(Matlab)
①建立自定义函数Chashang.m
function f=Chashang(x,y,X)
syms t; %定义符号变量t,进行公式的化简和计算;
n=length(x); %测量向量x的长度,赋给n;
m=length(y); %测量向量y的长度,赋给m;
if m~=n %判断m和n是否相等,就是判断x与y是否一一对应;
error(样本数据中的x与y的对应个数不匹配);
end
A=zeros(n,n); %定义一个n行n列的零矩阵;
A(:,1)=y; %把向量y转置,赋给零矩阵的第一列;
for j=2:n %第一个循环,变量为j,用来表示第几行;
for i=1:(n-j+1) %第二个循环,变量为i,用来表示第几列;
A(i,j)=(A(i+1,j-1)-A(i,j-1))/(x(i+j-1)-x(i)); %差商公式,A(i,j)表示零矩阵的第j行,第i列;
end
end
A %得到差商矩阵A;
②编写函数调用。
x=[]; %对应x值;
y=[]; %已知的函数值;
X=[]; %插值节点;
f=Chashang(x,y,X) %调用函数得到差商值;
2、㈠利用1中的求差商的算法,把求出的差商矩阵的提取对角线元素,利用秦九韶算法,得到牛顿插值多项式。
①首先建立自定义函数Newton.m
function f=Newton(x,y,X)
syms t; %定义符号变量t,进行公式的化简和计算;
n=length(x); %测量向量x的长度,赋给n;
m=length(y); %测量向量y的长度,赋给m;
if m~=n %判断m和n是否相等,就是判断x与y是否一一对应;
error(样本数据中的x与y的对应个数不匹配);
end
A=zeros(n,n); %定义一个n行n列的零矩阵;
A(:,1)=y; %把向量y转置,赋给零矩阵的第一列;
for j=2:n %第一个循环,变量为j,用来表示第几行;
for i=1:(n-j+
显示全部