作者ejialan (eji)
看板MATLAB
标题Re: [问题]两条方程式怎样才能一起做迭代运算?
时间Wed Feb 19 13:34:50 2014
※ 引述《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
1F:推 np62077:完全懂了阿~~我需要的的确是不更新的版本~我也了解两种写 02/19 14:31
2F:→ np62077:法的差异点了~谢谢你^^ 02/19 14:31
3F:推 virgonelson:推推 02/22 12:29