⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 拟合.c

📁 拟合小程序
💻 C
字号:
# include <stdio.h>
# define m 6
# define n 1

void Gauss(float a[n+1][n+1],float b[n+1])
{
    float c[n]={0};
    int i,j,k,h;
    float e=0.0001,f=.0;
    float d[n+1],g[n+1][n+1];
    for(k=0;k<n;k++)
    {
        for(i=k;i<n+1;i++)
            if(a[i][k]>c[k])
            {
                c[k]=a[i][k];
                h=i;
            }
        if(c[k]<e) break;
        else
        {
            if(h!=k)
            {
                for(j=k;j<n+1;j++)
                {
                    d[j]=a[k][j];
                    a[k][j]=a[h][j];
                    a[h][j]=d[j];
                }
                d[k]=b[k];
                b[k]=b[h];
                b[h]=d[k];
            }
            for(i=k+1;i<n+1;i++)
            {
                g[i][k]=a[i][k]/a[k][k];
                a[i][k]=g[i][k];
                for(j=k+1;j<n+1;j++)
                    a[i][j]=a[i][j]-g[i][k]*a[k][j];
                b[i]=b[i]-g[i][k]*b[k];
            }
        }
    }
    b[n]=b[n]/a[n][n];
    for(i=n-1;i>=0;i--)
    {
        for(j=i+1;j<n+1;j++)
            f=f+a[i][j]*b[j];
        b[i]=(b[i]-f)/a[i][i];
    }
    printf("\nB:");
    for(i=0;i<n+1;i++)
        printf("    %f",b[i]);
}

main()
{ float x[m]={36.9,46.7,63.7,77.8,84.0,87.5};
  float y[m]={181,197,235,270,283,292};
  int i,j,h,k,l=0;
  float c[m][n+1],ct[n+1][m];
  float a[n+1][n+1]={0};
  float b[n+1]={0};


  for(i=0;i<m;i++)
    { c[i][0]=1;
      for(j=1;j<n+1;j++)
    c[i][j]=x[i]*c[i][j-1];   /*printf("\n%f,%f\n",c[i][j],x[i]);*/
    }

  for(i=0;i<n+1;i++)
    for(j=0;j<m;j++)
      ct[i][j]=c[j][i];    /*printf("\n%f,%f",ct[i][j],c[j][i]);*/

  for(i=0;i<n+1;i++)
    {l=0;
      for(j=0;j<n+1;j++)
       { k=0;
    for(h=0;h<m;h++)
     { a[i][j]=ct[i][k]*c[h][l]+a[i][j];
      /*printf("\na[%d][%d]=ct[%d][%d]%f*c[%d][%d]%f+%f",i,j,i,k,ct[i][k],h,l,c[h][l],a[i][j]);*/
      k++;
     }
     l++;
       }
     }

  for(i=0;i<n+1;i++)
   { k=0;
     for(j=0;j<m;j++)
       { b[i]=ct[i][k]*y[j]+b[i];
     k++;

       }
   }
  Gauss(a,b);
  getchar();
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -