2016-04-07 21 views
0

私はmatlabでjacobi反復の操作の数を計算したい 私はそれを行う方法がわかりません! 私を助けることができますか?ここで おかげmatlabでjacobi反復操作の数を計算する方法

は、ニュートン法のために私のコードです:

b=zeros(30,1); 
b(6)=2; 
alpha=1; 
A=zeros(30,30); 
A(1,1)=-(2+alpha); 
A(1,2)=1; 

for ii=2:29 
    A(ii,ii-1)=1 
    A(ii,ii)=-(2+alpha) 
    A(ii,ii+1)=1 
end 

A(30,29)=1; 
A(30,30)=-(2+alpha); 

D=diag(diag(A)); 
R=A-D; 
x=zeros(30,1); 

for ii=1:100 
    xk= inv(D)*(b-R*x); 
    if(norm(xk-x,1)<=10^-5) 
     break; 
    end 
    x=xk; 
end 

ii 
+0

を試すことができます - それは虚数単位を無効にします! 'ii'、' i1'、 'ci' isteadを使います。あなたの最後の '私は何を返しますか? – Crowley

+0

私はこれを得る 'i = 28' –

+0

最後のループがJacobi反復を実行する場合、' ii'は反復回数を返します。 – Crowley

答えて

0

あなたが実際に、それを数えています。コード

for ii=1:N 
    %% Code 
end 

カウンタ等ii可変作品の場合

。あなたのコードのステップバイステップを読む

  1. 匿名一時的な配列を定義するには、元forIIの適切な要素反復ごとに1
  2. のデフォルトのステップとNの要素1とforIIを言いますii
  3. %% Codeに割り当てられているiiスカラーの
  4. 新しい値が割り当てられて実行されます。

この動作ができます:

  1. 使用counter=1:Nとして真のカウンター。
  2. 任意の配列の要素を簡単にループします(例:for foo='Hello World!')。
  3. 定義済みのインデックス、配列要素などを使用します。for ii=A
  4. ループがbreakまたはreturnで終了すると、キューの要素は割り当てられず、iiは最後に割り当てられた値を保持します。

あなたは異なるインデックスを持つすべての `i`の変数を変更、最初に

kk=0; 
for ii=1:N 
    kk=kk+1; 
    if ii==5 
    break 
    end 
end 
disp(['kk = ' num2str(kk) '; ii = ' num2str(ii)]); 

kk=0; 
for ii='Hello World!' 
    kk=kk+1; 
    if ii=='r' 
    break 
    end 
end 
disp(['kk = ' num2str(kk) '; ii = ' num2str(ii)]); 
関連する問題