通用水准网形秩亏自由网和拟稳平差程序设计_第1页
通用水准网形秩亏自由网和拟稳平差程序设计_第2页
通用水准网形秩亏自由网和拟稳平差程序设计_第3页
通用水准网形秩亏自由网和拟稳平差程序设计_第4页
通用水准网形秩亏自由网和拟稳平差程序设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB设计任何网形的秩亏自由网平差和拟稳平差程序设计程序介绍:程序适合于任何网形的水准网平差,原始数据输入到连个excel表格程序界面:原始数据录入表格:(1)DH表(2)GXLB表程序代码:functionxsz=XSZ(num1,num2)%函数功能提取误差系数A[m1,n1]=size(num1);[m2,n2]=size(num2);n=0;fori=1:m1%用来判断参数个数ifnum1(i,2)==1n=n+0;elsen=n+1;endendxsz=zeros(m2,n);%建立系数阵,全为零fori=1:m2%提取系数阵q=num2(i,1);z=num2(i,2);xsz(i,z)=1;xsz(i,q)=-1;endend%---------------常数项L--------------------------------------------------------------functionl=L(num1,num2)[m1,n1]=size(num1);[m2,n2]=size(num2);l=zeros(m2,1);fori=1:m2%计算lq=num2(i,1);z=num2(i,2);l(i,1)=num2(i,4)-num1(z,4)+num1(q,4);endl=l*1000;%把l从米换算为毫米end%-------------求平差权阵P------------------------------------------------------------functionp=P1(num1,num2)[m1,n1]=size(num1);[m2,n2]=size(num2);p=zeros(m2,m2);fori=1:m2p(i,i)=1/num2(i,5);endend%------------秩亏自由网平差---------------------------------------------------------------------function[v,Qxx]=PTPCclearallclcglobalH1;globalK1;[num1]=xlsread('DH');K=num1(:,4);K1=K';[m1,n1]=size(num1);%用来判断num1得行列[num2]=xlsread('GXLB');[m2,n2]=size(num2);A=XSZ(num1,num2)%误差方程系数r=rank(A);%矩阵的秩d=1;%秩亏数l=L(num1,num2)%误差方程常数项单位mmP=P1(num1,num2);%权N=A'*P*A%法方程系数W=A'*P*lNN=N*NN0=NN(1:r,1:r);NN_=blkdiag(inv(N0),zeros(d,d));%广义逆求逆Nm=N*NN_x=Nm*W%-----------高程平差值------H=x/1000+num1(:,4)%单位统一为MH1=H';%----精度评定-------v=A*x-l%单位mmQxx=N*NN_*N*NN_*Nmsgbox('秩亏自由网普通平差完成')%---------------拟稳平差---------------------------------------------------------------------------------------function[v,Qxx]=NWPCclearallglobalH2;globalK1;[num1]=xlsread('DH');K=num1(:,4);K1=K';;[m1,n1]=size(num1);%用来判断num1得行列[num2]=xlsread('GXLB');[m2,n2]=size(num2);A=XSZ(num1,num2)%误差方程系数r=rank(A);%矩阵的秩d=m1-r;%秩亏数l=L(num1,num2)%误差方程常数项单位mmP=P1(num1,num2);%权fori=1:m1%找出稳定点ifnum1(i,7)==1f(i)=1;elsef(i)=0;endendc1=find(f==1);%找出稳定点的下标c0=find(f==0);%非稳定点下标A1=A(:,c0)A2=A(:,c1)N11=A1'*P*A1;N12=A1'*P*A2;N21=N12';N22=A2'*P*A2;M=N22-N21*inv(N11)*N12;r=rank(M);d=1;MM=M*M;M0=MM(1:r,1:r);MM_=blkdiag(inv(M0),zeros(d,d));%广义逆求逆Mm_=M*MM_;a=(A2'-N21*inv(N11)*A1')';a_=Mm_*a';b_=inv(N11)*(A1'-N12*a_);%-------结算未知数-------------------------------------------------------------x2=a_*P*l;x1=b_*P*l;x=[x1;x2]H=x/1000+num1(:,4)%单位统一为MH2=H';%------计算改正数---------------------------------------------------------------------------v=A*x-l%------计算位置参数协因数矩阵-------Qxx=[b_*P*b_'b_*P*a_';a_*P*b_'a_*P*a_']msgbox('秩亏自由网拟稳平差完成')-%-------程序界面代码-----------------------------------------------------------------------------------------functionvarargout=GUI(varargin)gui_Singleton=1;gui_State=struct('gui_Name',mfilename,...'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@GUI_OpeningFcn,...'gui_OutputFcn',@GUI_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);ifnargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endifnargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:});elsegui_mainfcn(gui_State,varargin{:});endfunctionGUI_OpeningFcn(hObject,eventdata,handles,varargin)handles.output=hObject;%Updatehandlesstructureguidata(hObject,handles);%---Outputsfromthisfunctionarereturnedtothecommandline.functionvarargout=GUI_OutputFcn(hObject,eventdata,handles)varargout{1}=handles.output;functionradiobutton1_Callback(hObject,eventdata,handles)[v,Qxx]=PTPC;set(handles.uitable1,'Data',v);set(handles.uitable2,'Data',Qxx);globalH1;set(handles.edit4,'string',num2str(H1));globalK1;set(handles.edit3,'string',num2str(K1));functionradiobutton2_Callback(hObject,eventdata,handles)[v,Qxx]=NWPC;set(handles.uitable1,'Data',v);set(handles.uitable2,'Data',Qxx);globalH2;set(handles.edit4,'string',num2str(H2));globalK1;set(handles.edit3,'string',num2str(K1));functionedit1_Callback(hObject,eventdata,handles)functionedit1_CreateFcn(hObject,eventdata,handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunctionedit2_Callback(hObject,eventdata,handles)%---Executesduringobjectcreation,aftersettingallproperties.functionedit2_CreateFcn(hObject,eventdata,handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end%---Executeswhenentereddataineditablecell(s)inuitable1.functionuitable1_CellEditCallback(hObject,eventdata,handles)--------------------------------------------------------------------functionUntitled_1_Callback(hObject,eventdata,handles)--------------------------------------------------------------------functionUntitled_2_Callback(hObject,eventdata,handles)h=msgbox({'´Ë³ÌÐòԭʼÊý¾ÝµÄ¼ÈëÔÚDH(µãºÅ±í)ºÍGXLB£¨¹ØϵÁбí)ÖÐ,ÒÀ¾Ý±í¸ñ˵Ã÷½øÐÐÊý¾Ý¼È룬';'ÆäÖÐ"1"±íʾÊÇ"0"±íʾ·ñ'})%ÐÞ¸Ä×ÖÌåah=get(h,'CurrentAxes');ch=get(ah,'Children');set(ch,'FontSize',8);functionedit3_Callback(hObject,eventdata,handles)%---Executesduringobjectcreation,aftersettingallproperties.functionedit3_CreateFcn(hObject,eventdata,handles)ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');endfunctionedit4_Callback(hObject,eventdata,handles)%---Executesduringobjectcreation,aftersettingallproperties.functionedit4_CreateFcn(hObject,eventdata,handles)ifispc&&isequal(get(hObject,'Backg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论