Julia package dealing with propagation of uncertainty

In a static problem, there is uncertainty in some input, like I = a \pm b. The output [a function of spatial variables, i.e. f(x,y)] is uncertain due to uncertain input. For each input sample, randomly generated, the function f(x,y) can be determined accordingly. The package MonteCarloMeasurements.jl can solve this problem, using MonteCarlo-based approach, to bring the value of f at each (x,y) in the form of uncertainty c \pm d.

Compared with a dynamic problem, the expectation [and other moments] of the response in consideration can be obtained with MonteCarlo() option or with Koopman() option which is much more efficient. So I wonder whether there is some package for static problem offering something like Koopman() option in a dynamic problem?

I am sorry if my question is not clear enough due to my limited knowledge in this field though I tried my best to explain it clearly.

Thank you for your help.

If I understand your question, https://github.com/SciML/DiffEqUncertainty.jl/pull/55 will generalize DiffEqUncertainty in the way you need to be non-diffeq based with general inputs, and that will solve your problem. I plan to finish this by the end of the month.

1 Like

Thank you @ChrisRackauckas, it is great to know that the package DiffEqUncertainty.jl can deal with non-diffeq with general inputs soon. To further explain my previous question, I would like to show the situation through a minimal example as follows

Given a static problem, for example, y(x) = a * x + b * sin(x), where a and b are uncertain scalars, a = a0 \pm a1 and b = b0 \pm b1. What is the expectation [and other moments] of y(x)?

The package MonteCarloMeasurements.jl could do this job using MonteCarlo-based approach. Will the package DiffEqUncertainty.jl offer something like Koopman-based approach or any other approach that is more efficient to deal with the job?

By the way, could you please show me how to plot y(x).

Thank you very much.

Yes, the upgraded version will be much faster for these kinds of problem where what is required is just the moments of the solution. Propagating the entire probability distribution just to compute the moments is a very expensive way to do the calculation.

For plotting see Plots.jl and Makie.jl

1 Like