版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务已知f=153.24mm,m=10000,限差0.1各点坐标点号像点坐标地面坐标x(mm)y(mm)X(m)Y(m)Z(m)1-86.15-68.9936589.4125273.322195.172-53.4082.2137631.0831324.51728.693-14.78-76.6339100.9724934.982386.50410.4664.4340426.5430319.81757.31求近似垂直摄影情况下后方交会解设计任务1、 确定未知数的初始值:0 =0 =0 = 0 , 内方位元素x0=0.0,y0=0.0,f=153.24mm。Zs0=H+ 14i=14Zi=mf+14
2、i=14Zi=3049.3 m ;Xs0= 14i=14Xi = 38437m ; Ys0= 14i=14Yi = 27963.16m2、 计算旋转矩阵R 利用角元素的近似值计算方向余弦值,组成R阵根据摄影测量学P32中的公式(3-9),初步计算R阵R00=cos()*cos(K)-sin()*sin(W)*sin(K); R01=-cos()*sin(K)-sin()*sin(W)*cos(K); R02=-sin()*cos(W); R10=cos(W)*sin(K); R11=cos(W)*cos(K); R12=-sin(W); R20=sin()*cos(K)+cos()*sin(W
3、)*sin(K); R21=-sin()*sin(K)+cos()*sin(W)*cos(K); R22=cos()*cos(W);得初始R阵1000100013、 逐点计算近似值(x),(y):带入摄影测量学P61的公式(5-1);得(x1)1(y1)1(x2)1(y2)1(x3)1(y3)1(x4)1(y4)1-0.33147-0.48258-0.053220.221960.15351-0.700980.133020.157564、 组成误差方程式:按(5-8);(5-9b)、(5-4)式逐点计算误差方程式的系数和常数项根据Lx=x-(x);Ly=y-(y)得Lx1Ly1Lx2Ly2Lx3
4、Ly3Lx4Ly40.245320.41359-0.00018-0.13975-0.168290.62347-0.12256-0.09313解得A阵为-0.000100.000056219-0.201678-0.038785-0.068990-0.00010.0000450209-0.00000387855-0.18430.08615-0.000100.0000348473-0.171848-0.28648-0.082210-0.0001-0.0000536479-0.0000028648-0.1973440.0534534-0.000100.000009645-0.154666-0.0073
5、9096-0.076630-0.00010.0000500065-0.000000739096-0.191560.01478-0.00010-0.00000682589-0.153954-0.004397920.064430-0.0001-0.0000420452-0.000000439792-0.18033-0.01046根据公式X=(ATA)-1ATL解除X阵,检验1 、1 、1 并不在限差0.1之内;利用解得的1 、1 、1, 带入2中循环;知道解出合格结果!5、 结果,通过C+程序解得结果6、 源程序代码#include <iostream>#include <fst
6、ream>#include <cmath>#include <string>#include <iomanip>using namespace std;const int n=6;void inverse (double cnn);template<typename T1,typename T2>void transpose (T1*mat1,T2*mat2,int a,int b);template<typename T1,typename T2>void multi(T1*mat1,T2 * mat2,T2 * result
7、,int a,int b,int c);template<typename T>void input (T*mat,int a,int b);template<typename T>void 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=10000; /估算比例尺 double B45=0.0,R33,XG61,AT68,ATA66,ATL61;in
8、put (B,4,5); /从文件中读取控制点的影像坐标和地面坐标,存入数组Bdouble 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;i<4;i+)Xs=Xs+Bi2; Ys=Ys+Bi3; Zs=Zs+Bi4;Xs=Xs/4; Ys=Ys/4; Zs=Zs/4+m*fk;/cout<<Xs<<" "<<Ys<<" "<<Zs<<endl;/int
9、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); 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 t=0;t<3;t+) for
10、(int j=0;j<3;j+)cout<<" "<<Rtj; cout<<endl; cout<<endl; /计算系数阵和常数项 for(int i=0,k=0,j=0;i<=3;i+,k+,j+) X=R00*(Bi2-Xs)+R10*(Bi3-Ys)+R20*(Bi4-Zs);Y=R01*(Bi2-Xs)+R11*(Bi3-Ys)+R21*(Bi4-Zs);Z=R02*(Bi2-Xs)+R12*(Bi3-Ys)+R22*(Bi4-Zs); / Lj0=Bi0-(x0-fk*X/Z); /l=x-(x) /插
11、入cout<<Lj0<<" "/Lj+10=Bi1-(y0-fk*Y/Z); /l=y-(y)/插入cout<<Lj+10<<endl;/j+;Ak0=(R00*fk+R02*(Bi0-x0)/Z;Ak1=(R10*fk+R12*(Bi0-x0)/Z;Ak2=(R20*fk+R22*(Bi0-x0)/Z;Ak3=(Bi1-y0)*sin(W)-(Bi0-x0)*(Bi0-x0)*cos(K)-(Bi1-y0)*sin(K)/fk+fk*cos(K)*cos(W);Ak4=-fk*sin(K)-(Bi0-x0)*(Bi0-x0)
12、*sin(K)+(Bi1-y0)*cos(K)/fk;Ak5=Bi1-y0;Ak+10=(R01*fk+R02*(Bi1-y0)/Z;Ak+11=(R11*fk+R12*(Bi1-y0)/Z;Ak+12=(R21*fk+R22*(Bi1-y0)/Z;Ak+13=-(Bi0-x0)*sin(W)-(Bi1-y0)*(Bi0-x0)*cos(K)-(Bi1-y0)*sin(K)/fk-fk*sin(K)*cos(W);Ak+14=-fk*cos(K)-(Bi1-y0)*(Bi0-x0)*sin(K)+(Bi1-y0)*cos(K)/fk;Ak+15=-(Bi0-x0);k+;transpose(A
13、,AT,6,8);multi(AT,A,ATA,6,8,6);inverse(ATA);multi(AT,L,ATL,6,8,1);multi(ATA,ATL,XG,6,6,1);Xs=Xs+XG00; Ys=Ys+XG10; Zs=Zs+XG20;Q=Q+XG30; W=W+XG40; K=K+XG50;/cout<<Q<<"*"<<W<<"*"<<K<<endl;/while(XG30>=6.0/206265.0|XG40>=6.0/206265.0|XG50>
14、=6.0/206265.0);cout<<"迭代次数为:"<<f<<endl;/精度评定double AXG81,V81,VT18,VTV11,m0,D66;multi(A,XG,AXG,8,6,1); for( i=0;i<8;i+) /计算改正数Vi0=AXGi0-Li0; transpose (V,VT,1,8); multi(VT,V,VTV,1,8,1); m0=VTV00/2;for(i=0;i<6;i+)for(int j=0;j<6;j+)Dij=m0*ATAij;/屏幕输出误差方程系数阵、常数项、改正数
15、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);/以文件的形式输出像片外方位元素、旋转矩阵、方差阵outFile<<"一、像片的外方位元素为:"<<endl<<endl;outFile<<setw(10)<
16、<"Xs="<<Xs<<setw(10)<<"Ys="<<Ys<<setw(10)<<"Zs="<<Zs<<endl;outFile<<setw(20)<<"航向倾角为:"<<Q<<setw(10)<<"旁向倾角为:"<<W<<setw(10)<<"像片旋角为:"<<K
17、<<endl;outFile<<endl<<"二、旋转矩阵R为:"<<endl<<endl;for( i=0;i<3;i+)for(int j=0;j<3;j+)outFile<<setw(25)<<Rij<<setw(25);outFile<<endl;outFile<<endl;outFile<<setw(0)<<"三、精度评定结果为:"<<endl;outFile.precision
18、(5);for(i=0;i<6;i+)for(int j=0;j<6;j+)outFile<<setw(14)<<Dij<<setw(14);outFile<<endl;outFile.close();return 0;template<typename T1,typename T2>void transpose(T1*mat1,T2*mat2,int a,int b) int i,j; for(i=0;i<b;i+) for(j=0;j<a;j+)mat2ji=mat1ij;return;template&l
19、t;typename T1,typename T2>void multi(T1*mat1,T2 * mat2,T2 * result,int a,int b,int c) int i,j,k;for(i=0;i<a;i+)for(j=0;j<c;j+)resultij=0;for(k=0;k<b;k+)resultij+=mat1ik*mat2kj;return;template <typename T>void input (T*mat,int a,int b) ifstream inFile;inFile.open("控制点坐标.txt&quo
20、t;);while(!inFile.eof()for (int i=0;i<a;i+) for(int j=0;j<b;j+)inFile>>matij;inFile.close();return;template<typename T>void output(T*mat,char*s,int a,int b) cout<<setw(15)<<s<<endl;for(int i=0;i<a;i+)for(int j=0;j<b;j+) cout<<setw(13)<<matij;cout
21、<<endl;return;void inverse(double cnn) int i,j,h,k; double p; double qn12; for(i=0;i<n;i+)/构造高斯矩阵 for(j=0;j<n;j+) qij=cij; for(i=0;i<n;i+) for(j=n;j<12;j+) if(i+6=j) qij=1; else qij=0; for(h=k=0;k<n-1;k+,h+)/消去对角线以下的数据 for(i=k+1;i<n;i+) if(qih=0) continue; p=qkh/qih; for(j=0;
22、j<12;j+) qij*=p; qij-=qkj; for(h=k=n-1;k>0;k-,h-) / 消去对角线以上的数据 for(i=k-1;i>=0;i-) if(qih=0) continue; p=qkh/qih; for(j=0;j<12;j+) qij*=p; qij-=qkj;for(i=0;i<n;i+)/将对角线上数据化为1 p=1.0/qii; for(j=0;j<12;j+) qij*=p; for(i=0;i<n;i+) /提取逆矩阵 for(j=0;j<n;j+) cij=qij+6;7、 感想这次摄影测量作业感觉非常
23、难!一开始审题就出现了很大问题,读不懂,不知道要求什么东西。按照书上5-2节的有关内容,采用EXCEL软件求解(因为C+虽然考了85分,但是考试成绩和实际操作水品完全不成正比,而且当初讲的时候都是些皮毛,数组用起来比较别扭,更别提用C+中的数组求解逆矩阵了,还有迭代。)老师上课没讲过,平时也不爱研究。当我用EXCEL求出第一遍的X阵的时候,感觉自己都要崩溃了,真的好烦。后来就在百度上搜求逆矩阵的C+源程序,搜到很多,但是都用不了,没办法,走投无路的我又在百度上搜起了“摄影测量后方交会”的有关内容,没想到居然出现了类似的题目。而且不止一个,我怀着激动地心情下载了一份,打开源程序我看呆了,感觉真的要是自己编出来的,该多牛,但是可悲的是我居然不大看得懂。我和孙维亚同学在下载的源程序上面看了好长时间,对里面一些地方进行修改调试,以便看得明白些。直到写报的的时候,我敢说,这份程序我也只能看懂一半的地方,而且这一半也只是理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 15434:2025 EN Information technology - Automatic identification and data capture techniques - Syntax for high-capacity ADC media
- 《单证管理流程》课件
- 《少儿青春期教育》课件
- 单位管理制度集粹选集人员管理
- 《电化学局部腐蚀》课件
- 单位管理制度合并汇编【员工管理篇】
- 单位管理制度分享合集职工管理篇
- 单位管理制度范例汇编员工管理篇
- 单位管理制度呈现汇编【人力资源管理篇】十篇
- 单位管理制度呈现大全员工管理篇十篇
- 2024年考研(英语一)真题及参考答案
- 《简·爱》-2022年中考一轮复习之必读名著对比阅读训练
- 交通灯课程设计交通灯控制器
- 单层钢结构工业厂房纵向定位轴线的定位
- 肿瘤科常见急重症
- 03SG715-1蒸压轻质加气混凝土板(NACL)构造详图
- 粉体工程第六章粉碎过程及设备
- 尽职调查工作底稿1_公司业务调查
- 洪水计算(推理公式法)
- 集装箱码头堆场项目可行性研究报告写作范文
- 医保药店一体化信息管理系统操作手册
评论
0/150
提交评论