作者GreenBeret (绿扁帽)
看板Fortran
标题Fw: [求救 悬赏5000p] 一个7x7的矩阵 =.=
时间Fri Jun 22 16:53:26 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/cn.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
5F:推 iHaveAPen: tridiagonal matrix algorithm直接解,不是block tridi 10/05 06:32
6F:→ iHaveAPen: agonal 的话这个够快了 10/05 06:32
※ 编辑: GreenBeret (60.91.73.136), 05/17/2019 16:02:21