Borrar filtros
Borrar filtros

Constraining a variable value

3 visualizaciones (últimos 30 días)
Matthew Tortorella
Matthew Tortorella el 27 de Sept. de 2021
Comentada: Matthew Tortorella el 28 de Sept. de 2021
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 comentarios
Matthew Tortorella
Matthew Tortorella el 28 de Sept. de 2021
@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 el 28 de Sept. de 2021
@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.

Iniciar sesión para comentar.

Respuestas (1)

Image Analyst
Image Analyst el 27 de Sept. de 2021
Editada: Image Analyst el 27 de Sept. de 2021
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

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by