电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

多点最小二乘法平面方程拟合计算VIP专享VIP免费

多点最小二乘法平面方程拟合计算_第1页
多点最小二乘法平面方程拟合计算_第2页
多点最小二乘法平面方程拟合计算_第3页
平面方程拟合计算平面方程的一般表达式为:,()记:则:平面方程拟合:对于一系列的n个点:要用点拟合计算上述平面方程,则使:最小。要使得S最小,应满足:即:有,或,解上述线形方程组,得:即:下面程序实际求得的是以下的参数:即:AX+BY+CZ+1=0其程序代码如下:#include"stdafx.h"#include#include#include#defineMAX10voidInverse(double*matrix1[],double*matrix2[],intn,doubled);doubleDeterminant(double*matrix[],intn);doubleAlCo(double*matrix[],intjie,introw,intcolumn);doubleCofactor(double*matrix[],intjie,introw,intcolumn);int_tmain(intargc,_TCHAR*argv[]){doublearray[12][3],Y[3];doubleA,B,C;A=B=C=0.0;ZeroMemory(array,sizeof(array));ZeroMemory(Y,sizeof(Y));for(inti=0;i<12;i++){for(intj=0;j<3;j++){array[i][j]=(double)rand();}}for(inti=0;i<12;i++){array[i][0]=1.0;}//设计了12个最简单的数据点,x=1平面上的点,double*Matrix[3],*IMatrix[3];for(inti=0;i<3;i++){Matrix[i]=newdouble[3];IMatrix[i]=newdouble[3];}for(inti=0;i<3;i++){for(intj=0;j<3;j++){*(Matrix[i]+j)=0.0;}}for(intj=0;j<3;j++){for(inti=0;i<12;i++){*(Matrix[0]+j)+=array[i][0]*array[i][j];*(Matrix[1]+j)+=array[i][1]*array[i][j];*(Matrix[2]+j)+=array[i][2]*array[i][j];Y[j]-=array[i][j];}}doubled=Determinant(Matrix,3);if(abs(d)<0.0001){printf("\n矩阵奇异");getchar();return-1;}Inverse(Matrix,IMatrix,3,d);for(inti=0;i<3;i++){A+=*(IMatrix[0]+i)*Y[i];B+=*(IMatrix[1]+i)*Y[i];C+=*(IMatrix[2]+i)*Y[i];}printf("\nA=%5.3f,B=%5.3f,C=%5.3f",A,B,C);for(inti=0;i<3;i++){delete[]Matrix[i];delete[]IMatrix[i];}getchar();return0;}voidInverse(double*matrix1[],double*matrix2[],intn,doubled){inti,j;for(i=0;i

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群