首先要用c語言做矩陣的逆運算,就要知道用手咋求矩陣的逆的
首先翻開你的線性代數,兩種辦法:
一種是:
另一種是:
非常明顯,如果你在考線代的時候用第一種的
寫完一題就可以瀟灑交卷了
畢竟時間到了,0分總比不交卷違背考場紀律被背一個處分要好得多233
所以計算機寫代碼的時候,我們也果斷採用第二種:
下面是具體思路
首先我們需要兩個矩陣。一個放A,一個放E,然後要弄一個工具把A變成E的同時,E也要進行同樣的操作變成A-1。之後再輸出就行了。
因此總結一下就是:
1決定n維數組的大小n,要用戶自己輸入
2創建兩個二維數組,用來放A,E(E要自己創建且隨n不同要變化)
3弄一個可以整活的代碼,把(A,E)變成(E,A-1)
4然後輸出就好了
說完這些,估計你要打我了,鬼不知道啊…
關鍵是可以整活的代碼你變給我啊
咳咳,別急,下面就是整活代碼具體思路
首先我們知道在第二種解題思路中,怎麼用手算呢?
先將第一行第一列元素化為1,將第一列其餘元素化為0;
將第二行第二列元素化為1,將第二列其餘元素化為0;
…………
將第n行第n列元素化為1,將第n列其餘元素化為0。
因此我們要做的操作有兩個
一個是將一個元素化為一 另一個是其餘同列化為0
我是先進行後面的操作,舉個例子
把a11乘於(a21/a11)然後把它變負之後加到a21上,同理用循環該行都進行一個操作,目的是讓a21變0。
(這是第一個循環)
之後如法炮製再次利用循環講a11乘以一個數變負加到a31,再對該行進行同樣的操作。目的是讓a31變0。
(第二個循環)
弄完a11了,再利用一個循環把a22 a33….都弄好就行了。
(第三個了啊)
(我是用了3個循環疊加完成的,你會發現只需要一行代碼加上三個循環這部分就可以搞定了)
最後你就會發現會出現一個除了對角線的一列之外都是0了。
這個時候已經成功了一半了。
(一開始我還以為我成功了,後來發現每一行的非零項可能不是1耶...)
之後你只要把a11 a22 a33 不是1的全部整為1就可以了,這裡用個條件判斷和類似之前的代碼就行了
因此核心代碼只要4+4=8行!
加上一個後面需要變動的點,一共10行就夠了!!!
當然看完之後你鐵定是不行的,肯定要自己嘗試嘗試啦~
如果想嘗試的話,最好是先和我一樣弄一個要做的需求1234
再根據這個一步一步填充,如果試完還是不行的話
想要原始碼和注釋嗎
(狗頭微笑臉)
想桃子呢,不會給你的233