資源描述:
《matlab 常見經(jīng)典平差 程序.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、希望本人編寫的經(jīng)典平差可以對matlab初學者以及測繪專業(yè)的學生有用Bycowboyfunctionvoid()sprintf('請選擇平差類型')sprintf('1:參數(shù)平差2:條件平差3:具有條件的參數(shù)平差4:具有參數(shù)的條件平差')a=input('請輸入對應(yīng)號碼');switch(a)case1%參數(shù)平差V=AX-Lsprintf('1:參數(shù)平差V=AX-L')n=input('請輸入n=');t=input('請輸入t=');A=input('請輸入系數(shù)矩陣A=');L=
2、input('請輸入常數(shù)項矩陣L=');P=diag(input('請輸入權(quán)陣P='))%P=input('請輸入權(quán)陣P=');N=A'*P*A;U=A'*P*L;sprintf('開始計算')X=inv(N)*(U);V=A*X-L;Qx=inv(N);u=sqrt((V'*P*V)/(n-t));fid=fopen('data.txt','wt');%寫入文件路徑,文件輸出fprintf(fid,'=====================參數(shù)平差:V=AX-L==================
3、===');fprintf(fid,'輸出n,t');fprintf(fid,'%12.5f%12.5f',n,t);%n,tfprintf(fid,'輸出矩陣A')[m,n]=size(A);%Afori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',A(i,j));elsefprintf(fid,'%12.5ft',A(i,j));endendendfprintf(fid,'');fprintf(fid,'輸出矩陣L');[m,n
4、]=size(L);%Lfori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',L(i,j));elsefprintf(fid,'%12.5ft',L(i,j));endendendfprintf(fid,'');fprintf(fid,'輸出矩陣P');[m,n]=size(P);%Pfori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',P(i,j));elsefprintf(fid,'%12.5ft'
5、,P(i,j));endendendfprintf(fid,'');fprintf(fid,'輸出矩陣X');[m,n]=size(X);%Xfori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',X(i,j));elsefprintf(fid,'%12.5ft',X(i,j));endendendfprintf(fid,'');fprintf(fid,'輸出矩陣V');[m,n]=size(V);%Vfori=1:1:mforj=1:1:n
6、ifj==nfprintf(fid,'%12.5f',V(i,j));elsefprintf(fid,'%12.5ft',V(i,j));endendendfprintf(fid,'');fprintf(fid,'輸出矩陣Qx');[m,n]=size(Qx);%Qxfori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',Qx(i,j));elsefprintf(fid,'%12.5ft',Qx(i,j));endendendfprintf(f
7、id,'');fprintf(fid,'輸出單位權(quán)中誤差u');[m,n]=size(u);%ufori=1:1:mforj=1:1:nifj==nfprintf(fid,'%12.5f',u(i,j));elsefprintf(fid,'%12.5ft',u(i,j));endendendfprintf(fid,'');fclose(fid);case2%條件平差BV+W=0sprintf('2:條件平差BV+W=0')n=input('請輸入n=');t=input('請輸入t=
8、');B=input('請輸入系數(shù)矩陣B=');W=input('請輸入自由項向量W=');P=input('請輸入權(quán)陣P=');sprintf('開始計算')K=-inv((B*inv(P)*B'))*W;V=inv(P)*B'*K;u=sqrt((V'*P*V)/(n-t));Ql=inv(P)-inv(P)*B'*inv(B*inv(P)*B')*B*inv(P);fid=fopen('data.txt','wt');%寫入文件路徑,文件輸出fpr