invalid use of operator
조회 수: 11 (최근 30일)
이전 댓글 표시
>>shitathatsia = @(x) 2.7*cos(25*x^2+8*x)-10*x*sin(6*x)
starrt=-1
ennd=1
pitaron= (starrt+ennd)/2
while sqrt((shitathatsia(pitaron))^2)> 0.001
if(shitathatsia(pitaron)) * shitathatsia(start) <0
starrt = pitaron
if shitathatsia(pitaron)) * shitathatsia(start) >0
ennd=pitaron
end
pitaron=(starrt+ennd)/2
end
fprintf(pitaron)
댓글 수: 0
답변 (2개)
James Tursa
2021년 5월 3일
You are missing a ( after the second "if", and you are missing an "end" statement. That being said, my suggestion would be to use an "else" instead as that appears to be your intent. E.g.,
if ( condition )
starrt = pitaron;
else
ennd = pitaron;
end
댓글 수: 8
Abdul-Hamid Mohammed
2022년 3월 27일
for i=1:length(t)-1
x(i+1)=x(i)+(a*(x^2)(i)*(1+B(x^2)(i)-q*x(i)*E(i)))*Dt;
E(i+1)=E(i)+(z*(p*q*x(i)*E(i)-c*E(i)))*Dt;
end;
I am getting invalid use of operator with the above syntex, pls how do i resolve it. thank you.
댓글 수: 4
Abdul-Hamid Mohammed
2022년 3월 27일
% Euler's Method
% Initial conditions and setup
% x(t+1)=x(t)+(a*(x(t)^2)*(1+B(x(t)^2)-q*x(t)*E(t)))*Dt
% E(t+1)=E(t)+(z*(p*q*x(t)*E(t)-c*E(t)))*Dt
%
%=======================================================================
a=1; alpha value
B=25; beta value
q=0.1; %catchability
z=0.1; %effort
p=100; %price
c=4; %cost
Dt=0.01; %delta t
timesteps=50;
t=0.1:Dt:timesteps; %array with time
for i=1:length(t)-1
x(i+1)=x(i)+(a*(x(i)^2)*(1+B(x(i)^2)-q*x(i)*E(i)))*Dt;
E(i+1)=E(i)+(z*(p*q*x(i)*E(i)-c*E(i)))*Dt;
end;
Walter Roberson
2022년 3월 27일
B(x(i)^2) is a request to index your scalar value B at the location determined by the calculation. Perhaps you forgot a multiplication.
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!