2017-04-10 14 views
0

ヤコビ法を使用して平衡ポテンシャルを見つけるために、2つの金属プレート間に1Dラプラス緩和をプロットするMATLABプログラムを書くことができました。MATLABの3Dラプラスリラックス

私は正直になり、私は私が何をしたかを理解することを完全に確認していないが、ここでのコードの関連する部分である:

N=100; 
V = zeros(N,N); 
V(1,:)=-1; 
V(N,:)=1; 

for n=1:400 
    for i=2:99 
     for j=2:99 
      V(i,j)=(V(i-1,j)+V(i+1,j)+V(i,j+1)+V(i,j-1))*0.25; 
     end 
    end 
end 

と、これは、それがどのように見えるかです:

enter image description here

私は、同じ方法で同じことを3Dで行うことが可能かどうか疑問に思っています。私は3D、3D潜在的なボックスで同様のものを視覚化したい。

私は私がで見つかった同様の式使用してみました「計算物理学をNJジョルダーノ& H.中西、式(5.8)。。」:

V(i,j,k) = [V(i+1,j,k) + V(i-1,j,k) + V(i,j+1,k) + V(i,j-1,k) + V(i,j,k+1) + V(i,j,k-1)] * (1/6); 

、ここでは、私がしようとしている新しいコードであります仕事に取得する:

N=10; % Used smaller number to reduce processing time. 
V = zeros(N,N,N); 
V(:,:,1)=-1; %i am using planes instead of axis as "Insulators" 
V(:,:,N)=1; 

for n=1:100 
    for i=2:99 
     for j=2:99 
      for k=2:99 
       V(i,j,k)=(V(i+1,j,k)+V(i-1,j,k)+V(i,j+1,k)+V(i,j-1,k)+V(i,j,k+1)+V(i,j,k-1))*(1/6); 
      end 
     end 
    end 
end 

と私はV(i,j,k)がある行でIndex exceeds matrix dimensions.を取得しています。

もう一度、上にリンクされた2Dグラフの3Dバージョンであるものを取得しようとしています。 *また、誰かが(MATLABの部分ではなく、数学の部分ではなく)ちょっと説明することができれば本当に感謝しています。私はその方程式でここでやっていることは何ですか?

大変感謝しています。

編集:私は尋ねて忘れました:どのようにこの3D配列をグラフ化しますか?

答えて

0

Nを定義しましたが、処理中に使用していません。 i-1j-1などの値があるので、2から開始する必要があります。また、i+1j+1などの値がある場合は、N-1で終了する必要があります。だから、作業のコードは次のようになります。

N=10; % Used smaller number to reduce processing time. 
V = zeros(N,N,N); 
V(:,:,1)=-1; %i am using planes instead of axis as "Insulators" 
V(:,:,N)=1; 

for n=1:1 
    for i=2:N-1 
     for j=2:N-1 
      for k=2:N-1 
       V(i,j,k)=(V(i+1,j,k)+V(i-1,j,k)+V(i,j+1,k)+V(i,j-1,k)+V(i,j,k+1)+V(i,j,k-1))*(1/6); 
      end 
     end 
    end 
end 

また、第1 for-loopはあなたが提供したコードのこの部分では何もしないことのようです。