高程平差程序 C++ (1)
(2010-01-22 16:07:50)
标签:
高程网平差c语言三角网水准网杂谈 |
分类: 测绘学 |
声明:本程序未经过工程实际测试,仅用于测绘程序的学习交流,望您留下对本程序宝贵的意见,谢谢!
适用于:水准网平差
#include<iostream.h>
#include<fstream.h>
#define MAX 100
#define PI 3.14159265358979312
#define rou (180.0*60*60/PI)
#include<math.h>
#include<string.h>
//***************************矩阵求逆函数说明**************************************
int inverse(double C[][MAX],double B[][MAX],int n);
//define the function of inverseing;
//return 0 means mat can't be inversed or;
//return 1 means mat inversed correctly, and B is inversed mat;
//***************************矩阵乘积函数说明**************************************
void AXB(double A[][MAX],double B[][MAX],double C[][MAX],int m,int
n,int k);
void AXB(double a,double A[][MAX], double aA[][MAX],int m,int
n);
void AXB(double A[][MAX],double B[][1],double C[][1],int m,int
n);
//define the time fuction of mats or mat and a number
//***************************矩阵转置函数说明**************************************
void AT(double A[][MAX],double AH[][MAX],int m,int n);
void AT(double A[][1],double AH[][MAX],int m);
void AT(double A[][MAX],double AH[][1],int m);
//define the fuction to turn-over a mat
//***************************平差计算相关函数**************************************
void ATPA(double A[][MAX],double P[][MAX],double ATPA[][MAX],int
m,int n);
void ATPL(double A[][MAX],double P[][MAX],double L[][1],double
ATPL[][1],int m,int n);
double VPV(double V[][1],double P[][MAX],int m);
//define initial fuctions of doadj()
//**************************矩阵显示***********************************************
void matdis(double A[][MAX],int n,int m);
void matdis(double A[][1],int n);
//define two fuctions to output a mat to
screen
void matout(double A[][MAX],int n,int m,ofstream out); //
向文件输出矩阵
//**********************通用平差相关结构与函数*************************************
struct adj;
void ksetadj(adj
&a);
int fsetadj(adj &aa,char
name[20]);
int
int rubust(adj
&a);
void adjdis(adj
&aa);
int foutadj(adj &aa, char name[20]); //outputdate
to a file
//define adj and it related fuctions
//************************************************************************************************
void AXB(double A[][MAX],double B[][MAX],double C[][MAX],int m,int
n,int k)
{
}
//************************************************************************************************
void AXB(double A[][MAX],double B[][1],double C[][1],int m,int
n)
{
for(int i=0;i<m;i++)
}
//************************************************************************************************
void AXB(double a,double A[][MAX], double
aA[][MAX],
{
}
//************************************************************************************************
void AT(double A[][MAX],double AH[][MAX],int m,int
n)
{
}
//************************************************************************************************
void AT(double A[][1],double AH[][MAX],int
m)
{
}
//************************************************************************************************
void AT(double A[][MAX],double AH[][1],int
m)
{
}
//************************************************************************************************
void ATPA(double A[][MAX],double P[][MAX],double ATPA[][MAX],int
m,int n)
{double AH[MAX][MAX],ATP[MAX][MAX];
}
//************************************************************************************************
double VPV(double V[][1],double P[][MAX],int m)
{double VH[1][MAX],VTP[1][MAX];
}
//************************************************************************************************
void ATPL(double A[][MAX],double P[][MAX],double L[][1],double
ATPL[][1],int m,int n)
{
}
//************************************************************************************************
void matdis(double A[][MAX],int n,int m) // 显示矩阵
{//1.set B[][] I;
}
//************************************************************************************************
void matdis(double A[][1],int
n)
{//1.set B[][] I;
//
}
//************************************************************************************************
int inverse(double C[][MAX],double B[][MAX],int n)
{//1.set B[][] I;