怎样编程求矩阵的逆(用VC++)

摄影测量中用后方交会求外方位元素的编程,其中用到他,如果谁能提供完整的程序,更感谢。... 摄影测量中用后方交会求外方位元素的编程,其中用到他,如果谁能提供完整的程序,更感谢。 展开
 我来答 举报
rykuwang88
2008-04-22 · TA获得超过911个赞
知道小有建树答主
回答量:927
采纳率:0%
帮助的人:0
展开全部
不知道你用什么软件,如果用matlab就很简单的,比如矩阵为A,输入A'就是逆了.
摄影测量中用到的主要是数学矩阵运算,个人认为用matlab是最方便的了
L_o_o_n_i_e
2008-04-22 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5443万
展开全部
抄了一个程序,int DinV(double A[N][N],int n)
作了微小的语法改正,看看可不可以用:

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 4
double A[N][N]={{1,3,2,13},{7,2,1,-2},{9,15,3,-2},{-2,-2,11,5}};

void swap(double *a,double *b){double c; c= *a; *a= *b; *b= c;};

int DinV(double A[N][N],int n)
{
int i,j,k;
double d;
int JS[N],IS[N];
for (k=0;k<n;k++)
{
d=0;
for (i=k;i<n;i++)
for (j=k;j<n;j++){
if (fabs(A[i][j])>d){
d=fabs(A[i][j]);
IS[k]=i;
JS[k]=j;
}; // end if
}; // end j
if (d+1.0==1.0) return 0;
if (IS[k]!=k) for (j=0;j<n;j++) swap( &A[k][j], &A[IS[k]][j]);
if (JS[k]!=k) for (i=0;i<n;i++) swap( &A[i][k], &A[i][JS[k]]);
A[k][k]=1/A[k][k];
for (j=0;j<n;j++) if (j!=k) A[k][j]=A[k][j]*A[k][k];
for (i=0;i<n;i++) if (i!=k) for (j=0;j<n;j++) if (j!=k) A[i][j]=A[i][j]-A[i][k]*A[k][j];
for (i=0;i<n;i++) if (i!=k) A[i][k]=-A[i][k]*A[k][k];
}; // for i
for (k=n-1;k>=0;k--)
{
for (j=0;j<n;j++) if (JS[k]!=k) swap( &A[k][j], &A[JS[k]][j]);
for (i=0;i<n;i++) if (IS[k]!=k) swap( &A[i][k], &A[i][IS[k]]);
}; // for k
for (i=0;i<n;i++)
{
for (j=0;j<n;j++) printf(" %1.4f",A[i][j]);
puts("");
}; // for i
return 1;
}

void main()
{
DinV(A,4);
getch();
}

参考资料: http://blog.programfan.com/article.asp?id=12717

抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
混迹oO
2008-04-22 · TA获得超过337个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:168万
展开全部
用数组可以很轻松解决
#include<stdio.h>
main()
{
int i,j,t;
int a[][] ;//*方括号中填您的矩阵的阶数*//
printf("Please input numbers\n");
for(i=0;i<=(您所输入的阶数);i++)
{
for(j=0,j<=(您所输入的阶数);j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<=(您所输入的阶数)/2;i++)
{
for(j=0,j<=(您所输入的阶数)/2;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
for(i=0;i<=(您所输入的阶数);i++)
{
printf("\n");
for(j=0,j<=(您所输入的阶数);j++)
printf("%d ",&a[i][j]);
}
}
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式