Forced dependency between two random variables

Dear UQLab Team

Recently I came across the need to assure that one of two dependent random variables, that are being sampled when using the new Active Learning Reliability feature, is always greater than the other one. This is necessary because if this condition is not true my FEM model becomes unstable and will not start the analysis and won’t be able to get my output of interest for the reliability analysis.

Is there any way I can assure such a condition inside the input or sampling framework of UQLab?

Thank you in advance for your support.
Neryvaldo Galvão

Dear Neryvaldo
You can define your variables so as to ensure this inequality automatically, i.e:

  • define the input distribution for X_1
  • define an auxiliary Z, which corresponds to X_2-X_1 with a positive-valued distribution
  • Then, in your MODEL you will evaluate samples of (x_1, z) from which you compute the sample x_2 = x_1+z, and pass to your model function.

What are these two variables exactly? How do you choose the distributions?


Dear Professor @bsudret

Thank you for your fast reply.
I was trying to do something similar to what you suggested but it wasn’t working. However, I think I have found the reason. Which I believe was in the .m file I was using to set the UQLink with the FEM software. I will run a couple of tests to confirm this and get back to you.

What you are suggesting is only possible through a .m file where I can work around the generated samples, right? Or there is any other way to do it?

The variables are the following:

InputOpts.Marginals(2).Name = 'YieldStr';    %Reinforcement Yield stress 
InputOpts.Marginals(2).Type = 'Lognormal';
InputOpts.Marginals(2).Moments = [560e6, 0.054*560e6];
InputOpts.Marginals(3).Name = 'PeakStr';    %Reinforcement Peak stress 
InputOpts.Marginals(3).Type = 'Lognormal'; 
InputOpts.Marginals(3).Moments = [580e6, 0.069*580e6];

Thank you for your support
Best Regards
Neryvaldo Galvão