Cumulative Distribution Function
===
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependencies][dependencies-image]][dependencies-url]
> [Rayleigh](https://en.wikipedia.org/wiki/Rayleigh_distribution) distribution [cumulative distribution function](https://en.wikipedia.org/wiki/Cumulative_distribution_function).
The [cumulative distribution function](https://en.wikipedia.org/wiki/Cumulative_distribution_function) for a [Rayleigh](https://en.wikipedia.org/wiki/Rayleigh_distribution) random variable is
<div class="equation" align="center" data-raw-text="F(x;\sigma) = \begin{cases}
0 & \text{ for } x < 0 \\
1 - e^{-x^2/2\sigma^2} & \text{ for } x \ge 0
\end{cases} " data-equation="eq:cdf">
<img src="https://cdn.rawgit.com/distributions-io/rayleigh-cdf/dc9d27df02622b24a327b54d839c83bb3be3f327/docs/img/eqn.svg" alt="Cumulative distribution function for a Rayleigh distribution.">
<br>
</div>
where `sigma` is the scale parameter.
## Installation
``` bash
$ npm install distributions-rayleigh-cdf
```
For use in the browser, use [browserify](https://github.com/substack/node-browserify).
## Usage
``` javascript
var cdf = require( 'distributions-rayleigh-cdf' );
```
#### cdf( x[, options] )
Evaluates the [cumulative distribution function](https://en.wikipedia.org/wiki/Cumulative_distribution_function) for the [Rayleigh](https://en.wikipedia.org/wiki/Rayleigh_distribution) distribution. `x` may be either a [`number`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), an [`array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array), a [`typed array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays), or a [`matrix`](https://github.com/dstructs/matrix).
``` javascript
var matrix = require( 'dstructs-matrix' ),
mat,
out,
x,
i;
out = cdf( 1 );
// returns ~0.393
x = [ -1, 0, 1, 2, 3 ];
out = cdf( x );
// returns [ 0, 0, ~0.393, ~0.865, ~0.989 ]
x = new Float32Array( x );
out = cdf( x );
// returns Float64Array( [0,0,~0.393,~0.865,~0.989] )
x = new Float32Array( 6 );
for ( i = 0; i < 6; i++ ) {
x[ i ] = i;
}
mat = matrix( x, [3,2], 'float32' );
/*
[ 0 1
2 3
3 5 ]
*/
out = cdf( mat );
/*
[ 0 ~0.393
~0.865 ~0.989
~1 ~1 ]
*/
```
The function accepts the following `options`:
* __sigma__: scale parameter. Default: `1`.
* __accessor__: accessor `function` for accessing `array` values.
* __dtype__: output [`typed array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) or [`matrix`](https://github.com/dstructs/matrix) data type. Default: `float64`.
* __copy__: `boolean` indicating if the `function` should return a new data structure. Default: `true`.
* __path__: [deepget](https://github.com/kgryte/utils-deep-get)/[deepset](https://github.com/kgryte/utils-deep-set) key path.
* __sep__: [deepget](https://github.com/kgryte/utils-deep-get)/[deepset](https://github.com/kgryte/utils-deep-set) key path separator. Default: `'.'`.
A [Rayleigh](https://en.wikipedia.org/wiki/Rayleigh_distribution) distribution is a function of one parameter: `sigma`(scale parameter). By default, `sigma` is equal to `1`. To adjust it, set the corresponding option.
``` javascript
var x = [ -1, 0, 1, 2, 3 ];
var out = cdf( x, {
'sigma': 7
});
// returns [ 0, 0, ~0.0102, ~0.04, ~0.0877 ]
```
For non-numeric `arrays`, provide an accessor `function` for accessing `array` values.
``` javascript
var data = [
[0,-1],
[1,0],
[2,1],
[3,2],
[4,3],
];
function getValue( d, i ) {
return d[ 1 ];
}
var out = cdf( data, {
'accessor': getValue
});
// returns [ 0, 0, ~0.393, ~0.865, ~0.989 ]
```
To [deepset](https://github.com/kgryte/utils-deep-set) an object `array`, provide a key path and, optionally, a key path separator.
``` javascript
var data = [
{'x':[0,-4]},
{'x':[1,-2]},
{'x':[2,0]},
{'x':[3,2]},
{'x':[4,4]},
];
var out = cdf( data, {
'path': 'x/1',
'sep': '/'
});
/*
[
{'x':[0,0]},
{'x':[1,0]},
{'x':[2,~0.393]},
{'x':[3,~0.865]},
{'x':[4,~0.989]},
]
*/
var bool = ( data === out );
// returns true
```
By default, when provided a [`typed array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays) or [`matrix`](https://github.com/dstructs/matrix), the output data structure is `float64` in order to preserve precision. To specify a different data type, set the `dtype` option (see [`matrix`](https://github.com/dstructs/matrix) for a list of acceptable data types).
``` javascript
var x, out;
x = new Float64Array( [-1,0,1,2,3] );
out = cdf( x, {
'dtype': 'float32'
});
// returns Float32Array( [0,0,~0.393,~0.865,~0.989] )
// Works for plain arrays, as well...
out = cdf( [-1,0,1,2,3], {
'dtype': 'float32'
});
// returns Float32Array( [0,0,~0.393,~0.865,~0.989] )
```
By default, the function returns a new data structure. To mutate the input data structure (e.g., when input values can be discarded or when optimizing memory usage), set the `copy` option to `false`.
``` javascript
var bool,
mat,
out,
x,
i;
x = [ -1, 0, 1, 2, 3 ];
out = cdf( x, {
'copy': false
});
// returns [ 0, 0, ~0.0102, ~0.04, ~0.0877 ]
bool = ( x === out );
// returns true
x = new Float32Array( 6 );
for ( i = 0; i < 6; i++ ) {
x[ i ] = i;
}
mat = matrix( x, [3,2], 'float32' );
/*
[ 0 1
2 3
3 5 ]
*/
out = cdf( mat, {
'copy': false
});
/*
[ 0 ~0.393
~0.865 ~0.989
~1 ~1 ]
*/
bool = ( mat === out );
// returns true
```
## Notes
* If an element is __not__ a numeric value, the evaluated [cumulative distribution function](https://en.wikipedia.org/wiki/Cumulative_distribution_function) is `NaN`.
``` javascript
var data, out;
out = cdf( null );
// returns NaN
out = cdf( true );
// returns NaN
out = cdf( {'a':'b'} );
// returns NaN
out = cdf( [ true, null, [] ] );
// returns [ NaN, NaN, NaN ]
function getValue( d, i ) {
return d.x;
}
data = [
{'x':true},
{'x':[]},
{'x':{}},
{'x':null}
];
out = cdf( data, {
'accessor': getValue
});
// returns [ NaN, NaN, NaN, NaN ]
out = cdf( data, {
'path': 'x'
});
/*
[
{'x':NaN},
{'x':NaN},
{'x':NaN,
{'x':NaN}
]
*/
```
## Examples
``` javascript
var cdf = require( 'distributions-rayleigh-cdf' ),
matrix = require( 'dstructs-matrix' );
var data,
mat,
out,
tmp,
i;
// Plain arrays...
data = new Array( 10 );
for ( i = 0; i < data.length; i++ ) {
data[ i ] = i / 2;
}
out = cdf( data );
// Object arrays (accessors)...
function getValue( d ) {
return d.x;
}
for ( i = 0; i < data.length; i++ ) {
data[ i ] = {
'x': data[ i ]
};
}
out = cdf( data, {
'accessor': getValue
});
// Deep set arrays...
for ( i = 0; i < data.length; i++ ) {
data[ i ] = {
'x': [ i, data[ i ].x ]
};
}
out = cdf( data, {
'path': 'x/1',
'sep': '/'
});
// Typed arrays...
data = new Float32Array( 10 );
for ( i = 0; i < data.length; i++ ) {
data[ i ] = i / 2;
}
out = cdf( data );
// Matrices...
mat = matrix( data, [5,2], 'float32' );
out = cdf( mat );
// Matrices (custom output data type)...
out = cdf( mat, {
'dtype': 'uint8'
});
```
To run the example code from the top-level application directory,
``` bash
$ node ./examples/index.js
```
## Tests
### Unit
Unit tests use the [Mocha](http://mochajs.org/) test framework with [Chai](http://chaijs.com) assertions. To run the tests, execute the following command in the top-level application directory:
``` bash
$ make test
```
All new feature development should have corresponding unit tests to validate correct functionality.
### Test Coverage
This repository uses [Istanbul](https://github.com/gotwarlost/istanbul) as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
``` bash
$ make test-cov
```
Istanbul creates a `./reports/coverage` directory. To access an HTML version of the report,
``
没有合适的资源?快使用搜索试试~ 我知道了~
rayleigh-cdf:瑞利分布累积分布函数(CDF)
共47个文件
js:19个
r:8个
json:8个
需积分: 28 13 下载量 96 浏览量
2021-04-27
17:27:51
上传
评论 1
收藏 40KB ZIP 举报
温馨提示
累积分布函数 分布。 随机变量的为 其中sigma是比例参数。 安装 $ npm install distributions-rayleigh-cdf 要在浏览器中使用,请使用 。 用法 var cdf = require ( 'distributions-rayleigh-cdf' ) ; cdf(x [,选项]) 评估分布的。 x可以是number , array ,typed array或matrix 。 var matrix = require ( 'dstructs-matrix' ) , mat , out , x , i ; out = cdf ( 1 ) ; // returns ~0.393 x = [ - 1 , 0 , 1 , 2 , 3 ] ; out = cdf ( x ) ; // returns [ 0, 0, ~0.393, ~0.865
资源推荐
资源详情
资源评论
收起资源包目录
rayleigh-cdf-master.zip (47个子文件)
rayleigh-cdf-master
.jshintrc 1KB
.gitignore 1KB
package.json 2KB
Makefile 2KB
.travis.yml 149B
LICENSE 1KB
examples
index.js 1KB
.jshintignore 118B
README.md 9KB
lib
matrix.js 788B
index.js 3KB
partial.js 838B
deepset.js 1KB
array.js 928B
validate.js 3KB
number.js 603B
accessor.js 1KB
typedarray.js 963B
TODO.md 12B
.npmignore 498B
.gitattributes 12B
docs
img
eqn.svg 14KB
test
test.number.js 1KB
test.accessor.js 2KB
test.matrix.js 2KB
test.js 10KB
test.typedarray.js 1KB
test.array.js 2KB
fixtures
partial.json 94B
test.number.R 293B
test.array.R 287B
number.json 92B
deepset.json 2KB
test.partial.R 296B
test.accessor.R 290B
accessor.json 3KB
runner.R 899B
test.typedarray.R 293B
test.deepset.R 289B
array.json 4KB
matrix.json 214B
typedarray.json 4KB
test.matrix.R 276B
test.partial.js 1KB
test.validate.js 3KB
test.deepset.js 2KB
.editorconfig 169B
共 47 条
- 1
资源评论
- m0_602218722021-09-13java文件,根本不是matlab
星见勇气
- 粉丝: 22
- 资源: 4737
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功