资源描述:
《球的最小二乘拟合.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、球的最小二乘拟合以下是我写的程序:#includeWindows.h#includemath.h#includestdio.h#includestdlib.h#defineMAX10voidInput(double*matrix,intm,intn,doubleA[4][4]);voidOutput(double*matrix,intm,intn,doubleIA[4][4]);voidInputExample();voidInverse(double*matrix1,double*matrix2,intn,doubled);doubleAlCo(doub
2、le*matrix,intjie,introw,intcolumn);doubleDeterminant(double*matrix,intn);doubleCofactor(double*matrix,intjie,introw,intcolumn);voidPrintMTX(doubleA[4][4]){for(inti=0;i4;i++){printf("");for(intj=0;j4;j++)printf("%10G",A[i][j]);}printf("");}voidmain(){double*matrix1[MAX],*matrix
3、2[MAX];doubled;intn;//printf("请输入行列式的阶数:");//scanf("%d",&n);n=4;//InputExample();//printf("开始输入矩阵:");inti,j;doubleY[4],fac[4],array[12][3],MTX[4][4],IMTX[4][4];ZeroMemory(MTX,sizeof(MTX));ZeroMemory(IMTX,sizeof(IMTX));ZeroMemory(Y,sizeof(Y));ZeroMemory(fac,sizeof(fac));//以下的数据是我
4、用SolidWorks画出来的球,我在球上任意取了12个点array[0][0]=-70.08;array[0][1]=29.27;array[0][2]=6.04;array[1][0]=-72.37;array[1][1]=24.19;array[1][2]=-1.64;array[2][0]=-65.1;array[2][1]=13.6;array[2][2]=0.58;array[3][0]=-60.11;array[3][1]=13.51;array[3][2]=4.93;array[4][0]=-61.12;array[4][1]=27.69;
5、array[4][2]=12.16;array[5][0]=-65;array[5][1]=22.32;array[5][2]=-11.14;array[6][0]=-61.44;array[6][1]=18.31;array[6][2]=-10.46;array[7][0]=-56.37;array[7][1]=15.920;array[7][2]=-7.78;array[8][0]=-53.27;array[8][1]=15.95;array[8][2]=-5.39;array[9][0]=-51.64;array[9][1]=16.53;array[
6、9][2]=-3.82;array[10][0]=-50.99;array[10][1]=16.92;array[10][2]=-3.12;array[11][0]=-58.94;array[11][1]=15.16;array[11][2]=7.64;for(i=0;i12;i++){Y[0]+=pow(array[i][0],3)+pow(array[i][1],2)*array[i][0]+pow(array[i][2],2)*array[i][0];Y[1]+=pow(array[i][1],3)+pow(array[i][0],2)*array[
7、i][1]+pow(array[i][2],2)*array[i][1];Y[2]+=pow(array[i][2],3)+pow(array[i][0],2)*array[i][2]+pow(array[i][1],2)*array[i][2];Y[3]-=pow(array[i][0],2)+pow(array[i][1],2)+pow(array[i][2],2);}for(j=0;j12;j++){MTX[0][0]+=pow(array[j][0],2);MTX[0][1]+=array[j][0]*array[j][1];MTX[0][2]+=
8、array[j][0]*array[j][2];MTX[0][3]