フィルターのクリア

Constraining a variable value

3 ビュー (過去 30 日間)
Matthew Tortorella
Matthew Tortorella 2021 年 9 月 27 日
コメント済み: Matthew Tortorella 2021 年 9 月 28 日
I am constraining constants for the dynamics of an autonomous system that I am simulating. Within a for loop of 100 iterations, I would like to give "a" a random value greater than zero, "b" a random value greater than 1/a, and "c" a random value greater than 0.5. I have an idea for the code of "a" but I am confused on how to constrain "b" and "c" so that they are random values specifically greater than 1/a and 0.5. Here is what I have for my code right now:
AS= rand(1, 200)*1000;
for ii = 1:100
a = AS(ii);
b=1/a;
c=???
end
Any suggestions on this issue are greatly appreciated. Thank you.
  5 件のコメント
Matthew Tortorella
Matthew Tortorella 2021 年 9 月 28 日
@Image Analyst I tried it and it seems right for "c" but I need "b" to be greater than 1/a not greater than 0.5. Also can you explain what the c = a + (b-a) * rand equation is doing to create a random value for "c".
Matthew Tortorella
Matthew Tortorella 2021 年 9 月 28 日
@Image Analyst I also just took another look at my Lyapunon derivative equation which is where I drew my conclusions about the retsrictions on a,b,c and they have changed. They are now: a>0, b>1/a, and c>1/2b. So the same except for "c" now.

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

回答 (1 件)

Image Analyst
Image Analyst 2021 年 9 月 27 日
編集済み: Image Analyst 2021 年 9 月 27 日
b = 1/a;
b = max([b, 0.5]); % Make sure b is > 0.5
c = a + (b-a) * rand;
c = max([c, 0.5]); % Make sure c is > 0.5

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by