I am trying to optimize certain values using golden search, inside while loop. To initialize I assign a value to a variable (say t=0.1) outside while loop. I calculate the another parameter using golden ratio method inside the while loop, check for the the condition if my objective is less than tolerance the loop breaks, else I have to update the value of (t) by say 0.05. The maximum value for t is 0.35. If I write it like, t=t+0.05; it will go into infinite looping case. How to stop this while loop, once t attains its maximum value?
t=0.1; %for this t calculate initial y1, y2, which are further updated using golden search
while 1
%code for golden search, giving values of y2 and y1.
if (abs(y2-y1)<=tolerance)
break
end
t=t+0.05;
end
I want t must not exceed 0.35 in any case.

2 件のコメント

Chunru
Chunru 2022 年 8 月 26 日
Then you need "while t<0.35" instead of "while 1"
Chetan Fadnis
Chetan Fadnis 2022 年 8 月 26 日
thank you.

サインインしてコメントする。

 採用された回答

Karim
Karim 2022 年 8 月 26 日

0 投票

You can change the condition for the while loop to reflect this, see below for an example
t = 0.1;
t_max = 0.35;
while t <= t_max
%code for golden search, giving values of y2 and y1.
if abs(y2-y1) <= tolerance
break
end
t = t + 0.05;
end

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2022 年 8 月 26 日

コメント済み:

2022 年 8 月 26 日

Community Treasure Hunt

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

Start Hunting!

Translated by