What am I doing wrong? (Trying to construct a while loop)

조회 수: 4 (최근 30일)
Richard
Richard 2013년 11월 14일
댓글: Walter Roberson 2013년 11월 14일
V0=10
h_bar_SQ=0.076
E=0:0.1:10
a=0.3
Mass=1
alpha=sqrt(2.*Mass.*E/h_bar_SQ);
beta=sqrt(2.*Mass.*(V0-E)/h_bar_SQ);
F_even=beta.*cos(alpha.*a)-alpha.*sin(alpha.*a)
E=fzero(F_even)
while
E=fzero(F_even);
if
E=Nan;
break
else
a=a-0.010;
end
end
>> scriptmatlab Error: File: scriptmatlab.m Line: 10 Column: 7 Expression or statement is incomplete or incorrect.
>> scriptmatlab Error: File: scriptmatlab.m Line: 12 Column: 7 Expression or statement is incomplete or incorrect.
Line 10 is where is says while and line 12 is where it says if
  댓글 수: 1
Richard
Richard 2013년 11월 14일
I guess I need to add something beside while and if? What?

댓글을 달려면 로그인하십시오.

답변 (3개)

Wayne King
Wayne King 2013년 11월 14일
편집: Wayne King 2013년 11월 14일
One thing is your missing an "end"
if true
% code
endV0=10
h_bar_SQ=0.076
E=0:0.1:10
a=0.3
Mass=1
alpha=sqrt(2.*Mass.*E/h_bar_SQ);
beta=sqrt(2.*Mass.*(V0-E)/h_bar_SQ);
F_even=beta.*cos(alpha.*a)-alpha.*sin(alpha.*a)
E=fzero(F_even)
while
E=fzero(F_even);
if
E=Nan;
break
else
a=a-0.010;
end
end
end
You were missing an "end" for your initial if statement. The other thing is what kind of while statement are you trying to construct here? fzero() returns a value. What condition are you trying to test?
How about something like
while ~isnan(fzero( ))
  댓글 수: 1
Richard
Richard 2013년 11월 14일
편집: Richard 2013년 11월 14일
"Investigate the dependence of the lowest two eigenvalues of the square well upon V0 (with fixed a=0.3 /) and a(with fixed V0= 10), and plot your results. What is the smallest well width that will support two bound states?"
Thats the question to the assignment. Im trying to find the lowest value of a which has units of length for which two bound states(Energies) can be supported.
Energy would be the variable E.

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2013년 11월 14일
Your syntax
if
E=Nan;
break
else
a=a-0.010;
end
is not valid. "if" needs to be followed by a condition, and E=Nan; is not a condition.

Richard
Richard 2013년 11월 14일
Can someone then rewrite it in the correct format?
  댓글 수: 1
Walter Roberson
Walter Roberson 2013년 11월 14일
Please use "Comment on this Answer" instead of creating new Answers.
while true
do a computation
if result of computation has some property
break
end
change something about one or more of the variables involved in the computation
end

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Performance and Memory에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by