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;

C++程序,最小二乘,二次函数 拟合相关文档

最新文档

返回顶部