列梅兹remez算法求解最佳一致逼近多项式(C语言实现)

//remzf.h
//实现remez算法
#include
#include

void remz(a,b,p,n,eps,f)
int n;double a,b,eps,p[],(*f)(double);
{
    int i,j,k,m;
    double x[21],g[21],d,t,u,s,xx,x0,h,yy;
    if(n>20)n=20;   //逼近多项式的最高次数为19
    m=n+1;
    d=1.0e+35;
    for(k=0;k<=n;k++)//初始点集为n+1阶切比雪夫多项式的交错点组
    {
        t=cos((n-k)*3.1415926/(1.0*n));
        x[k]=(b+a+(b-a)*t)/2.0;
    }

    while(1==1)//开始迭代
    {
        u=1.0;
        for(i=0;i<=m-1;i++)
        {
            p[i]=(*f)(x[i]);//计算f(xi)
            g[i]=-u;u=-u;//计算(-1)^i * u
        }

        for(j=0;j<=n-1;j++)
        {
            k=m;
            s=p[k-

你可能感兴趣的:(计算方法,计算方法,数值分析,列梅兹算法)