作者GreenBeret (綠扁帽)
看板Programming
標題Fw: [求救 懸賞5000p] 一個7x7的矩陣 =.=
時間Fri Jun 22 16:53:17 2018
各位請看,這是有限差分法的隱式解法
https://i.imgur.com/9leImX6.png
我們可以把它 拆解成下面的矩陣
https://i.imgur.com/WwrrD7A.png
我設定 係數A=1
係數B=0.8
係數C=1
然後最右邊那一列的C1*、C2*、C3*.....到C7* 都是1
所以最後矩陣相乘的結果D,每一個的計算結果都是(1*1)+(1*0.8)+(1*1)=2.8
===================================
這是一個迭代的矩陣,計算出每一組D以後,
就把D當成C1*、C2*~~C7*代入,再計算出下一組D;
然後再把D當成C1*、C2*~~C7*代入,再計算出下一組D;一直迭代下去
重點來了,
如果我把中間的那一行(第四行)的A、B、C 改成 0、1、0
這樣子,會導致D的數據,跟原來的不一樣
然後D接下來又被當作C1*、C2*~~C7*代入,又影響到下一組的D
然後下一組的D又當作C1*、C2*~~C7*代入,又影響到下下一組的D
一直影響下去。
====================================
總共要迭代幾次、或者要帶什麼數字,您們都可以自行決定。
我只是想要瞭解這個程式的寫法而已,數字不是重點,可自行決定數字大小。
感謝
如果看不懂我文中的"迭代"的意思,可以參閱下面兩張圖。
https://imgur.com/a/hlehNcU (求出最左邊的那一列 0,0,1,8,1,0,0)
把那一列代入到下面這張圖的最右邊
https://imgur.com/a/2enLKV3
求出最左邊的那一列(0 , 0.1 , 1.6 , 6.6 , 1.6 , 1 , 0.1 , 0)
以此類推
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.91.73.136
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1529653193.A.53B.html
1F:→ sherees: while ess>1e-3;x = W*x0;ess = norm(x-x0);x0 = x;end 06/22 16:44
2F:→ sherees: 起始猜值x0跟係數矩陣W 在while外要先給好 06/22 16:47
3F:→ sherees: W可以用diag創建 06/22 16:48
4F:→ sherees: 誤差也要先給一個能跑的起始值 大概就這樣 06/22 16:50
※ 編輯: GreenBeret (114.38.108.68), 06/22/2018 16:54:10
5F:推 elevenkbc: 不好意思,請問你到問題是? 223.140.0.142 06/28 08:12
HI~~ e大大 後來在matlab版有問到解法了XD
https://webptt.com/m.aspx?n=bbs/MATLAB/M.1529667860.A.921.html
我敘事能力有點差QQ 您看他的解法 會比我用說的清楚XD
6F:推 a1u1usul3: 一樓有matlab的解法了140.114.236.106 06/29 00:41
8F:→ a1u1usul3: python with numpy140.114.236.106 06/29 00:42
9F:→ a1u1usul3: 矩陣需存在要如下的檔案140.114.236.106 06/29 00:44
! 其實1樓的方法 我現在才驚覺看懂 之前沒注意囧
※ 編輯: GreenBeret (111.246.27.144), 06/29/2018 02:04:20
※ 編輯: GreenBeret (60.91.73.136), 05/17/2019 15:58:58