看板 MATLAB 關於我們 聯絡資訊
版上的各位大大你們好, 我最近跑模擬需要做到迭代運算~ 爬文跟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
punkdog:貼一下你的程式碼看看? 02/18 18:59
labbat:大一程設應該都有教費伯那數列的遞迴寫法吧 同原理 02/18 19:37
np62077:我的程式碼其實就是主要的那兩個式子寫很多次 02/19 00:25
np62077:只是從R→R'→R''或是T→T'→T''依此類推 02/19 00:26
np62077:L大大可以說明一下嗎Q_Q我大學沒有修過相關的程設課程... 02/19 00:28
ejialan:如果中間過程不重要的話 T=T+(R-1)*pi;R=R+0.3*abs(T); 02/19 11:43
ejialan:外面包一層for看你要跑幾次 02/19 11:44
np62077:E大~我用for包過~可是出來的結果不一樣,所以我就卡住了.. 02/19 13:14
np62077:舉例來說~如果我要迭代三次的話~用暴力的方式就需要打六行 02/19 13:15
np62077:T'=T+(R-1)*pi;R'=R+0.3*abs(T) 02/19 13:16
np62077:T''=T'+(R'-1)*pi;R''=R'+0.3.*abs(T') 02/19 13:17
np62077:T'''=T''+(R''-1)*pi;R'''=R''+0.3.*abs(T''); 02/19 13:17
np62077:用for的話~就用你說的那兩行然後用k=1:1:3下去跑 02/19 13:19
np62077:可是兩種方式做出來的分布圖是不一樣的Q_Q 02/19 13:20
ejialan:我回文好了 02/19 13:20
YoursEver:要搞迭代的話,必須要先確認你的equation會收斂. 02/19 14:18
YoursEver:你的T', R'是根據什麼式子所得到的? 是否convex? 02/19 14:19
YoursEver:這些問題得先釐清,你才能使用迭代求解. 02/19 14:19
np62077:TO Y大~我的T&R代表的是每個點的角度和半徑~要做迭代只是 02/19 14:36
np62077:想知道同樣的配置重複幾次會比較恰當,所以並沒有考慮T&R 02/19 14:37
np62077:的收斂與發散的問題~但還是謝謝你給我的建議~^^ 02/19 14:39