1、往链点点通共享资源,了解更多请登录www.WL单像空间后方交会程序西南交通大学 土木工程学院 测绘工程 张慧鑫 学号:20030593输入文件形式如下:C+源程序如下:#include #include #include #include #include using namespace std;const int n=6;void inverse (double cnn);templatevoid transpose (T1*mat1,T2*mat2,int a,int b);templatevoid multi(T1*mat1,T2 * mat2,T2 * result,int a,int
2、 b,int c);templatevoid input (T*mat,int a,int b);templatevoid output(T*mat,char*s,int a,int b);int main()ofstream outFile;cout.precision(5);double x0=0.0, y0=0.0; double fk=0.15324; /内方位元素double m=39689; /估算比例尺 double B45=0.0,R33,XG61,AT68,ATA66,ATL61;input (B,4,5); /从文件中读取控制点的影像坐标和地面坐标,存入数组Bdouble
3、Xs=0.0, Ys=0.0, Zs=0.0,Q=0.0,W=0.0,K=0.0; double X,Y,Z,L81,A86; /确定未知数的出始值for(int i=0;i4;i+)Xs=Xs+Bi2; Ys=Ys+Bi3; Zs=Zs+Bi4;Xs=Xs/4; Ys=Ys/4; Zs=Zs/4+m*fk;int f=0;do/迭代计算f+;/组成旋转矩阵 R00=cos(Q)*cos(K)-sin(Q)*sin(W)*sin(K); R01=-cos(Q)*sin(K)-sin(Q)*sin(W)*cos(K); R02=-sin(Q)*cos(W); R10=cos(W)*sin(K);
4、 R11=cos(W)*cos(K); R12=-sin(W); R20=sin(Q)*cos(K)+cos(Q)*sin(W)*sin(K); R21=-sin(Q)*sin(K)+cos(Q)*sin(W)*cos(K); R22=cos(Q)*cos(W); /计算系数阵和常数项 for(int i=0,k=0,j=0;i=6.0/206265.0|XG40=6.0/206265.0|XG50=6.0/206265.0);cout迭代次数为:fendl;/精度评定double AXG81,V81,VT18,VTV11,m0,D66;multi(A,XG,AXG,8,6,1); for(
5、i=0;i8;i+) /计算改正数Vi0=AXGi0-Li0; transpose (V,VT,1,8); multi(VT,V,VTV,1,8,1); m0=VTV00/2;for(i=0;i6;i+)for(int j=0;j6;j+)Dij=m0*ATAij;/屏幕输出误差方程系数阵、常数项、改正数output(A,误差方程系数阵A为:,8,6);output(L,常数项L为:,8,1);output(XG,改正数为:,6,1);outFile.open(aim.txt,ios:app); /打开并添加aim.txt文件 outFile.precision(10);/以文件的形式输出像片
6、外方位元素、旋转矩阵、方差阵outFile一、像片的外方位元素为:endlendl;outFilesetw(10)Xs=Xssetw(10)Ys=Yssetw(10)Zs=Zsendl;outFilesetw(20)航向倾角为:Qsetw(10)旁向倾角为:Wsetw(10)像片旋角为:Kendl;outFileendl二、旋转矩阵R为:endlendl;for( i=0;i3;i+)for(int j=0;j3;j+)outFilesetw(25)Rijsetw(25);outFileendl;outFileendl;outFilesetw(0)三、精度评定结果为:endl;outFile.
7、precision(5);for(i=0;i6;i+)for(int j=0;j6;j+)outFilesetw(14)Dijsetw(14);outFileendl;outFile.close();return 0;templatevoid transpose(T1*mat1,T2*mat2,int a,int b) int i,j; for(i=0;ib;i+) for(j=0;ja;j+)mat2ji=mat1ij;return;templatevoid multi(T1*mat1,T2 * mat2,T2 * result,int a,int b,int c) int i,j,k;fo
8、r(i=0;ia;i+)for(j=0;jc;j+)resultij=0;for(k=0;kb;k+)resultij+=mat1ik*mat2kj;return;template void input (T*mat,int a,int b) ifstream inFile;inFile.open(控制点坐标.txt);while(!inFile.eof()for (int i=0;ia;i+) for(int j=0;jmatij;inFile.close();return;templatevoid output(T*mat,char*s,int a,int b) coutsetw(15)s
9、endl;for(int i=0;ia;i+)for(int j=0;jb;j+) coutsetw(13)matij;coutendl;return;void inverse(double cnn) int i,j,h,k; double p; double qn12; for(i=0;in;i+)/构造高斯矩阵 for(j=0;jn;j+) qij=cij; for(i=0;in;i+) for(j=n;j12;j+) if(i+6=j) qij=1; else qij=0; for(h=k=0;kn-1;k+,h+)/消去对角线以下的数据 for(i=k+1;in;i+) if(qih=
10、0) continue; p=qkh/qih; for(j=0;j0;k-,h-) / 消去对角线以上的数据 for(i=k-1;i=0;i-) if(qih=0) continue; p=qkh/qih; for(j=0;j12;j+) qij*=p; qij-=qkj;for(i=0;in;i+)/将对角线上数据化为1 p=1.0/qii; for(j=0;j12;j+) qij*=p; for(i=0;in;i+) /提取逆矩阵 for(j=0;jn;j+) cij=qij+6;程序的结果输出如下:(包括文本输出结果和荧屏输出中间数据)往链点点通共享资源-资料说明-该资源由往链点点通搜索
11、于网络公开资源,仅供网友浏览阅读,请勿用于商业用途; 往链点点通,是免费的新一代电脑管理、网络应用桌面软件。 通过简洁清爽并可随意切换的两种窗口操作界面,构建了用户、电脑、互联网之间顺畅的入口平台。为用户管理电脑、智能办公、快捷上网、玩转应用(如 游戏,),提供全方位一站式的服务。让用户只需通过往链点点通,就能便捷到达信息时代的各个角落。真正实现一键直达,点点就通。 往链快搜索:无论是搜索硬盘资源、查找网络资源,还是追踪热门应用,都能享受前所未所的快速度。如本地文件搜索,千万文件,零秒呈现;如网络搜索,只需输入一次关键词,便能同步打开百度、google等多个搜索引擎的结果页; 往链优应用:与某些软件相比,往链点点通追求绿色无广告的体验,精选最优质的网络应用,为用户提供纯净实在的生活、工作、学习、娱乐、休闲应用空间。 往链点点通,让您用windows的使用习惯享受苹果的操作体验!查看和分享更多优质资源,请进入www.WL 下载往链点点通,找到您的一切网络所需!往链网址导航大全 往链点点通,让您无障碍畅游网络世界!