首页 > 文章列表 > 计算多项式回归算法的C程序

计算多项式回归算法的C程序

计算 多项式回归 C程序
457 2023-09-11

回归是一种预测建模技术,它研究了一个因变量和一个非因变量之间的关系。

多项式回归

它是一种回归分析形式,显示了自变量x和因变量y之间的关系,该关系是x的n次多项式模型。

示例

以下是C程序来计算多项式回归算法

#include<math.h>
#include<stdio.h>
#include<conio.h>
main(){
   int i,j,k,m,n;
   float x[20],y[20],u,a[10],c[20][20],power,r;
   printf("enter m,n:");
   scanf("%d%d",&m,&n);
   for(i=1;i<=n;i++){
      printf("enter values of x and y");
      scanf("%f%f",&x[i],&y[i]);
   }
   for(j=1;j<=m+1;j++)
   for(k=1;k<=m+1;k++){
      c[j][k]=0;
      for(i=1;i<=n;i++){
         power=pow(x[i],j+k-2);
         c[j][k]=c[j][k]+power;
      }
   }
   for(j=1;j<=m+1;j++){
      c[j][m+2]=0;
      for(i=1;i<=n;i++){
         r=pow(x[i],j-1);
         c[j][m+2]=c[j][m+2]+y[i]*r;
      }
   }
   for(i=1;i<=m+1;i++){
      for(j=1;j<=m+2;j++){
         printf("%.2ft",c[i][j]);
      }
      printf("

");    }    for(k=1;k<=m+1;k++)       for(i=1;i<=m+1;i++){          if(i!=k){             u=c[i][k]/c[k][k];             for(j=k;j<=m+2;j++){                c[i][j]=c[i][j]-u*c[k][j];          }       }    }    for(i=1;i<=m+1;i++){       a[i]=c[i][m+2]/c[i][i];       printf("a[%d]=%f

",i,a[i]);    }    getch(); }

输出

当上述程序被执行时,它产生以下结果 −

enter m,n:4 5
enter values of x and y1 1
enter values of x and y2 3
enter values of x and y1 2
enter values of x and y1 2
enter values of x and y1 1
5.00  6.00  8.00  12.00  20.00  9.00
6.00  8.00  12.00 20.00  36.00  12.00
8.00  12.00 20.00 36.00  68.00  18.00
12.00 20.00 36.00 68.00  132.00 30.00
20.00 36.00 68.00 132.00 260.00 54.00
a[1]=1.750000
a[2]=-2.375000
a[3]=2.000000
a[4]=0.500000
a[5]=-0.375000