matlab拉格朗日插值法程序
展开全部
function f=lang(x,y,x0)
syms p;
n=length(x);
f=0;
for k=1:n
l=y(k);
for j=1:k-1
l=l*(p-x(j))/(x(k)-x(j));
end
for j=k+1:n
l=l*(p-x(j))/(x(k)-x(j));
end
f=f+l;
simplify(f);
end
if(nargin==2)
f=subs(f,'p','x');
f=collect(f);
f=vpa(f,4);
else
m=length(x0);
for i=1:m
temp(i)=subs(f,'p',x0(i));
end
f=temp;
end
syms p;
n=length(x);
f=0;
for k=1:n
l=y(k);
for j=1:k-1
l=l*(p-x(j))/(x(k)-x(j));
end
for j=k+1:n
l=l*(p-x(j))/(x(k)-x(j));
end
f=f+l;
simplify(f);
end
if(nargin==2)
f=subs(f,'p','x');
f=collect(f);
f=vpa(f,4);
else
m=length(x0);
for i=1:m
temp(i)=subs(f,'p',x0(i));
end
f=temp;
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询