这个上三角的逆矩阵怎么算算的啊

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 11902 人关注过本帖
标题:矩阵求逆的算法怎么写
等 级:新手上路
帖 子:60
&&问题点数:0&&回复次数:11&&&
矩阵求逆的算法怎么写
矩阵求逆的算法怎么写
搜索更多相关主题的帖子:
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
算法啊,那就是看你数学怎么做的就怎么做,不知道你是要求矩阵的转置还是求逆矩阵?求逆矩阵难度相当大,如果是转置的话就交换一下元素就可以了
在虚拟的世界中寻找目标。
来 自:飞燕算法群
等 级:新手上路
帖 子:348
计算逆矩阵的算法复杂度非常高
[color=white]
等 级:新手上路
帖 子:60
线性代数学得很差
程序里面用到矩阵求逆
走在他人背后,看到的就只是一个背影,
走在他人前面,才能占尽先机
等 级:新手上路
帖 子:50
先做出来,然后再想复杂度问题!
来 自:飞燕算法群
等 级:新手上路
帖 子:348
我喜欢把算法复杂度和代码结构什么的都想清楚了才动手
[color=white]
来 自:西北工业大学
等 级:新手上路
帖 子:78
//***************************
//求任何一个矩阵的逆矩阵
//***************************
#include &stdio.h&
#include &malloc.h&
void main( void )
&&&&&float *buffer,*p;&&&//定义数组首地址指针变量
&&&&&short int row, //定义矩阵行数row及矩阵元素个数
&&&&&short int i,j;
&&&&&&&&&&&//定义矩阵的行列式
&&&&&float comput_D(float *p,short int n);&&&&&&//求矩阵的行列式
&&&&&float Creat_M(float *p, short int m,short int n,short int k); //求代数余子式
&&&&&void Print( float *p,short int n);&&&&&//打印n×n的矩阵
&&&&&printf(&\nPlease input the number of rows: &);
&&&&&scanf(&%d&,&row);
&&&&&num=2 * row *
&&&&&buffer = (float *)calloc(num, sizeof(float));&&&&&//分配内存单元
&&&&&if(p != NULL)
&&&&&&&&&for(i=0;i&i++)&&&&&&&&&&&&&&&&&& //输入各单元值
&&&&&&&&&{
&&&&&&&&&&&& printf(&Input the number of %d row &,i+1);
&&&&&&&&&&&& for(j=0;j&j++)
&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&scanf(&%f&,p++);
&&&&&&&&&&&& }
&&&&&&&&&}&&
&&&&&&&&&printf( &Can't allocate memory\n& );
&&&&&printf(&\nThe original matrix is:\n&);
&&&&&Print(buffer,row);&&&&&//打印该矩阵
&&&&&determ=comput_D(buffer,row);&&&&&//求整个矩阵的行列式
&&&&&p=buffer + row *
&&&&&if (determ != 0)
&&&&&&&&&for (i=0;i& i++)&&&&&& //求逆矩阵
&&&&&&&&&&&& for (j=0; j& j++)
&&&&&&&&&&&&&&&&&&&&*(p+j*row+i)=&&&Creat_M(buffer,i,j,row)/&&&
&&&&&&&&&&&&
&&&&&&&&&printf(&The determinant is %G\n&,determ);
&&&&&&&&&p=buffer + row *
&&&&&&&&&printf(&\nThe inverse matrix is:\n&);
&&&&&&&&&Print(p,row);&&&&&//打印该矩阵
&&&&&&&&&printf(&The determnant is 0, and there is no inverse matrix !\n&);
&&&&&free( buffer );
//--------------------------------------------------------
//功能:求矩阵 n X n 的行列式
//入口参数:矩阵首地址 p;矩阵行数 n
//返回值:矩阵的行列式值
//--------------------------------------------------------
float comput_D(float *p,short int n)&&
&&&&&short int i,j,m;&&&&&&&&&//i-- j--column
&&&&&short int lop=0;
&&&&&float result=0;
&&&&&float mid=1;
&&&&&if (n!=1)
&&&&&&&&&lop=(n==2)?1:n;&&&&&//控制求和循环次数,若为2阶,则循环1次,否则为n次
&&&&&&&&&for(m=0;m&m++)
&&&&&&&&&{
&&&&&&&&&&&& mid=1;&&&&&&&&& //顺序求和
&&&&&&&&&&&& for(i=0,j=m;i&n;i++,j++)
&&&&&&&&&&&&&&&&&mid = mid * ( *(p+i*n+j%n) );
&&&&&&&&&&&& result+=
&&&&&&&&&}
&&&&&&&&&for(m=0;m&m++)
&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&& mid=1;&&&&&&&&& //逆序相减
&&&&&&&&&&&& for(i=0,j=n-1-m+n; i&n; i++,j--)
&&&&&&&&&&&&&&&&&mid=mid * ( *(p+i*n+j%n));
&&&&&&&&&&&& result-=
&&&&&&&&&}
&&&&&else result=*p;
&&&&&return(result);
//----------------------------------------------------
//功能:求k×k矩阵中元素A(mn)的代数余子式
//入口参数:k×k矩阵首地址;元素A的下标m,n; 矩阵行数 k
//返回值: k×k矩阵中元素A(mn)的代数余子式
//----------------------------------------------------
float Creat_M(float *p, short int m,short int n,short int k)
&&&&&short int i,j;
&&&&&float mid_result=0;
&&&&&short int quo=1;
&&&&&float *p_creat,*p_
&&&&&len=(k-1)*(k-1);
&&&&&p_creat = (float *)calloc(len, sizeof(float));&&&&&//分配内存单元
&&&&&p_mid=p_
&&&&&for(i=0;i&k;i++)
&&&&&&&&&for(j=0;j&k;j++)
&&&&&&&&&{
&&&&&&&&&&&& if (i!=m && j!=n)
&&&&&&&&&&&&&&&&&*p_mid++ =* (p+i*k+j);&&&&&&&&&&&&
&&&&&&&&&}
&&&&&//&&&&&Print(p_creat,k-1);
&&&&&quo = (m + n) %2==0 ? 1:-1;
&&&&&mid_result = (float ) quo * comput_D(p_creat,k-1);
&&&&&free(p_creat);
&&&&&return(mid_result);
//-------------------------------------------
//功能:打印n×n的矩阵
//入口参数:n×n矩阵的首地址;该矩阵的行数 n
//返回值: 无
//-------------------------------------------
void Print( float *p,short int n)&&&
&&&&&int i,j;
&&&&&for (i=0;i&n;i++)
&&&&&&&&&for (j=0; j&n;j++)
&&&&&&&&&&&& printf(&%10G &,*p++);
&&&&&&&&&printf(&\n&);
&&&&&printf(&--------------\n&);
==========
我的世界,我说了算!
==========
等 级:新手上路
帖 子:28
回复 7 楼 xiaosan669
您这个你逆矩阵的算法是错误的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
等 级:新手上路
帖 子:28
回复 7 楼 xiaosan669
输入一个简单的二维数组就可以验证!!!!!!!!!!!!!!!!!!
等 级:论坛游民
帖 子:34
专家分:12
回复 7 楼 xiaosan669
矩阵求逆有那么简单就好了。要把某一式子的正负号搞定都算好了。
版权所有,并保留所有权利。
Powered by , Processed in 0.070426 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved君,已阅读到文档的结尾了呢~~
逆矩阵的求法
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
逆矩阵的求法
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口大神来算一算这个逆矩阵,我们好几个人谁和谁算的也不一样【线性代数吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:47,837贴子:
大神来算一算这个逆矩阵,我们好几个人谁和谁算的也不一样收藏
8号就要考试了,努力复习中
2017年2月线性代数自考教材报名开始,线性代数自考教材招生简章,新生报名须知.[尚德]线性代数自考教材:自考注册,自考流程,自考政策,合格线.线性代数自考教材&&
真的求解答啊
唉,又一个答案,不过你和答案给的好接近,只差a31这个数,答案是1,你是0
两个人算得 一样,应该是正确答案
登录百度帐号推荐应用用初等变换求逆矩阵有没有什麽技巧?谢谢
用初等变换求逆矩阵只要方法正确,加上有耐心,不需要技巧,程式化地一步一步做下去,就会得到结果。
在要求逆的n阶矩阵右边写一个n阶单位阵,然后对这个n×2n阶矩阵按下面程式进行行初等变换(不能作列初等变换):
将第一行第一列元素化为1,将第一列其余元素化为0;
将第二行第二列元素化为1,将第二列其余元素化为0;
将第n行第n列元素化为1,将第n列其余元素化为0。
这时只要把右边的n阶方阵写下来,就是所要求的逆矩阵。
其他答案(共1个回答)
方法有一个,在原矩阵后添一个单位矩阵,再进行初等变换,线性代数上都有讲的。另外一种伴随矩阵求,好像麻烦了一点。
对矩阵作如下变换:
1、位置变换:把矩阵第i行与第j行交换位置,记作:r(i)r(j);
2、倍法变换:把矩阵第i行的各元素同乘以一个不等于0的数k,记作:k*...
证明:若 A 可逆,根据“A的逆矩阵”与“A的伴随矩阵”关系式A^-1=A*/│A│,
得伴随矩阵为 A* =│A│A^-1--------------...
我水平有限,只举一个例子:矩阵的行轶=列轶,所以如果你想求矩阵的轶的话,如果列变换比较容易就能得出轶的话,就列变换求轶,方便而已。只是个例子——
当a1,a2,...,an均不为零时,矩阵可逆,且其逆矩阵为:
用初等变换求逆矩阵只要方法正确,加上有耐心,不需要技巧,程式化地一步一步做下去,就会得到结果。
在要求逆的n阶矩阵右边写一个n阶单位阵,然后对这个n×2n阶矩阵...
答: 会计学年论文该怎么选题我是会计专业的,现在大三了
答: 我可以给你提供个想法,仅供参考咯~!
可以从培训人才和被培训人才的数据比例来说明拉,很有说服力哦~!
祝你好运!
答: 小学科学教案|小学科学教案下载 21世纪教育网
答: 请说的明白点啊,你是要什么性质考试的啊,自考?成考?普通?
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区}

我要回帖

更多关于 逆矩阵的计算 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信