最小二乘法直线拟合c语言代码,最小二乘法拟合一条直线(C语言代码)
最小二乘法擬合一條直線(C語言代碼) #include
#define N 9 //N為要擬合的數據的個數
float X[9] = {1,1.477,1.778,2,2.176,2.301,2.398,2.477,2.638};
float Y[9] = {7.55,8.02,8.41,8.64,8.75,8.79,8.81,8.83,8.87};
float K=0; //擬合直線的斜率
float R=0; //擬合直線的截距
float x_sum_average=0; //數組 X[N] 個元素求和 并求平均值
float y_sum_average=0; //數組 Y[N] 個元素求和 并求平均值
float x_square_sum=0; //數組 X[N] 個個元素的平均值
float x_multiply_y=0; //數組 X[N]和Y[N]對應元素的乘機
float Squre_sum(float c[N]) ;
float Sum_Average(float d[N]);
float X_Y_By(float m[N],float n[N]);
float Squre_sum(float c[N]);
void Line_Fit(void);
void Line_Fit(void)
{
x_sum_average= Sum_Average(X);
y_sum_average= Sum_Average(Y);
x_square_sum = Squre_sum(X);
x_multiply_y = X_Y_By(X,Y);
K = ( x_multiply_y - N * x_sum_average * y_sum_average)/( x_square_sum - N * x_sum_average*x_sum_average );
R = y_sum_average - K * x_sum_average;
printf("K = %f\n",K);
printf("R = %f\n",R);
}
float Sum_Average(float d[N])
{
unsigned int i=0;
float z=0;
總結
以上是生活随笔為你收集整理的最小二乘法直线拟合c语言代码,最小二乘法拟合一条直线(C语言代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 研究War3编辑器(7):在触发器中使用
- 下一篇: 菜鸟来也!50行Python代码一键整理