逆矩陣(伴隨矩陣法)C

2021-08-02 03:08:27 字數 1496 閱讀 4137

演算法過程:

-計算 判斷|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 定義及計算 矩陣可逆的充要條件是,且其中為矩陣的伴隨矩陣.下列矩陣是否可逆?若可逆,求出其逆矩陣.課堂索引...