# wblinv

Weibull inverse cumulative distribution function

## Syntax

```X = wblinv(P,A,B) [X,XLO,XUP] = wblinv(P,A,B,PCOV,alpha) ```

## Description

`X = wblinv(P,A,B)` returns the inverse cumulative distribution function (cdf) for a Weibull distribution with scale parameter `A` and shape parameter `B`, evaluated at the values in `P`. `P`, `A`, and `B` can be vectors, matrices, or multidimensional arrays that all have the same size. A scalar input is expanded to a constant array of the same size as the other inputs. The default values for `A` and `B` are both `1`.

`[X,XLO,XUP] = wblinv(P,A,B,PCOV,alpha)` returns confidence bounds for `X` when the input parameters `A` and `B` are estimates. `PCOV` is a 2-by-2 matrix containing the covariance matrix of the estimated parameters. `alpha` has a default value of 0.05, and specifies 100(1 -  `alpha`)% confidence bounds. `XLO` and `XUP` are arrays of the same size as `X` containing the lower and upper confidence bounds.

The function `wblinv` computes confidence bounds for `X` using a normal approximation to the distribution of the estimate

`$\mathrm{log}\stackrel{^}{a}+\frac{\mathrm{log}q}{\stackrel{^}{b}}$`

where q is the `P`th quantile from a Weibull distribution with scale and shape parameters both equal to 1. The computed bounds give approximately the desired confidence level when you estimate `mu`, `sigma`, and `PCOV` from large samples, but in smaller samples other methods of computing the confidence bounds might be more accurate.

The inverse of the Weibull cdf is

`$x={F}^{-1}\left(p|a,b\right)=-a{\left[\mathrm{ln}\left(1-p\right)\right]}^{1/b}.$`

## Examples

The lifetimes (in hours) of a batch of light bulbs has a Weibull distribution with parameters `a` = `200` and b = `6`.

Find the median lifetime of the bulbs:

```life = wblinv(0.5, 200, 6) life = 188.1486```

Generate 100 random values from this distribution, and estimate the 90th percentile (with confidence bounds) from the random sample

```x = wblrnd(200,6,100,1); p = wblfit(x) [nlogl,pcov] = wbllike(p,x) [q90,q90lo,q90up] = wblinv(0.9,p(1),p(2),pcov) p = 204.8918 6.3920 nlogl = 496.8915 pcov = 11.3392 0.5233 0.5233 0.2573 q90 = 233.4489 q90lo = 226.0092 q90up = 241.1335```