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 view (last 30 days)
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)

Accepted Answer

Ben11
Ben11 on 26 Aug 2014
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)

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!