Can someone please help me stop "Index exceeds array bounds." in iteration? Any help is highly appreciated.

1 次查看(过去 30 天)
clc
A = [4 -1 -3;-2 6 1;-1 1 7];
b=[3;9;-6];
D=diag(diag(A))
[L,U]=lu(A)
Mj = D\(U+L)
Mj(:,3)=[];
Mj(:,2)=[];
Vj =D\b
x1=zeros;
x=zeros;
for n = 2:8
x = Mj*('the previous x value')+ Vj;
end
x

采纳的回答

Clayton Gotberg
Clayton Gotberg 2021-4-18
编辑:Clayton Gotberg 2021-4-18
You're asking for elements in x1 that don't exist. If we look only at the last loop n == 8 and you are asking for x1(7), but x1 is defined just before as being a 3x1 matrix of zeros.
I also want to point out that x1 is always zero in the code you posted here, so x will always equal Vj. Additionally, x is being overwritten on every loop instead of the value in each loop being saved.
  2 个评论
Yunusah Abdulai
Yunusah Abdulai 2021-4-18
编辑:Yunusah Abdulai 2021-4-18
Thank you. I had noticed. I still have a problem in the iteration. please help me
clc
A = [4 -1 -3;-2 6 1;-1 1 7];
b=[3;9;-6];
D=diag(diag(A))
[L,U]=lu(A)
Mj = D\(U+L)
Mj(:,3)=[];
Mj(:,2)=[];
Vj =D\b
x=zeros;
for n = 2:8
x = Mj*('the previous x value')+ Vj;
end
x
Clayton Gotberg
Clayton Gotberg 2021-4-18
The previous value of x is just x. When programming, you are allowed to change the value of a variable using a reference to itself:
x = 5; % Define an initial value for x
x = x+5: % Define a new value for x: x = x (which we defined as 5) + 5
% Now, x == 10

请先登录,再进行评论。

更多回答(1 个)

the cyclist
the cyclist 2021-4-18
In your for loop, when n==5, your code tries to execute
x1(n-1)
which is
x1(4)
But your vector x1 is length 3, so there is no 4th element to access. That's why you get that error.
  1 个评论
Yunusah Abdulai
Yunusah Abdulai 2021-4-18
编辑:Yunusah Abdulai 2021-4-18
I edited the the code and i have this but i still have a problem with the iteration
clc
A = [4 -1 -3;-2 6 1;-1 1 7];
b=[3;9;-6];
D=diag(diag(A))
[L,U]=lu(A)
Mj = D\(U+L)
Mj(:,3)=[];
Mj(:,2)=[];
Vj =D\b
x1=zeros;
x=zeros;
for n = 2:8
x = Mj*('the previous x value')+ Vj;
end
x

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by