[問題]兩條方程式怎樣才能一起做迭代運算?

看板MATLAB作者 (ray)時間11年前 (2014/02/18 17:02), 編輯推噓1(1020)
留言21則, 5人參與, 最新討論串1/2 (看更多)
版上的各位大大你們好, 我最近跑模擬需要做到迭代運算~ 爬文跟google搜尋看到的都是處理單一函式的迭代運算, 可是我要計算的是兩條式子卡在一起的函式, 然後就把我難倒了...OTZ 目前使用的是土法煉鋼的方式,就是打了好幾行的式子,結果就把記憶體吃光光了~囧 只好來這裡向各位大大請教 附上我使用的程式碼 ------------------------------------------------------------------------------ R&T皆為初始矩陣 T'=T+(R-1)*pi; R'=R+0.3.*abs(T); 以上是最主要的兩個式子, 然後再回到第一個式子,變成 T''=T'+(R'-1)*pi; R''=R'+0.3.*abs(T'); 這樣一直下去~~ 有沒有更方便且不會把記憶體吃光光的方式呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.163.68

02/18 18:59, , 1F
貼一下你的程式碼看看?
02/18 18:59, 1F

02/18 19:37, , 2F
大一程設應該都有教費伯那數列的遞迴寫法吧 同原理
02/18 19:37, 2F

02/19 00:25, , 3F
我的程式碼其實就是主要的那兩個式子寫很多次
02/19 00:25, 3F

02/19 00:26, , 4F
只是從R→R'→R''或是T→T'→T''依此類推
02/19 00:26, 4F

02/19 00:28, , 5F
L大大可以說明一下嗎Q_Q我大學沒有修過相關的程設課程...
02/19 00:28, 5F

02/19 11:43, , 6F
如果中間過程不重要的話 T=T+(R-1)*pi;R=R+0.3*abs(T);
02/19 11:43, 6F

02/19 11:44, , 7F
外面包一層for看你要跑幾次
02/19 11:44, 7F

02/19 13:14, , 8F
E大~我用for包過~可是出來的結果不一樣,所以我就卡住了..
02/19 13:14, 8F

02/19 13:15, , 9F
舉例來說~如果我要迭代三次的話~用暴力的方式就需要打六行
02/19 13:15, 9F

02/19 13:16, , 10F
T'=T+(R-1)*pi;R'=R+0.3*abs(T)
02/19 13:16, 10F

02/19 13:17, , 11F
T''=T'+(R'-1)*pi;R''=R'+0.3.*abs(T')
02/19 13:17, 11F

02/19 13:17, , 12F
T'''=T''+(R''-1)*pi;R'''=R''+0.3.*abs(T'');
02/19 13:17, 12F

02/19 13:19, , 13F
用for的話~就用你說的那兩行然後用k=1:1:3下去跑
02/19 13:19, 13F

02/19 13:20, , 14F
可是兩種方式做出來的分布圖是不一樣的Q_Q
02/19 13:20, 14F

02/19 13:20, , 15F
我回文好了
02/19 13:20, 15F

02/19 14:18, , 16F
要搞迭代的話,必須要先確認你的equation會收斂.
02/19 14:18, 16F

02/19 14:19, , 17F
你的T', R'是根據什麼式子所得到的? 是否convex?
02/19 14:19, 17F

02/19 14:19, , 18F
這些問題得先釐清,你才能使用迭代求解.
02/19 14:19, 18F

02/19 14:36, , 19F
TO Y大~我的T&R代表的是每個點的角度和半徑~要做迭代只是
02/19 14:36, 19F

02/19 14:37, , 20F
想知道同樣的配置重複幾次會比較恰當,所以並沒有考慮T&R
02/19 14:37, 20F

02/19 14:39, , 21F
的收斂與發散的問題~但還是謝謝你給我的建議~^^
02/19 14:39, 21F
文章代碼(AID): #1J0o6VLf (MATLAB)
文章代碼(AID): #1J0o6VLf (MATLAB)