clear,clf, hold on; %清空图形窗口,保持图形,开始绘图

X=-1:0.1:1; %生成矩阵X,从-1到1,步长为0.1

Y=1./(1+25*X.^2); %生成矩阵Y,函数f(x)=1/(1+25x^2)

[C,D]=newpoly (X,Y); %调用自定义函数newpoly,得到多项式系数C和差商矩阵D

x=-1:0.01:1; %生成新的矩阵x,从-1到1,步长为0.01

y=polyval(C,x); %用多项式系数C计算x对应的函数值y=p(x)

plot(x,y,X,Y,'.'); %绘制函数图像和散点图

grid on; %打开网格线

xp=-1:0.1:1; z=1./(1+25*xp.^2); %生成新的矩阵xp,从-1到1,步长为0.1,生成对应的z值

plot (xp,z,'r') %绘制另一个函数图像

function [C,D]=newpoly (X,Y) %定义自定义函数newpoly,输入为矩阵X和Y,输出为多项式系数C和差商矩阵D

n=length(X); %计算矩阵X的长度,即数据点的个数

D=zeros (n,n) %初始化差商矩阵D为n*n的零矩阵

D(:,1)=Y' %将Y赋值给差商矩阵D的第一列

for j=2:n %开始循环,从第二列开始计算差商矩阵D for k=j:n %循环计算差商矩阵D的每个元素 D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1)); %根据差商定义计算差商矩阵D的每个元素 end end

C=D(n,n); %将差商矩阵D的最后一个元素赋值给多项式系数C

for k=(n-1):-1:1 %开始循环,从倒数第二个元素开始计算多项式系数C C=conv(C,poly (X(k))) %将多项式系数C和(x-xk)的多项式卷积,得到新的多项式系数C m=length(C); %计算新的多项式系数C的长度 C(m)=C(m)+D(k,k); %将差商矩阵D的对角线元素加入多项式系数C end end %自定义函数结


原文地址: http://www.cveoy.top/t/topic/fd44 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录