基于MATLAB的控制网平差程序设计--第五章源代码精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于MATLAB的控制网平差程序设计--第五章源代码精品资料.doc》由会员分享,可在线阅读,更多相关《基于MATLAB的控制网平差程序设计--第五章源代码精品资料.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、观测数据读入程序,rddat1函数(85页)global net ed dd sd dd1 pn x0 y0 m1 m2 m3 ms pp e d sid md g f dir ni si ma s t az aa bb cc rt rr ttglobal pathname filenamex0=;y0=;e=;d=;sid=;g=;f=;dir=;si=;ni=;s=;t=;az=;pn=;filename,pathname=uigetfile(*.txt,请选择原始数据);fit1=fopen(strcat(pathname,filename),rt);if(fit1=-1) msgbox
2、(Input File or Path is not correct,Warning,warn); return;endnet=fscanf(fit1,%d,1);a=fscanf(fit1,%d,3);ed=a(1);dd=a(2);dd1=a(3);sd=ed+dd;pn=fscanf(fit1,%d,sd);a=fscanf(fit1,%f,2*ed);for i=1:ed x0(i)=a(2*i-1); y0(i)=a(2*i);enda=fscanf(fit1,%d,3);m1=a(1);m2=a(2);m3=a(3);isid=0; a=fscanf(fit1,%f,2); ms=
3、a(1); pp=a(2); a=fscanf(fit1,%d %d %f,3*m1); for i=1:m1 e(i)=a(3*i-2);d(i)=a(3*i-1);sid(i)=a(3*i); end e,i1=chkdat(sd,pn,e); d,i2=chkdat(sd,pn,d); i3=0; isid=i1+i2+i3;idir=0; md=fscanf(fit1,%f,1); a=fscanf(fit1,%d %d %f,3*m2); for i=1:m2 n1(i)=a(3*i-2); n2(i)=a(3*i-1); unk(i)=a(3*i); end n1,i1=chkda
4、t(sd,pn,n1); n2,i2=chkdat(sd,pn,n2); i3=0; ik=1; si(1)=1; for i=1:sd ii=0; for j=1:m2 if(n1(j)=j) ii=ii+1; g(ik)=n1(j); f(ik)=n2(j); dir(ik)=unk(j); ik=ik+1; end end ni(i)=ii; si(i+1)=si(i)+ni(i); end idir=i1+i2+i3;iaz=0;if(m30) ma=fscanf(fit1,%f,1); a=fscanf(fit1,%d %d %f,3*m3); for i=1:m3 s(i)=a(3
5、*i-2); t(i)=a(3*i-1); az(i)=a(3*i); end s,i1=chkdat(sd,pn,s); t,i2=chkdat(sd,pn,t); i3=0; iaz=i1+i2+i3;endkk=isid+idir+iaz;if(kk0) msgbox(Error by function rddat1,Warning,warn); return;endfclose(all);误差方程与法方程的组成函数-obnorm函数(90页) function obnormglobal ed dd dd1 ni si e d g f s t global m1 m2 m3 ms pp
6、md ma x0 y0 sid dir az c fit1 fit2global a q1 pa3 qls wlo=2062.648062470964;m=m1+m2+m3;n=2*dd;sum=n*(n+1)/2.0;sd=ed+dd;a(1:m,1:9)=0.0;for i=1:sd ii=4*(ni(i)+1); pa3(i,1:ii)=0.0;endc(1:sum)=0.0;w(1:n)=0.0;for i=1:m1 %边长观测误差方程 dx=x0(d(i)-x0(e(i); dy=y0(d(i)-y0(e(i); ss=sqrt(dx*dx+dy*dy); cosa=dx/ss; s
7、ina=dy/ss; a(i,1)=2*e(i)-1-2*ed+1.0e-9; a(i,2)=-cosa; a(i,3)=a(i,1)+1; a(i,4)=-sina; a(i,5)=2*d(i)-1-2*ed+1.0e-9; a(i,6)=cosa; a(i,7)=a(i,5)+1; a(i,8)=sina; a(i,9)=100.0*(ss-sid(i); q1(i)=(ms2+(ss*pp*0.0001)2);endq1(m1+1:m2+m1)=md*md;for i=1:sd if(ni(i)=0) continue; end jj=5; z0=0.0; zal=0; for j=si
8、(i):s(i)+ni(i)-1 dx=x0(f(j)-x0(g(j); dy=y0(f(j)-y0(g(j); a0=alfa(dx,dy); z1=a0-dir(j); if(z1=2.0*pi) ss=ss-2.0*pi; end a(ii,9)=(a0-ss)*lo*100.0; pa3(i,jj)=a(ii,5); pa3(i,jj+1)=a(ii,6)/q1(ii); pa3(i,jj+2)=a(ii,7); pa3(i,jj+3)=a(ii,8)/q1(ii); pa3(i,2)=pa3(i,2)+a(ii,2)/q1(ii); pa3(i,4)=pa3(i,4)+a(ii,4)
9、/q1(ii); jj=jj+4; end pa3(i,1)=a(ii,1); pa3(i,3)=a(ii,3); qls(i)=-zal;endfor i=1:m3 dx=x0(t(i)-x0(s(i); dy=y0(t(i)-y0(s(i); a0=alfa(dx,dy,a0); ss=dx*dx+dy*dy; ai=-dy/ss*lo; bi=dx/ss*lo; ii=m1+m2+i; a(ii,1)=2*s(i)-1-2*ed+1.0e-9; a(ii,2)=-ai; a(ii,3)=a(ii,1)+1; a(ii,4)=-bi; a(ii,5)=2*t(i)-1-2*ed+1.0e-
10、9; a(ii,6)=ai; a(ii,7)=a(ii,5)+1; a(ii,8)=bi; if(a0-az(i)pi) a(ii,9)=(a0-az(i)-2.0*p)*lo*100; else a(ii,9)=(a0-az(i)*lo*100.0; end q1(ii)=ma*ma;endfor i=1:m %形成法方程 for j=1:4 jj=fix(a(i,2*j-1); if(jj=0) continue; end w(jj)=w(jj)+a(i,2*j)*a(i,9)/q1(i); di=(jj-1)*(n-jj/2.0); for k=1:4 kk=fix(a(i,2*k-1)
11、; if(kkkk) continue; end c(di+kk)=c(di+kk)+a(i,2*k)*a(i,2*j)/q1(i); end endendif(m20) %和误差方程形成法方程 for i=1:sd if(ni(i)=0) continue; end for j=1:2*(ni(i)+1) jj=fix(pa3(i,2*j-1); if(jj=0) continue; end di=(jj-1)*(n-jj/2); for k=1:2*(ni(i)+1) kk=fix(pa3(i,2*k-1); if(kkkk) continue; end c(di+kk)=c(di+kk)
12、+pa3(i,2*k)*pa3(i,2*j)/qls(i); end end endendreturn 平差值与精度评定(94页)global net ed dd sd dd1 pn x0 y0 m1 m2 m3 ms pp e d sid md g f dir ni si ma s t azglobal aa bb cc rt rr tt global a q1 pa3 qls w c x y uw0global pathname net_name s_datafile a_datafile;fit2=fopen(strcat(pathname,net_name,a_datafile,wt)
13、;if(fit2=-1) msgbox(Input File or Path is not correct,Warning,warn); return;endk=1;while(k) m=m1+m2+m3; obnorm; c=invsqr(c,2*dd); uw0,k=adjxy(fit2);endellipse(uw0,fit2);n=2*dd;sum=n*(n+1)/2.0;n1=2*(ed+dd);sum1=n1*(n1+1)/2.0;for i=sum1:-1:sum1-sum+1 c(i)=c(i-(sum1-sum);endfor i=1:2*ed di=(i-1)*(n1-i/
14、2.0); for j=i:n1 if(j=i) c(di+j)=0.00000001; else c(di+j)=0.0; end endendif(m10) adjs(uw0,fit2);endif(m20) adjd(uw0,fit2);endif(m30) adja(uw0,fit2);endfclose(fit2);open(strcat(pathname,net_name,a_datafile); 坐标改正数计算及单位权中误差计算函数-adjxy函数(95页)function uw0,k=adjxy(fit2)global ed dd dd1 ni si e d g f s t p
15、n x y global m1 m2 m3 ms md ma x0 y0 sid dir az cglobal a q1 pa3 qls wsd=ed+dd;n=2*dd;k=0;for i=1:n dxy(i)=0.0; di=(i-1)*(n-i/2.0); for j=1:n dj=(j-1)*(n-j/2.0); if(j1.0) k=1; end dxy(i)=dxy(i)/100.0;endx(1:ed)=x0(1:ed);y(1:ed)=y0(1:ed);for i=1:dd x(ed+i)=x0(ed+i)+dxy(2*i-1); y(ed+i)=y0(ed+i)+dxy(2*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于MATLAB的控制网平差程序设计-第五章源代码 精品资料 基于 MATLAB 控制 网平差 程序设计 第五 源代码 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内