C++程序,最小二乘,二次函数 拟合
C++实用知识分享
最小二乘二次函数形式拟合C++程序
#include <iostream.h>
#include <math.h>
#define max_n 25 //(x_i,y_i)的最大维数
typedef struct tagpoint //点的结构
{
double x;
double y;
} point;
int main()
{
int m;
int i;
point points[max_n];
static double a11,a12,a13,a21,a22,a23,a31,a32,a33,c1,c2,c3; double A,B,C,tmp;
cout<<"请在0到25之间选择输入m的值:"<<endl;//输入点 m
cin>>m;
if(m>max_n)
{
cout<<"这个值太大,大于25,请重新输入"<<endl;
return 1;
}
if(m<0)
{
cout<<"这个值太小,小于0,请重新输入"<<endl;
return 1;
}
cout<<"现在输入(x_i,y_i),i=1,..."<<m<<endl;//输入点
for(i=1;i<=m;i++)
{
cin>>tmp;
points[i].x=tmp;
cin>>tmp;
points[i].y=tmp;
}
//输入 points[i].x与points[i].y
for(i=1;i<=m;i++)
{ //其中为对原方程取对数后的
a12+=points[i].x;
a13+=points[i].x*points[i].x;
a23+=points[i].x*points[i].x*points[i].x;
a33+=points[i].x*points[i].x*points[i].x*points[i].x;


