# Parameters¶

The parameters of a model are defined by two properties they must have (i) a name and (ii) either a fixed value or a distribution. It is important that the name of the parameter is the same as the name given as the input argument in the model function. A parameter is considered uncertain if it has a probability distribution, and the distributions are given as Chaospy distributions. 64 different univariate distributions are defined in Chaospy. For a list of available distributions and detailed instructions on how to create probability distributions with Chaospy, see Section 3.3 in the Chaospy paper.

The parameters are defined by the Parameters class.
`Parameters`

takes the argument parameters.
parameters can be on many different forms, but the most useful is
a dictionary with the above information,
the names of the parameters are the keys,
and the fixed values or distributions of the parameters are the values.
As an example, if we have two parameters,
where the first is named `name_1`

and has a uniform probability
distributions in the interval \([8, 16]\), and the second is named
`name_2`

and has a fixed value 42, the list become:

```
import chaospy as cp
parameters = {"name_1": cp.Uniform(8, 16), "name_2": 42}
```

And `Parameters`

is initialized:

```
parameters = un.Parameters(parameters=parameters)
```

The other possible forms that parameters can take are:

`{name_1: parameter_object_1, name: parameter_object_2, ...}`

`{name_1: value_1 or Chaospy distribution, name_2: value_2 or Chaospy distribution, ...}`

`[parameter_object_1, parameter_object_2, ...]`

,`[[name_1, value_1 or Chaospy distribution], ...]`

.`[[name_1, value_1, Chaospy distribution or callable that returns a Chaospy distribution], ...]`

Where `name`

is the name of the parameter and `parameter_object`

is a `Parameter`

object (see below).
The parameter argument in `UncertaintyQuantification`

is either
`Parameters`

object, or a `parameters`

dictionary/list as shown above.

Each parameter in `Parameters`

is a Parameter object.
Each `Parameter`

object is responsible for storing the name and fixed value
and/or distribution of each parameter.
It is initialized as:

```
parameter = Parameter(name="name_1", distribution=cp.Uniform(8, 16))
```

In general you should not need to use `Parameter`

, it is mainly for internal
use in Uncertainpy