求行列式的值怎么求值

如何求行列式的值_百度知道
如何求行列式的值
比如行列式1 2 3
7 4 2怎么求它的值,就是最普通的方法,我忘了公式是什么
我有更好的答案
c3换c2,-3,-6)(7,-10,-19)|
=|(-3,1,01)按定义展开法,-19)|
【c2-c1*2,0)(5,-3,-10;3,0)(5,-6,-19)|
【按r1展开】
=-3 3)用【基本性质】化三角形法:
D3=|(1:D3=1*7*2+2*9*7+3*5*4-3*7*7-2*5*2-1*9*4
=14+`126+60-147-20-36
=-3 2)展开降阶法:c2-c1*2、c3-c1*3
D3=|(1,0,0)(5、c3-c1*3】
=|(1,0,0)(5,-3,-6)(-29/3,0,1)|
【r3-r2*(10/3)
=|(1,0,0)(-29&#47,-6)(-10,-6)(7,-3)|
采纳率:80%
为您推荐:
其他类似问题
行列式的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。很久没有写过C语言,今天写了一个关于矩阵的算法
完整代码如下:
#include&atlstr.h&
#include&iostream&
#include&string&
using namespace
//创建矩阵
float **Creat(int n)
float **array=new float*[n];
for(int i=0;i&n;i++)
array[i]=new float[n];
printf("请输入矩阵:\n");
for(int i=0;i&n;i++)
for(int j=0;j&n;j++)
cin&&array[i][j];
//求行列式的值:
float Value(float **array,int n)
float Result=0;
if(n==1) return array[0][0];
float **temp=new float*[n-1];
for(int i=0;i&n-1;i++)
temp[i]=new float[n-1];
for(int i=0;i&n;i++)
for(int j=0;j&n-1;j++)
for(int k=0;k&n-1;k++)
else flag=1;
temp[j][k]=array[j+flag][k+1];
int flag2=-1;
if(i%2==0) flag2=1;
Result+=flag2*array[i][0]*Value(temp,n-1);
//求逆矩阵: 伴随矩阵行列式的值除以行列式的值
float **GetMarin(float **array,int n)
float **resultMarin=
float resultSum=Value(array,n);
float **temp=new float*[n-1];
for(int i=0;i&n-1;i++)
temp[i]=new float[n-1];
for(int i=0;i&n;i++)
for(int j=0;j&n;j++)
for(int k=0;k&n-1;k++)
for(int m=0;m&n-1;m++)
int flag1=0;
int flag2=0;
if(k&i) flag1=0;
else flag1=1;
if(m&j) flag2=0;
else flag2=1;
temp[k][m]=array[k+flag1][m+flag2];
int flag3=-1;
if((i+j)%2==0) flag3=1;
resultMarin[j][i]=(float)flag3*Value(temp,n-1)/resultS
return resultM
//矩阵加减
float **GetAdd(float **array1,float **array2,int rowCount,int columCount,float v)
float **result=new float*[rowCount];
for(int i=0;i&rowCi++)
result[i]=new float[columCount];
for(int i=0;i&rowCi++)
for(int j=0;j&columCj++)
result[i][j]=array1[i][j]+v*array2[i][j];
//倍法矩阵
float **Matrixk(float **arry,int rowCount,int columCount,int k)
float **result=new float*[rowCount];
for(int i=0;i&rowCi++)
result[i]=new float[columCount];
for(int i=0;i&rowCi++)
for(int j=0;j&columCj++)
result[i][j]=k*(arry[i][j]);
//矩阵数乘
float **MatrixCheng(float **arry1,float **arry2,int rowCount1,int columCount1,int rowCount2,int columCount2)
if(columCount1!=rowCount2)
return NULL;
float **result=new float*[rowCount1];
for(int i=0;i&rowCount1;i++)
result[i]=new float[columCount2];
//数乘运算
for(int i=0;i&rowCount1;i++)
for(int j=0;j&columCount2;j++)
float temp=0;
for(int k=0;k&columCount1;k++)
temp+=arry1[i][k]*arry2[k][j];
result[i][j]=
/***********下面进行测试,为了方便,全部采用的方阵**********/
void OutPut(float **array,int n)
printf("运算结果:\n");
for(int i=0;i&n;i++)
for(int j=0;j&n;j++)
printf("%f ",array[i][j]);
printf("\n");
void test()
printf("请输入你想进行的运算:\n1.求行列式值\n2.求逆矩阵\n3.矩阵加减运算\n4.矩阵数乘运算\n");
int choise=0;
if(choise==1)
printf("请输入你想输入矩阵的阶数:");
float **array=Creat(n);
float Result=Value(array,n);
printf("行列式的值=%f\n",Result);
else if(choise==2)
printf("请输入你想输入矩阵的阶数:");
float **array=Creat(n);
float Result=Value(array,n);
if(Result==0)
printf("该矩阵没有逆矩阵\n");
float **resultMarin=GetMarin(array,n);
OutPut(resultMarin,n);
else if(choise==3)
printf("请输入你想输入矩阵1的阶数:");
float **array1=Creat(n1);
printf("请输入你想输入矩阵2的阶数:");
float **array2=Creat(n2);
printf("请输入运算系数:");
float opreation=0;
float **resultMarin=GetAdd(array1,array2,n1,n1,opreation);
OutPut(resultMarin,n1);
else if(choise==4)
printf("请输入你想输入矩阵1的阶数:");
float **array1=Creat(n1);
printf("请输入你想输入矩阵2的阶数:");
float **array2=Creat(n2);
float **resultMarin=MatrixCheng(array1,array2,n1,n1,n2,n2);
OutPut(resultMarin,n1);
printf("------------");
void main()
#include&atlstr.h&#include&iostream&#include&string&//创建矩阵float **Creat(int n){& & float **array=new float*[n];& & for(int i=0;i&n;i++)& & {& & & & array[i]=new float[n];& & }& & printf("请输入矩阵:\n");& & for(int i=0;i&n;i++)& & {& & & & for(int j=0;j&n;j++)& & & & {& & & & & & cin&&array[i][j];& & & & }& & }& &}//求行列式的值:float Value(float **array,int n){& & float Result=0;& & if(n==1) return array[0][0];& & float **temp=new float*[n-1];& & for(int i=0;i&n-1;i++)& & {& & & & temp[i]=new float[n-1];& & }& & for(int i=0;i&n;i++)& & {& & & & for(int j=0;j&n-1;j++)& & & & {& & & & & & for(int k=0;k&n-1;k++)& & & & & & {& & & & & & & && & & & & & & & if(j&i) &flag=0;& & & & & & & & else flag=1;& & & & & & & & temp[j][k]=array[j+flag][k+1];& & & & & & }& & & & }& & & & int flag2=-1;& & & & if(i%2==0) flag2=1;& & & & Result+=flag2*array[i][0]*Value(temp,n-1);& & }& & return R}//求逆矩阵: 伴随矩阵行列式的值除以行列式的值float **GetMarin(float **array,int n){& & float **resultMarin=& & float resultSum=Value(array,n);& & float **temp=new float*[n-1];& & for(int i=0;i&n-1;i++)& & {& & & & temp[i]=new float[n-1];& & }& & for(int i=0;i&n;i++)& & {& & & & for(int j=0;j&n;j++)& & & & {& & & & & & for(int k=0;k&n-1;k++)& & & & & & {& & & & & & & & for(int m=0;m&n-1;m++)& & & & & & & & {& & & & & & & & & & int flag1=0;& & & & & & & & & & int flag2=0;& & & & & & & & & & if(k&i) flag1=0;& & & & & & & & & & else flag1=1;& & & & & & & & & & if(m&j) flag2=0;& & & & & & & & & & else flag2=1;& & & & & & & & & & temp[k][m]=array[k+flag1][m+flag2];& & & & & & & & }& & & & & & }& & & & & & int flag3=-1;& & & & & & if((i+j)%2==0) flag3=1;& & & & & & resultMarin[j][i]=(float)flag3*Value(temp,n-1)/resultS& & & & }& & }& & return resultM}//矩阵加减float **GetAdd(float **array1,float **array2,int rowCount,int columCount,float v){float **result=new float*[rowCount];for(int i=0;i&rowCi++){result[i]=new float[columCount];}for(int i=0;i&rowCi++){for(int j=0;j&columCj++){ result[i][j]=array1[i][j]+v*array2[i][j];}}}//倍法矩阵float **Matrixk(float **arry,int rowCount,int columCount,int k){float **result=new float*[rowCount];for(int i=0;i&rowCi++){result[i]=new float[columCount];}for(int i=0;i&rowCi++){for(int j=0;j&columCj++){ result[i][j]=k*(arry[i][j]);}}}//矩阵数乘float **MatrixCheng(float **arry1,float **arry2,int rowCount1,int columCount1,int rowCount2,int columCount2){if(columCount1!=rowCount2){return NULL;}float **result=new float*[rowCount1];for(int i=0;i&rowCount1;i++){result[i]=new float[columCount2];}//数乘运算for(int i=0;i&rowCount1;i++){for(int j=0;j&columCount2;j++){float temp=0;for(int k=0;k&columCount1;k++){temp+=arry1[i][k]*arry2[k][j];}result[i][j]=}}}/***********下面进行测试,为了方便,全部采用的方阵**********/void OutPut(float **array,int n){& & printf("运算结果:\n");& & for(int i=0;i&n;i++)& & {& & & & for(int j=0;j&n;j++)& & & & {& & & & & & printf("%f ",array[i][j]);& & & & }& & & & printf("\n");& & }}void test(){printf("请输入你想进行的运算:\n1.求行列式值\n2.求逆矩阵\n3.矩阵加减运算\n4.矩阵数乘运算\n");int choise=0;cin&&if(choise==1){ & printf("请输入你想输入矩阵的阶数:"); &cin&&n; &float **array=Creat(n); float Result=Value(array,n);& printf("行列式的值=%f\n",Result);}else if(choise==2){ & printf("请输入你想输入矩阵的阶数:"); &cin&&n; &float **array=Creat(n); float Result=Value(array,n);& & if(Result==0)& & {printf("该矩阵没有逆矩阵\n"); & }else{ &float **resultMarin=GetMarin(array,n); &OutPut(resultMarin,n);}}else if(choise==3){ &printf("请输入你想输入矩阵1的阶数:");int n1; &cin&&n1; &float **array1=Creat(n1); & & printf("请输入你想输入矩阵2的阶数:");int n2; &cin&&n2; &float **array2=Creat(n2); &printf("请输入运算系数:"); &float opreation=0; &cin&& &float **resultMarin=GetAdd(array1,array2,n1,n1,opreation); & &OutPut(resultMarin,n1);}else if(choise==4){ & printf("请输入你想输入矩阵1的阶数:");int n1; &cin&&n1; &float **array1=Creat(n1); & & printf("请输入你想输入矩阵2的阶数:");int n2; &cin&&n2; &float **array2=Creat(n2); &float **resultMarin=MatrixCheng(array1,array2,n1,n1,n2,n2); & &OutPut(resultMarin,n1);}else{printf("------------");}& & test();}void main(){& & test();}
阅读(...) 评论()3行3列矩阵行列式的值怎么算?_百度知道
3行3列矩阵行列式的值怎么算?
我有更好的答案
hiphotos.baidu.com/zhidao/pic/item/d833c895d143ad4b865ce6a582025aafa40f0660.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://h.hiphotos.baidu.baidu:
实线上3个数乘积取正号用对角线法则://h.com/zhidao/wh%3D600%2C800/sign=dd5cfe6e79dda38ca7d05/d833c895d143ad4b865ce6a582025aafa40f0660.jpg" esrc="http://h.hiphotos
采纳率:88%
来自团队:
用对角线法则:实线上3个数乘积取正号, 有3项虚线上3个数乘积取负号, 有3项
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
矩阵的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求行列式|A|=第一行a,b,c,d.第二行-b,a,-d,c.每三行-c,d,a,-b.第四行-d,-c,b,a. 书上这样讲由于A乘A的转置=(a^2+b^2+c^2+d^2)E,所以得|A|^2=|A||A的转置|=|A*A的转置|=(a^2+b^2+c^2+d^2)^4
求行列式|A|=第一行a,b,c,d.第二行-b,a,-d,c.每三行-c,d,a,-b.第四行-d,-c,b,a. 书上这样讲由于A乘A的转置=(a^2+b^2+c^2+d^2)E,所以得|A|^2=|A||A的转置|=|A*A的转置|=(a^2+b^2+c^2+d^2)^4,故|A|=(a^2+b^2+c^2+d^2)^2,我不明白为什么|A*A的转置|=(a^2+b^2+c^2+d^2)^4?谢谢
很显然A*A的转置
第一行a^2+^2+c^2+d^2,0,0,0.
第二行0,a^2+^2+c^2+d^2,0,0.
第三行0,0,a^2+^2+c^2+d^2,0.
第四行0,0,0,a^2+^2+c^2+d^2.
=|A*A的转置|=|A|^2=(a^2+^2+c^2+d^2)^4
=|A|=(a^2+^2+c^2+d^2)^2
其他答案(共2个回答)
元素都为0,所以
|A*A的转置|=对角线的元素的积=(a^2+^2+c^2+d^2)^4。
答: 高三政治差不多都是复习,课前一定要把今天讲的内容看一篇,把相应的题目做了,上课认真,跟着老师走。针对你这种情况,应该是没把知识点记住。还是去多多背背吧,毕竟政治...
答: 嗯,还不错啊~~我同学去年报的他们的班
答: 教育现在很有前途啊
还有那么长的两个假期
我同学考研就考这个!
答: 大部分学校都会有研究生招生专业参考书目表
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415以下试题来自:
问答题已知A=E+αβT,其中α=(a1,a2,a3)T,β=(b1,b2,b3,)T,且αTβ=2.求行列式|A*+E|的值. 因为矩阵A的特征值是3,1,1,知|A|=3.从而A*的特征值为1,3,3.所以,A*+E的特征值为2,4,4.从而|A<......
为您推荐的考试题库
你可能感兴趣的试题
1.问答题 由题设Aα=α,则有Bα=B(Adα)=(BA)α=0α=0=0α.
可见当α是A的属于特征值1的特征向量时,α也是B的属于特征值0的特征向...... 2.问答题 因为矩阵A的特征值3,1,1,所以矩阵A可逆.又因B2=2B,A=E+B,有
(A-E)2=2(A-E).即A2-...... 3.问答题 此时.由λ1+λ2+λ3=α11+α22+α33=1-5+4=0得...... 4.问答题 由A2=A,得(A-E)A=0,又A≠0,所以(A-E)x=0有非零解,从而|A-E|=0,即λ=1必是A的特征值.又因为AB=0,且B≠0,从而A...... 5.问答题 记B=αβT,则
由于αTβ=a1b1+a2b2+a<s......
热门相关试卷
最新相关试卷

我要回帖

更多关于 求行列式的值的视频 的文章

 

随机推荐