what is error actually in my code, any one solve this?

1 Ansicht (letzte 30 Tage)
Dhines
Dhines am 5 Aug. 2014
Kommentiert: Hikaru am 5 Aug. 2014
xdim=50;
ydim=50;
v_now=zeros(xdim,ydim);
v_prev=zeros(xdim,ydim);
for i=1:1:ydim
v_now(i,xdim)=20;
end
x=0.01;
for k=[0.01,0.001,0.0001,0.00001]
iter=0;
iter_error=max(max(abs(v_now-v_prev)));
while(iter_error>k)
iter=iter+1;
for i= 2:1:xdim-1
for j=2:1:ydim-1
v_now(i,j)=(v_now(i-1,j)+v_now(i+1,j)+v_now(i,j-1)+v_now(i,j+1))/4;
end
end
iter_error=max(max(abs(v_now-v_prev)));
v_prev=v_now;
end
h(k)=iter;
end
plot(k,h(k));

Antworten (2)

Julia
Julia am 5 Aug. 2014
Your problem is that k is not an integer. Matlab considers h as an array and you must use integers to access the entries of arrays.

Hikaru
Hikaru am 5 Aug. 2014
Bearbeitet: Hikaru am 5 Aug. 2014
A for loop will repeat a statement for a specified number of times. The line
for k=[0.01,0.001,0.0001,0.00001]
should be fixed. You can use decimal as increments in for loop, but for indexing, you need to use other variables.
h(k)=iter; %the elements in k are not integers, so you cannot use them as index.
  3 Kommentare
Dhines
Dhines am 5 Aug. 2014
i modified it.. but the graph comes blank
Hikaru
Hikaru am 5 Aug. 2014
Thanks Julia, I edited my statement to make it clearer. I meant to say it's not okay for indexing.
OP, can you update the modified code? We can try to see where the problem is.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by