I have a dynamic mechanical system of the form: $$\mathbf{M{\ddot q}+{\Omega_c}G{\dot q}+{Kq}=F(t)}$$

and I need to introduce some uncertainty for the $K$ parameter, which is a symetric matrix of $q$ degrees of freedom.

I did a bit of research of Monte Carlo simulation but I´m a bit confused of how different textbooks approach the problem.

For example , my actual stiffness value is of $1e8$, and I wish to generate values uniformly distributed between $K_l = 1e6$ and $K_u = 1e12$.

I found that I can do this by applying: $$\lambda_i = \mu_{\lambda_i} + \epsilon_i$$ where $\mu_{\lambda_i}$ is the mean value of $\lambda_i$ and $\epsilon$ is a random parameter, and also $$\sigma_{\lambda_i}^2 = E[{(\lambda_i-\mu_{\lambda_i})^2}]$$

I would be using Matlab for running the simulation , with the command rand I can generate a randomly distributed numbers between 0 and 1.

The problem I find with this is that I don't know know to input the boundaries of the $K$ stiffnes values I want.

Then I found another text book that explains how to generate random variables using: $$ X_i = A + (B-A)R_i$$ Where $R_i$ is the random number which can be generated by Matlab with rand command to generate a new random variable $X_i$, with lower and upper limits $A$ and $B$. So in matlab I would do a for loop like this:

for i=1:num

My main question would actually be, what is the difference between these two methods and for the first one, would $\epsilon$ just be a random 0-1 number adding to the average designated value?



1 Answer 1


My advice would be to forget about the mathematical theory and start thinking about what the engineering means. It's hard to think of any situation where the stiffness of a sensibly designed structure might vary "randomly" by a factor of a million, unless all the stiffness values are so high that the response is very insensitive to the stiffness value - and in that case, why bother doing a simulation at all?

Changing the stiffness of a dynamic system by a factor of 1 million will change the frequency of the fundamental modes by a factor of about 1 thousand. That isn't "a design" in any sense of the words that I can recognise in real life engineering.

Think about what causes your stiffness to change - geometrical tolerances, unknown material properties, poorly controlled nonlinear behaviour (e.g. buckling, plasticity, creep), etc. Then use those physical parameters to calculate the stiffness for each simulation point in your Monte Carlo study.

Note that this approach will change the different entries in the $q$-degrees of freedom stiffness matrix by different amounts, and that is probably much more realistic than multiplying the whole matrix by one scalar factor.

  • $\begingroup$ Thanks for your comments @alephzero. Actually you are totally right and I made a stupid mistake by saying that my interval was by a factor of 1 million. From what I read for this situation the variation coefficient should be within the range of 15% - 40% of the mean designated value. Even so, what you say about thinking in engineering terms also made me think more clearly. $\endgroup$
    – spe4ker
    Commented Aug 7, 2017 at 0:13
  • $\begingroup$ I wouldn't have questioned a "tolerance band" of -50% to +100% or even -80% to +400% in real life, But a million was definitely too much! $\endgroup$
    – alephzero
    Commented Aug 7, 2017 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.