用最小二乘法拟合直线的问题 回答清楚追加分!
来源:百度知道 编辑:UC知道 时间:2024/05/13 08:53:13
请看清我的问题好吗?我是说用最小二乘法拟合直线时垂直于x轴的直线怎么处理?请不要随便帖无关的代码。请提供判断方法。谢谢!
原理中有一类题目,对测量数据进行处理,然后使用最小二乘法对数据进行处理并且拟合一条曲线,以方便对数据结果进行进一步的处理。这个程序拟合的是直线,用于处理近似线性的数据。下面是源程序,至少可以运行,会不会有问题就不知道了噻。程序是用C语言写的,但是注释的风格是C++的,在某些编译器下,如TC可能会有问题,把 // 换成 /* */就可以了。
#include <stdio.h>
#include <conio.h>
#define N 20 //定义最多能够处理的数据组数
//变量X,Y 线性方程系数k 线性方程矩阵m0 m1 m2
double x[N],y[N],k[2][3],m1,m2,m0;
int i=0,j=0;
//求(A1*B1~Ac*Bc)的和
double fsum(double a[],double b[],int c)
{
double sum=0;
for(i=0;i < c;i++)
sum+=a[i]*b[i];
return sum;
}
//求矩阵
double fmatrix(int m,int n)
{
double matrix;
matrix=k[0][m]*k[1][n]-k[0][n]*k[1][m];
return matrix;
}
void main()
{
int limit=0; //数据组数
double mi[N]; //大小为1的数列,矩阵求和时匹配使用
char ch;
//声明
printf("This program will calculate Y=aX+b, with maximum