MathJS Математическая Библиотека Для JavaScript


То, в чем хорош язык, немного зависит от его базового синтаксиса и семантики, но гораздо больше от того, какие библиотеки легко доступны. Если вы не думаете о JavaScript как о математическом языке, возможно, вам нужно познакомиться с MathJS.

MathJS

Math.js это простое расширение стандартного математического объекта, с которым вы должны быть знакомы. Например 

math.pow(2,3)

возвращает 2, возведенное в степень 3. Math.js также имеет функцию pow, но она может поднимать комплексные числа, большие числа или матрицы в степень. 

Одна из наиболее важных особенностей Math.js is, который поддерживает целый ряд типов данных, и, насколько это возможно, все его функции работают со всеми доступными типами данных. Вы можете использовать стандартное число, Bignumber, т. Е. произвольную точность, комплексные числа и матрицы. Вы также можете определить единицы измерения для физических вычислений.  

Например:

var a = math.complex(2, 3); 
var b = math.complex('4 - 2i'); 

определяет комплексные числа, и вы можете работать с ними, используя

math.add(a,b);

и аналогичные функции.  Вы также можете использовать метод eval для разработки арифметических выражений, включающих любой из типов данных, без необходимости использования специальных функций. Например:

math.eval('a+b');

выполняет сложное сложение, если a и b являются сложными.

Помимо основных операторов, у вас также есть некоторые более продвинутые функции, такие как math.inv, чтобы найти обратную матрицу и небольшое количество вероятностных и статистических функций.

Следует признать, что спектр услуг не ставит Math.js в тот же класс, что и NumPy Python, но он движется в правильном направлении.  Вы можете использовать его в браузере или в качестве Node.js библиотека и, конечно же, у нее есть преимущество в том, что она работает таким же образом на клиенте или сервере. Это открытый исходный код, и вы всегда можете помочь расширить его.

Большая проблема с JavaScript и сжатием чисел-это скорость. Было бы интересно посмотреть, если бы Math.js можно было бы оптимизировать, введя asm.js типы данных. Это было бы много работы, но результатом было бы что-то, что работало бы со скоростью, близкой к скорости, достижимой машинным кодом.


Добавить комментарий