如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
最小二乘二次函数形式拟合C++程序#include<iostream.h>#include<math.h>#definemax_n25//(x_i,y_i)的最大维数typedefstructtagpoint//点的结构{doublex;doubley;}point;intmain(){intm;inti;pointpoints[max_n];staticdoublea11,a12,a13,a21,a22,a23,a31,a32,a33,c1,c2,c3;doubleA,B,C,tmp;cout<<"请在0到25之间选择输入m的值:"<<endl;//输入点mcin>>m;if(m>max_n){cout<<"这个值太大,大于25,请重新输入"<<endl;return1;}if(m<0){cout<<"这个值太小,小于0,请重新输入"<<endl;return1;}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].yfor(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;c1+=points[i].y;c2+=points[i].x*points[i].y;c3+=points[i].x*points[i].x*points[i].y;}a11=m;a21=a12;a22=a13;a31=a13;a32=a23;//求解A=c1*(a22*a33-a23*a32)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)-c2*(a12*a33-a13*a32)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)+c3*(a12*a23-a13*a22)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22);B=-c1*(a21*a33-a23*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)+c2*(a11*a33-a13*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)-c3*(a11*a23-a13*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22);C=c1*(a21*a32-a22*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)-c2*(a11*a32-a12*a31)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22)+c3*(a11*a22-a12*a21)/(a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-a31*a13*a22);cout<<"所得拟合函数为;"<<endl;cout<<"p(x)="<<A<<B<<"x"<<C<<"x^2"<<endl;//输出return0;}