Alternative code that runs much faster?
    6 ビュー (過去 30 日間)
  
       古いコメントを表示
    
Hi,
We built this code:
A = zeros(n,y);
A (:,1) = -3; 
x1 = zeros(n,y);
x2 = zeros(n,y);
x3 = zeros(n,y);
B = zeros(n,y);
B (:,1) = 0.3;
Z = zeros(n,y);
Z (:,1) = 0;
for k=1:n
    for j=2:y
    max_index=j-1;
    Powers_function=(0:max_index);
     A (k,j) = C(k,j-1)*B(k,j-1) + D(k,j-1) - E (k,j-1);     
     f = @(x) sum(A(k,1:j)./(1+x).^Powers_function(1,1:j));
     Z(k,j) = fzero(f,0,optimset('display','off'));
     Z(isnan(Z)) = 0;
     Z((Z<0)) = 0; 
         if Z (k,j)<0.05
            x1(k,j-1) = 0.60;
         else
            x1(k,j-1) = 0;
         end
         if (Z(k,j) >= 0.05) && (Z(k,j) <= 0.20)
            x2(k,j-1) = 0.60 - (Z(k,j)/0.35);
         else 
            x2(k,j-1) = 0;
         end
         if Z(k,j) > 0.20
            x3(k,j-1) = 0.45;
         else
            x3(k,j-1) = 0;
         end
         B(k,j) = max(x1(k,j-1),max(x2(k,j-1),x3(k,j-1)));
    end
end
This is running for a long long time for n=10000 and y=28.
Isn't there an alternative code to compute the same in much less time?
Thanks,
3 件のコメント
  Steven Lord
    
      
 2016 年 10 月 21 日
				Can you describe in words (NOT equations or code) what problem you're trying to solve using this code? Perhaps knowing the problem will help people suggest a more efficient solution.
回答 (0 件)
参考
カテゴリ
				Help Center および File Exchange で Matrix Indexing についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



