• 大小: 2KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-20
  • 语言: C/C++
  • 标签: 摄影测量  

资源简介

用C语言写的单像空间后方交会,实现了武汉大学张剑清老师编写的摄影测量课后习题

资源截图

代码片段和文件信息

  #include “stdlib.h“
  #include “math.h“
  #include “stdio.h“
  int Matrixinverse(an)
  int n;
  double a[];
  { int *is*jsijkluv;
  double dp;
  is=malloc(n*sizeof(int));
  js=malloc(n*sizeof(int));
  for (k=0; k<=n-1; k++)
  { d=0.0;
  for (i=k; i<=n-1; i++)
  for (j=k; j<=n-1; j++)
  { l=i*n+j; p=fabs(a[l]);
  if (p>d) { d=p; is[k]=i; js[k]=j;}
  }
  if (d+1.0==1.0)
  { free(is); free(js); printf(“err**not inv\n“);
  return(0);
  }
  if (is[k]!=k)
          for (j=0; j<=n-1; j++)
  { u=k*n+j; v=is[k]*n+j;
  p=a[u]; a[u]=a[v]; a[v]=p;
  }
  if (js[k]!=k)
  for (i=0; i<=n-1; i++)
  { u=i*n+k; v=i*n+js[k];
              p=a[u]; a[u]=a[v]; a[v]=p;
  }
  l=k*n+k;
  a[l]=1.0/a[l];
  for (j=0; j<=n-1; j++)
  if (j!=k)
  { u=k*n+j; a[u]=a[u]*a[l];}
  for (i=0; i<=n-1; i++)
  if (i!=k)
  for (j=0; j<=n-1; j++)
  if (j!=k)
  { u=i*n+j;
  a[u]=a[u]-a[i*n+k]*a[k*n+j];
  }
  for (i=0; i<=n-1; i++)
  if (i!=k)
  { u=i*n+k; a[u]=-a[u]*a[l];}
  }
  for (k=n-1; k>=0; k--)
  { if (js[k]!=k)
  for (j=0; j<=n-1; j++)
  { u=k*n+j; v=js[k]*n+j;
  p=a[u]; a[u]=a[v]; a[v]=p;
  }
  if (is[k]!=k)
  for (i=0; i<=n-1; i++)
  { u=i*n+k; v=i*n+is[k];
  p=a[u]; a[u]=a[v]; a[v]=p;
  }
  }
  free(is); free(js);
  return(1);
  }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1401  2010-10-31 21:16  45757\Matrixinverse.c

     文件        232  2010-10-31 21:16  45757\Matrixmultiply.c

     文件        198  2010-10-31 21:16  45757\Matrixtranspose.c

     文件       3851  2010-10-31 21:16  45757\单片空间后方交会.c

     目录          0  2010-10-31 21:31  45757

----------- ---------  ---------- -----  ----

                 5682                    5


评论

共有 条评论