How to stop my iteration Tn(j,i)=Tn+1(j,i)
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    esat gulhan
      
 am 24 Aug. 2020
  
    
    
    
    
    Bearbeitet: Alan Stevens
      
      
 am 24 Aug. 2020
            clear clc
dx=0.5
nx=uint32(5/dx+1)
ny=uint32(5/dx+1)
[X Y]=meshgrid(linspace(0,5,nx),linspace(0,5,ny))
Tint=0
T=Tint*ones(ny,nx)
Tleft=100
Tright=0
Ttop=0
Tbottom=0
T(:,1)=Tleft
T(:,end)=Tright
T(1,:)=Ttop
T(end,:)= Tbottom
k=3
itr=200
 for k=1:itr
     for i=2:nx-1
        for j=2:ny-1
            T(j,i)=((T(j-1,i)+T(j+1,i)+T(j,i-1)+T(j,i+1))/4)            
        end   
    end
 end
[Xq Yq]= meshgrid(linspace(0,5,nx*10),linspace(0,5,ny*10));
colormap jet
Vq=interp2(X,Y,T,Xq,Yq,'cubic',0);
This is my code. My iteration 200 but i want my code stop when Tn(j,i)=Tn+1(j,i) . But i dont know how to break for end...
0 Kommentare
Akzeptierte Antwort
  Alan Stevens
      
      
 am 24 Aug. 2020
        
      Bearbeitet: Alan Stevens
      
      
 am 24 Aug. 2020
  
      Replace your for loop by:
tol = 10^-6; % Or whatever is appropriate
err = 1;
 while err>tol
     Told = T;
     for i=2:nx-1
        for j=2:ny-1
            T(j,i)=((T(j-1,i)+T(j+1,i)+T(j,i-1)+T(j,i+1))/4);            
        end   
     end
    err = max(max(abs(T - Told)));
 end
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Partial Differential Equation Toolbox finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

