In the program below, the loop stops at theta(4). It will be a great help if you can please help me to rectify the error.
1 次查看(过去 30 天)
显示 更早的评论
clear
theta(1)= input('Enter your guess:')
theta(3)= theta(1)
S1=0.5
S2=.32
S3=0.56
dx=(1/30)
for i= 2:30
theta(i)=(theta(i+1)+theta(i-1)+S3*(dx)^2)/(S1*theta(i)*(dx)^2+S2*(dx)^2+2)
end
theta(i)
The error message is-----
??? Attempted to access theta(4); index out of bounds because numel(theta)=3.
Error in ==> discrtization at 9. theta(i)=(theta(i+1)+theta(i-1)+S3*
(dx)^2)/(S1*theta(i)*(dx)^2+S2*(dx)^2+2)
0 个评论
采纳的回答
Ben11
2014-8-26
Initialize your array theta and change the upper limit of your for loop like so:
theta = zeros(1,30);
theta(1)= input('Enter your guess:')
theta(3)= theta(1)
S1=0.5
S2=.32
S3=0.56
dx=(1/30)
for i= 2:size(theta,2)-1
theta(i)=(theta(i+1)+theta(i-1)+S3*(dx)^2)/(S1*theta(i)*(dx)^2+S2*(dx)^2+2)
end
theta(i)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!