切比雪夫(Chebyshev)曲线拟合 (参考《常用算法程序集》) 给定n 个数据点,求切比雪夫意义下的最佳拟合多项式
函数语句和形参说明: void chir(x,y,n,a,m) double x[n]: 存放给定n 个数据点的X 坐标 double y[n]: 存放给定n 个数据点的Y 坐标 int n: 给定数据点的个数 double a[m+1]: 前 m 个元素返回 m-1 次拟合多项式的m 个系数,最后一个元素返回拟合多项式的偏差最大值
若最后一个元素为负值,则说明在迭代过程中参考偏差不再增大,其绝对值为当前选择的参考偏差
Int m: 拟合多项式的项数,即拟合多项式的最高次为 m-1
要求m20 则自动按 m=min(n-1,20)处理
源程序: #include "math
h" void chir(x,y,n,a,m) int n,m; double x[],y[],a[]; { int m1,i,j,l,ii,k,im,ix[21]; double h[21],ha,hh,y1,y2,h1,h2,d,hm; for (i=0; i=n) m=n-1; if (m>=20) m=19; m1=m+1; ha=0
0; ix[0]=0; ix[m]=n-1; l=(n-1)/m; j=l; for (i=1; i