拉格朗日插值法 matlab

  • 格式:doc
  • 大小:24.00 KB
  • 文档页数:2

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

function f = Language(x,y,x0)

%求已知数据点的拉格朗日插值多项式

%已知数据点的x坐标向量: x

%已知数据点的y坐标向量: y

%插值点的x坐标: x0

%求得的拉格朗日插值多项式或在x0处的插值: f

x=[0.0 0.4 0.8 1.2 1.6];%input x data(可替换为自己的数据)

y=[0 0.428392 0.742101 0.910314 0.970348];%input y data(可替换为自己的数据)

x0=[0.3 0.5];%input x0 data(可替换为自己的数据)

syms t l;

if(length(x) == length(y))

n = length(x);

else

disp('x和y的维数不相等!');

return; %检错

end

p=sym(0);

for (i=1:n)

l=sym(y(i));

for(k=1:i-1)

l=l*(t-x(k))/(x(i)-x(k));

end;

for(k=i+1:n)

l=l*(t-x(k))/(x(i)-x(k));

end;

p=p+l;

end

simplify(p);%简化多项式

f = subs (p,'t',x0); %计算插值点的函数值

f = vpa(f,6); %将插值多项式的值化成6位精度的小数end