Monte Carlo analysis is a great way to explore the impact of input variable uncertainty on the results of engineering equations, and with vector variables and distribution and sampling functions at its core, R is a natural platform for this analysis.
You can play with the app here. The slider bars define the upper and lower limits for input variables such as depth and Manning’s roughness coefficient, and the Shiny app computes resulting discharge (flow) distributions on the fly displayed via histogram and boxplot. The app uses uniform distributions for input variables, but the script could easily be modified to incorporate other distributions. I was especially impressed with the speed with which R and Shiny recomputed the distributions in reaction to changed input variables. For me this project was an update of an older effort using spreadsheet add-ins. While I will always have a warm place in my heart for Crystal Ball, R’s natural fit to Monte Carlo analysis and unlimited plotting capabilities have me excited to do more.