# create.EM: Create grain-size-distributions. In coffeemuggler/EMMAgeo: End-Member Modelling of Grain-Size Data

## Description

This function allows creating artificial grain-size end-members. One such "artificial end-member loading" may be composed of one or more superimposed normal distributions.

## Usage

 `1` ```create.EM(p1, p2, s, boundaries, n) ```

## Arguments

 `p1` `Numeric` vector, means of normal distributions, i.e. mode positions. `p2` `Numeric` vector, standard deviations of normal distributions, i.e. mode width. `s` `Numeric` vector, relative proportions of each mode, i.e. relative mode height. `boundaries` `Numeric` vector of length two with class boundaries (i.e. `c(lower boundary, upper boundary)`). `n` `Numeric` scalar with number of classes, i.e. resolution of the end-member.

## Details

When building a data set of many artificial end member loadings, these should all have the same `boundaries` and `n`. The function builds composites of individual normal distributions. Each distribution is scaled according to `s`. Finally the distribution is scaled to 100 %.

## Value

`Numeric` vector with normalised end-member loadings, consisting of the mixed normal distributions according to the input parameters.

## Author(s)

Michael Dietze, Elisabeth Dietze

`mix.EM`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```## set lower and upper class boundary, number of classes and class units boundaries <- c(0, 11) n <- 40 phi <- seq(from = boundaries[1], to = boundaries[2], length.out = n) ## create two artificial end-member loadings EMa.1 <- create.EM(p1 = c(2, 5), p2 = c(1, 0.8), s = c(0.7, 0.3), boundaries = boundaries, n = n) EMa.2 <- create.EM(p1 = c(4, 7), p2 = c(1.1, 1.4), s = c(0.5, 0.5), boundaries = boundaries, n = n) ## plot the two artificial end-member loadings plot(phi, EMa.1, type = "l") lines(phi, EMa.2, col = "red") ```