- 论坛徽章:
- 0
|
- #include <stdio.h>
- int main()
- {
- float a[3]={0,0,0},b[3]={0,0,0},result1=0,result2=0,shang=0,Y[13]={106.42,108.20,109.58,109.50,110.00,109.93,110.49,110.59,110.60,110.90,100.76,111.00,111.20},XY[13],X_conver[13]={0},X_doub[13],Y_conver[13],X[13]={2,3,4,5,7,8,10,11,14,15,16,18,19};
- int i;
- printf("X Y 数据如下:\n");
- for(i=0;i<13;i++)
- {printf("%f ",Y[i]);}
- printf("\n\n");
- for(i=0;i<13;i++)
- {printf("%f ",X[i]);}
- printf("\n\n\n");
- for(i=0;i<13;i++)
- {
- Y_conver[i]=1/Y[i];
- printf("%f ",Y[i]);
- X_conver[i]=1/X[i];
- X_doub[i]=X_conver[i]*X_conver[i];
- XY[i]=X_conver[i]*Y_conver[i];
- }
- i=0;
-
- while(i<13)
- {
- a[0]=a[0]+1;
- b[0]=b[0]+X_conver[i];
- a[1]=a[1]+X_conver[i];
- b[1]=b[1]+X_doub[i];
- result1=result1+Y_conver[i];
- result2=result2+XY[i];
- i++;
- }
- //printf("%d %f\n",a[0],b[0]);
- printf("\n\n方程组为:\n%f a + %f b = %f\n%f a + %f b = %f",a[0],b[0],result1,a[1],b[1],result2);//检查系数是否争取
- shang=a[0]/a[1];
- b[1]=b[1]*shang;
- result2=result2*shang;
- b[0]=b[0]-b[1];
- result1=result1-result2;
- b[3]=result1/b[0];
- a[3]=(result2-b[1]*b[3])/(a[1]);
-
-
- printf("\n\n\na=: %f\nb=: %f\n\n\n\n",a[3],b[3]);
- printf("最后表达式为:\ny*=x/(%f + %f)\n",a[3],b[3]);
- printf("按任意键结束....\n");
- getchar();
- return 0;
- }
复制代码 非线性曲线的数据拟合的计算演示 |
|