Как стать автором
Обновить

Математическая библиотека Numbers.js

Время на прочтение1 мин
Количество просмотров17K
Numbers.js добавляет к стандартным математическим возможностям JavaScript немного продвинутой математики — интегралы, операции над матрицами и комплексными числами, статистические функции, факторизацию и некоторые другие функции. Кроме того, библиотека определяет базовые арифметические операции над массивами — сложение, вычитание и умножение элементов, поиск минимума и максимума, случайное перемешивание массива и позволяет в явном виде задавать необходимую точность вычислений, что помогает избежать ошибок округления.

Примеры использования


Подключаем библиотеку под Node.js и вычисляем интеграл Римана (с разбиением на 200 отрезков и точностью 0.0001):

var numbers = require('numbers');

numbers.calculus.riemann(Math.sin, -2, 4, 200, 0.0001);

Использование собственных функций:

var myFunc = function(x) {
  return 2*Math.pow(x,2) + 1;
}

numbers.calculus.riemann(myFunc, -2, 4, 200);

Статистические функции:

numbers.statistic.mean(array);
numbers.statistic.median(array);
numbers.statistic.mode(array);
numbers.statistic.standardDev(array);
numbers.statistic.randomSample(lower, upper, n);
numbers.statistic.correlation(array1, array2);

Сложение матриц:

var array1 = [0, 1, 2];
var array2 = [3, 4, 5];

numbers.matrix.addition(array1, array2);

Наибольший общий делитель:

numbers.basic.gcd(x, y);

Библиотеке всего около месяца, но она смогла привлечь внимание разработчиков на Гитхабе и активно пополняется (пару недель назад набор функций был почти вдвое скромнее).

Ссылки


Гитхаб, документация.

Теги:
Хабы:
Всего голосов 56: ↑51 и ↓5+46
Комментарии37

Публикации

Истории

Работа

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область