高分!!急!用Matlab编写求牛顿插值多项式函数求解下列问题
对区间[-5,5]作n等分,并给出以下三个函数:分别对上述函数计算点上的值,作出插值函数的图形并与的图形比较实验要求:(1)编写求Newton插值多项式函数文件函数:fu...
对区间[-5,5]作n等分,并给出以下三个函数:
分别对上述函数计算点上的值,作出插值函数的图形并与的图形比较
实验要求:
(1)编写求Newton插值多项式函数文件函数:
function [c,v]=newtdd(x,y)
% x,y是插值节点,
% c是newton插值多项式的差商系数,
% v是插值节点x,y的差商表
(2)利用上面函数分别求上面三个函数的插值多项式
(3)画出插值多项式的函数图形,同时也作出的图形,对插值曲线和原函数曲线进行比较,观察结果。 展开
分别对上述函数计算点上的值,作出插值函数的图形并与的图形比较
实验要求:
(1)编写求Newton插值多项式函数文件函数:
function [c,v]=newtdd(x,y)
% x,y是插值节点,
% c是newton插值多项式的差商系数,
% v是插值节点x,y的差商表
(2)利用上面函数分别求上面三个函数的插值多项式
(3)画出插值多项式的函数图形,同时也作出的图形,对插值曲线和原函数曲线进行比较,观察结果。 展开
1个回答
展开全部
% newtdd.mm文件
function [c, v] = f(x, y)
n = length(x);
x = x(:);
v = [y(:) zeros(n, n-1)];
for i = 2:n
v(i:end, i) = (v(i:end, i-1)-v(i-1:end-1, i-1))./(x(i:end)-x(1:end-i+1));
end
c = diag(v);
end
% M文件
n = 4; % 这里只取4个点,则插值成三次函数
x = linspace(-5, 5, n);
xx = linspace(-5, 5, 100)';
func = {@(x)5./(1+x.^2), @(x)atan(x), @(x)x./(1+x.^4)};
for fi = 1:3
y = func{fi}(x);
[c v] = f(x, y)
yy = c(n);
for i = n-1:-1:1
yy = yy.*(xx-x(i)) + c(i);
end
subplot(1, 3, fi);
plot(x, y, 'o', xx, [func{fi}(xx) yy]);
end
结果如示:
火丰科技
2024-11-13 广告
2024-11-13 广告
致力于从事惯性测量、卫星导航等产品的研发、生产的高新技术企业。公司旗下投资多条自动化生产线分别分布于西安、深圳、珠海等地,其中包括光纤陀螺、MEMS惯导、石英加速度计、电子对抗通信产品生产线,拥有中国先进的惯性导航产品及电子对抗产品生产条件...
点击进入详情页
本回答由火丰科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询