一、内容及要求
在区间[-1,1]上分别取n=10,20用两组等距节点对龙格函数f(x)=1/(1+25*x^2)作多项式插值及三次样条插值,对每个n值,分别画出插值函数及f(x)的图形。
二、步骤及过程
(1)
N=10;
x=-1:0.2:1;
y=1./(1+25.*x.^2)
plot(x,y,’r’)
hold on
p = polyfit(x,y,3);
y_fit=polyval(p,x);
plot(x,y_fit,'LineWidth',2) 结果分析:
/*结果如图*/
(图一)
y =
Columns 1 through 9
0.0385 0.0588 0.1000 0.2000 0.2000 0.1000
Columns 10 through 11
0.0588 0.0385
(2)
N=20时
0.5000 0.5000 1.0000 x=-1:0.1:1;
y=1./(1+25.*x.^2)
plot(x,y,'r')
hold on
y_fit=polyval(p,x);
p = polyfit(x,y,3);
plot(x,y_fit,'LineWidth',2) /*结果如图*/
结果分析:
图(2)
y =
Columns 1 through 9
0.0385 0.0471 0.0588 0.0755 0.1000 0.1379 0.2000 0.3077 0.5000
Columns 10 through 18
0.8000 1.0000 0.8000 0.1000 0.0755
Columns 19 through 21
0.0588 0.0471 0.0385
(3)
误差算法:
x=-1:0.2:1;
y=1./(1+25.*x.^2)
plot(x,y,'r',x,y)
0.5000 0.3077 0.2000 0.1379 hold on
p = polyfit(x,y,3);
y=1./(1+25.*x.^2);
y_fit=polyval(p,x);
plot([x;x],[y;y_fit],'r',x,y_fit) /*如图所示*/
结果分析:
其中阴影部分即为误差
y =
Columns 1 through 9
0.0385 0.0588 0.1000 0.2000 0.5000 1.0000 0.5000 0.2000 0.1000
Columns 10 through 11
0.0588 0.0385