matlab求龙格函数f(x)=1⼀(1+25*x^2)在区间[-1,1]上取n=10的等距节点,分别作多项式插值三次样条插值

2025-02-25 21:25:51
推荐回答(3个)
回答1:

x = linspace(-1,1,10);
x1 = linspace(-1,1,100);
y =1./(1+25*x.^2);
y1 = interp1(x,y,x1,'cubic');
y2 = interp1(x,y,x1,'spline');
figure();
plot(x,y,'ro');
hold on;
plot(x1,y1,'b',x1,y2,'g');
legend('插值点','多项式','三次样条');

回答2:

m程序如下:

x=-1:0.0001:1;
y=1./(1+25*x.^2);
x1=-1:0.2:1;
y1=interp1(x,y,x1,'spline');
plot(x1,y1,'o',x,y)
grid on
xlabel('x')
ylabel('y')
y1

结果如图:

回答3:

m程序如下:
x=-1:0.0001:1;
y=1./(1+25*x.^2);
x1=-1:0.2:1;
y1=interp1(x,y,x1,'spline');
plot(x1,y1,'o',x,y)
grid on
xlabel('x')
ylabel('y')
y1