目前在上《数值分析》课程,出于兴趣就把多项式插值的程序编出来了,但是功能还比较有限。此函数是输入n个点的坐标和对应的函数值,matlab软件会通过拉格朗日多项式插值的方法生成一个多项式,同时也会输出多项式的函数图像。如有错误,请指正。
函数程序如下:
function L = lagrangecz(x,y)
%实现拉格朗日插值多项式,并输出拟合的多项式、图像,输入n个点,得到最多n-1次插值
m = numel(x);
l = zeros(1,m);
for i = 1:m
fm = 1;
fz = [1];
for j = 1:m
if i == j
j = j;
else
fm = fm*(x(i)-x(j));
fz = conv(fz,[1 -x(j)]);
cj = y(i)*(fz/fm);
end
end
l= [l;cj];
end
c = cumsum(l);
L = c(m+1,:);
%以下为画图
x1 = 0:0.02:max(x);
y1 = polyval(L,x1);
plot(x,y,'*',x1,y1,'k');
end
武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...