演算法過程:
-計算 判斷|a|是否為0
-利用原矩陣生成a*(伴隨)矩陣,具體:a*二維陣列中第[i][j]個元素,除去該行該列,其他元素進入臨時陣列,計算臨時陣列行列式值,即為a*[i][j]
最後矩陣a*/|a| 即為該矩陣的逆矩陣
原始碼:
#include
#include
#include
using
namespace
std;
//by vove.
float cal_det(float s[9][9],int n);//計算行列式|a|
class matrix
float getakl(int k,int l)
void dis_a(float s[9][9]);
void display(int t);
private:
int n; //行,列r=c
float a[9][9]; //矩陣a
float astar[9][9]; // a*
float det_a; // |a|值
float ioa[9][9]; //inverse of a a的逆矩陣
};int main()
void cal_astar(matrix &a)
float cal_aij(matrix &a,int i,int j);
int x=0,y=0; //aij的下標
for(int k=0;k//k l -> a的下標
for(int l=0;lif(k!=i&&l!=j)}}
}return cal_det(aij,(a.n)-1);
}float cal_det(float s[9][9],int n)
else
continue;}}
else
else
continue;
}if(m==n) return sum; //sum=0;
i--;}}
sum=s[0][0];//求對角積
for(i=1;ireturn sum;
}void matrix::dis_a(float s[9][9])
void matrix::input()
cout
<
>a[i][j];
}void matrix::cheak_issolvable();
for(int i=0;i//臨時賦值
for(int j=0;jfloat s=cal_det(temp,n);
cout
<
}void matrix::inverse_of_a()
}
原部落格: 矩陣的逆矩陣,伴隨矩陣
include include include include include include include include define n 100 using namespace std templateout type convert const in value t struct numb...
伴隨矩陣求逆矩陣
在之前的文章 線性代數之矩陣 中已經介紹了一些關於矩陣的基本概念,本篇文章主要就求解逆矩陣進行進一步總結。我們先看例子來直觀的理解什麼是余子式 minor,後邊將都用英文minor,中文的翻譯較亂 這個例子 我們假設矩陣為a 中我們看到a 1,1 的minor就是將a 1,1 所在的行和列刪除後剩下...
伴隨矩陣例題 線性代數2 3逆矩陣
2.3逆矩陣 對於階矩陣如果有乙個階矩陣使得則稱矩陣是可逆的,並把矩陣稱為的逆矩陣.注 若是可逆矩陣,則的逆矩陣是唯一的.設求的逆矩陣.課堂索引 04 第二章 矩陣的運算 2.4.1逆矩陣 1 定義及計算 矩陣可逆的充要條件是,且其中為矩陣的伴隨矩陣.下列矩陣是否可逆?若可逆,求出其逆矩陣.課堂索引...