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.

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)

 Akzeptierte Antwort

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)

Weitere Antworten (0)

Kategorien

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

Gefragt:

am 26 Aug. 2014

Kommentiert:

am 26 Aug. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by