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

看板MATLAB作者 (eji)時間11年前 (2014/02/19 13:34), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《np62077 (ray)》之銘言: : 版上的各位大大你們好, : 我最近跑模擬需要做到迭代運算~ : 爬文跟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'); : 這樣一直下去~~ : 有沒有更方便且不會把記憶體吃光光的方式呢? 一條式子的迭代比較單純 基本上就是找出x_k+1 = f(x_k) 一直迭下去就對了 多條式子的話就會根據你要不要即時更新新值有所差異 T_k+1 = T_k + (R_k - 1)*pi; 此時已經有新的T了 R_k+1 = R_k + 0.3*abs(T_k) ^ 第二個式子的T用T_k就是不更新 用T_k+1就是要更新 所以我推文的寫法就是要更新的 for i=1:N T=T+(R-1)*pi; %T已更新 R=R+0.3*abs(T); end 如果不想更新要另外存舊值 for i=1:N Told=T; Rold=R; T=Told+(Rold-1)*pi; R=Rold+0.3*abs(Told); end 當然迭代出來的結果會有差異 以你的寫法你應該是要不更新的版本 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.121.146.175

02/19 14:31, , 1F
完全懂了阿~~我需要的的確是不更新的版本~我也了解兩種寫
02/19 14:31, 1F

02/19 14:31, , 2F
法的差異點了~謝謝你^^
02/19 14:31, 2F

02/22 12:29, , 3F
推推
02/22 12:29, 3F
文章代碼(AID): #1J149y-9 (MATLAB)
文章代碼(AID): #1J149y-9 (MATLAB)