Fw: [求救 懸賞5000p] 一個7x7的矩陣 =.=

作者: GreenBeret (綠扁帽)   2018-06-22 16:53:26
各位請看,這是有限差分法的隱式解法
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)
以此類推
作者: sherees (ShaunTheSheep)   2017-06-22 16:44:00
while ess>1e-3;x = W*x0;ess = norm(x-x0);x0 = x;end起始猜值x0跟係數矩陣W 在while外要先給好W可以用diag創建誤差也要先給一個能跑的起始值 大概就這樣
作者: iHaveAPen (do you have an apple?)   2018-10-05 06:32:00
tridiagonal matrix algorithm直接解,不是block tridiagonal 的話這個夠快了

Links booklink

Contact Us: admin [ a t ] ucptt.com