Need help with jacobi iterative method computation - matlab code

16 visualizaciones (últimos 30 días)
Steven Benmoha
Steven Benmoha el 13 de Mayo de 2015
Comentada: Walter Roberson el 13 de Mayo de 2015
I'm having trouble getting my code to work for a jacobi iteration problem. The problem is for a class project titled Numerical solution of heat equation on a 2D rectangular plate, here's a pic of the guidelines:
heres my code:
%%Part 1- Define N+1 by 2N+1 matrix
n=10 ;
old_Temp=zeros(n+1,2.*n+1) ;
old_Temp(:,(2.*n+1))=1 ;
old_Temp(n+1,:)=1 ;
old_Temp;
new_Temp=old_Temp;
% Part 2- Define 3 loops
% outermost loop
No=10;
tol=(1*10^-6);
iterations=0;
old_Temp=new_Temp;
while abs(new_Temp-old_Temp) <= tol % convergence check
for i=2:2*N % inbetween loop
for j=2:N % innermost loop
new_Temp(i,j) = (old_Temp(i+1,j) + old_Temp(i-1,j) + old_Temp(i,j+1) + old_Temp(i,j-1))/4; %jacobi computation
end
end
old_Temp(i,j)=new_Temp(i,j);
iterations=iterations+1; % iteration counter
end
| I can't seem to figure out what's wrong with it...it keeps giving me the error
Attempted to access old_Temp(12,2); index out of bounds because size(old_Temp)=[11,21].|

Respuestas (1)

Walter Roberson
Walter Roberson el 13 de Mayo de 2015
You create a (10+1) * (2*10+1) matrix, but your first index into it, "i", is set to go up to 2*N and your second index "j" is set to go up to N. It appears that you have the limits of the two "for" loops reversed.
  5 comentarios
Steven Benmoha
Steven Benmoha el 13 de Mayo de 2015
The only reason I am using the double for loop is because the project guidelines want the algorithm written out a certain way.
Walter Roberson
Walter Roberson el 13 de Mayo de 2015
You could be doing the entire matrix in one step, without even using conv2(). Ah well. In any case look at the other issues I raised.

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by