给定值表用matlab求lagrange插值多项式

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:29:27
第一问:给定值:x:0.1 0.2 0.4 0.6 0.8 0.9 1
f(x):1 0.5 0.1 -1 -2 -3 -8
第二问:并计算y=ln(1+x^2)在[-1,1]上的5次lagrange多项式,(等距分布)
第一问中,给定值,求lagrange插值多项式,我漏写了,不好意思

x=[0.1,0.2,0.4,0.6,0.8,0.9,1];
f=[1,0.5,0.1,-1,-2,-3,-8];
p=polyfit(x,f,length(x)-1);
pf=vpa(poly2sym(p),8)

xx=-1:0.05:1;
yy=log(1+xx.^2);
pp=polyfit(xx,yy,5);
py=vpa(poly2sym(pp),8)
得到结果:
pf =
-662.20238*x^6+1796.1310*x^5-1833.7054*x^4+868.30357*x^3-191.30655*x^2+13.965476*x+.81428571

py =
-.41039838e-15*x^5-.24377642*x^4+.36098936e-15*x^3+.92906500*x^2-.14488905e-16*x+.31524404e-2
另外可以看一下结果:
plot_x=-2:0.1:2;
f1=polyval(p,plot_x);
f2=polyval(pp,plot_x);
plot(x,f,'*',plot_x,f1);
figure
plot(xx,yy,'*',plot_x,f2);