人人范文网 范文大全

GPS模拟C语言

发布时间:2020-03-02 20:18:40 来源:范文大全 收藏本文 下载本文 手机版

GPS模拟

# include # include # include

using namespace std;

ifstream fin (\"1.txt\"); //ofstream fout (\"data_out.txt\");

// 1

4 double x[5] = {-1, 0, 300, 0, 300}; double y[5] = {-1, 450, 450, 0, 0}; double t[5]; double A, B, D,c = 2982000, p, r; double pi = 3.141592653; double xx, yy;

//三角形算法

void cal (int sign, double t1, double t2, double x1, double y1, double x2, double y2, double px, double py) {

double tt1 = c * t1, tt2 = c * t2;

double q, ac;

A = x2 * (x1*x1 + y1*y1x1 * (x2*x2 + y2*y2tt1*tt1)tt2*tt2);

D = tt1 * (x2*x2 + y2*y2tt2 * (x1*x1 + y1*y1ac;

r = (x1*x1 + y1*y10)

{

switch (h)

{

case 1:

cal (-1, t[2], t[4], 300, 0, 300, -450, 0, 450);

break;

case 2: cal (-1, t[1], t[3], -300, 0, -300, -450,300, 450);

break;

case 3: cal (1, t[1], t[2], 0, 450, 300, 450, 0, 0);

break;

case 4: cal (1, t[1], t[2], -300, 450, 0, 450, 300, 0);

break;

}

break;

} } system (\"pause\"); return 0; 声源定位

#include #include using namespace std; #define Max 50 int N=10; double xi[10]; double yi[10];

double ti[10][3]; double det(double a[Max][Max],int n)

{ int i,j,start; double k,temp,result=1; for(start=0;start

i=1;

while(a[start][start]==0&&start+i

{

for(j=start;j

{

temp=-1*a[start][j];

a[start][j]=a[start+i][j];

a[start+i][j]=temp;

}

i++;

}

if(start+i==n) continue;

for(i=start+1;i

{

k=a[i][start]/a[start][start];

for(j=start;j

a[i][j]=a[i][j]-k*a[start][j];

} } for(i=0;i

result*=a[i][i]; return result; } int equalation(double a[Max][Max+1],double r[Max],int n)

{ double det(double a[Max][Max],int n); double det0[Max][Max],det1[Max][Max]; int i,j,k;

for(i=0;i

for(j=0;j

det0[i][j]=a[i][j]; if(det(det0,n)==0) return 0;

for(k=0;k

for(i=0;i

for(j=0;j

{

det0[i][j]=a[i][j];

det1[i][j]=a[i][j];

}

for(i=0;i

det1[i][k]=a[i][n];

r[k]=det(det1,n)/det(det0,n); } return 1; } double sqr(double x) { return x*x; } double g(double x,double y,double c,double xi,double yi,double ti) { return sqr(xi-x)+sqr(yi-y)-sqr(c*ti); } double fx(double x,double y,double c,int k)

{ int i; double sum=0; for (i=0;i

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*(xi[i]-x); return sum; } double fy(double x,double y,double c,int k)

{ int i; double sum=0; for (i=0;i

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*(yi[i]-y); return sum; } double fc(double x,double y,double c,int k)

{ int i; double sum=0; for (i=0;i

sum+=g(x,y,c,xi[i],yi[i],ti[i][k-1])*sqr(ti[i][k-1]); return sum; } double fxx(double x,double y,double c,int k)

{ int i; double sum=0; for (i=0;i

sum=sum-2*sqr(xi[i]-x)-g(x,y,c,xi[i],yi[i],ti[i][k-1]); return sum; } double fxy(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*(yi[i]-y)*(xi[i]-x); return sum; } double fxc(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*c*sqr(ti[i][k-1])*(xi[i]-x); return sum; } double fyx(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*(xi[i]-x)*(yi[i]-y); return sum; } double fyy(double x,double y,double c,int k)

{ int i; double sum=0; for (i=0;i

sum=sum-2*sqr(yi[i]-y)-g(x,y,c,xi[i],yi[i],ti[i][k-1]); return sum; } double fyc(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*c*sqr(ti[i][k-1])*(yi[i]-y); return sum; } double fcx(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*(xi[i]-x)*sqr(ti[i][k-1]); return sum; } double fcy(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*(yi[i]-y)*sqr(ti[i][k-1]); return sum; } double fcc(double x,double y,double c,int k) { int i; double sum=0; for (i=0;i

sum=sum-2*c*sqr(sqr(ti[i][k-1])); return sum; } int main() { int i=0,k; double x,y,c,x0,y0,c0; double a[Max][Max+1],r[Max]; freopen (\"1.txt\", \"r\", stdin); freopen (\"1_out.txt\", \"w\", stdout);

for (i=0;i

} cin>>xi[i]>>yi[i]; xi[i] /= 10; yi[i] /= 10;

cin>>ti[i][0]>>ti[i][1]>>ti[i][2]; for(k=1;k>x>>y;

c=0.2; do {

x0=x;y0=y;c0=c;i++;

a[0][0]=fxx(x,y,c,k); a[0][1]=fxy(x,y,c,k); a[0][2]=fxc(x,y,c,k); a[1][0]=fyx(x,y,c,k); a[1][1]=fyy(x,y,c,k); a[1][2]=fyc(x,y,c,k); a[2][0]=fcx(x,y,c,k); a[2][1]=fcy(x,y,c,k); a[2][2]=fcc(x,y,c,k); a[0][3]=x*a[0][0]+y*a[0][1]+c*a[0][2]-fx(x,y,c,k); a[1][3]=x*a[1][0]+y*a[1][1]+c*a[1][2]-fy(x,y,c,k); a[2][3]=x*a[2][0]+y*a[2][1]+c*a[2][2]-fc(x,y,c,k);

if(equalation(a,r,3)==0) {

cout

return 0;

}

x=r[0];y=r[1];c=r[2]; } while(abs(x-x0)+abs(y-y0)+abs(c-c0)>=1e-6); cout

C语言模拟ATM机

北航C语言期末模拟试题

C语言

C语言

c语言

c语言

c语言

C语言

C语言

C语言

GPS模拟C语言
《GPS模拟C语言.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档