Jump to content

Мкспарсер

MathParser.org-mXparser
Оригинальный автор(ы) Мариуш Громада
Первоначальный выпуск январь 2010 г .; 14 лет назад ( 2010-01 )
Стабильная версия
6.0.0 / 19 мая 2024 г .; 2 месяца назад ( 19.05.2024 )
Репозиторий github /Мариушгромада /Матемпарсер .org-mXparser /
Написано в Ява , С#
Платформа JVM , Android , .NET , .NET Core , .NET Standard, Windows Phone , MONO , Xamarin , Xamarin.iOS , Xamarin.Android
Веб-сайт математический анализатор .org

mXparser — это с открытым исходным кодом /оценщик математических выражений анализатор , обеспечивающий возможность вычисления различных выражений во время выполнения . [1] Определения выражений даются в виде обычного текста, затем проверяются с точки зрения грамматики/синтаксиса и, наконец, вычисляются. библиотеки Исходный код поддерживается отдельно для Java и C# , предоставляя один и тот же API для Java/JVM , Android , .NET и Mono ( соответствует спецификации общего языка ).

Основные возможности/примеры использования

[ редактировать ]

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

mXparser поддерживает основные операторы, такие как: сложение '+' , вычитание '-' , умножение '*' , деление '/' , факториал '!' , степень '^' , по модулю '#' .

Expression e = new Expression("2+3/(4+5)^4");double v = e.calculate();

Подразумеваемое умножение [2]

[ редактировать ]
Expression e = new Expression("2(3+4)3");double v = e.calculate();
Expression e = new Expression("2pi(3+4)2sin(3)e");double v = e.calculate();

Можно комбинировать типичные выражения с бинарными отношениями (например: больше '>' , меньше '<' , равенство '=' , неравенство '<>' , больше или равно '>=', меньше или равно '< ='), поскольку каждая оценка отношения приводит либо к «1» для истинного результата, либо к «0» для ложного результата .

Expression e = new Expression("(2<3)+5");double v = e.calculate();

Булева логика также работает, предполагая эквивалентность «1» как истинного и «0» как ложного . Поддерживаемые логические операторы включают: соединение AND , дизъюнкция OR , NAND штрих Шеффера , NOR , исключающее ИЛИ XOR , импликация IMP , обратная импликация CIMP , неимпликация материала NIMP , обратная неимпликация CNIMP , логическое двуусловное выражение EQV , отрицание .

Expression e = new Expression("1 --> 0");double v = e.calculate();

Встроенные математические функции [2]

[ редактировать ]

Поддерживаются общие математические функции (унарные, двоичные и переменное число аргументов), в том числе: тригонометрические функции , обратные тригонометрические функции , функции логарифма , экспоненциальная функция , гиперболические функции , обратные гиперболические функции , числа Белла , числа Люка , числа Стирлинга , функция подсчета простых чисел. , экспоненциальная интегральная функция , логарифмическая интегральная функция , смещенный логарифмический интеграл , биномиальный коэффициент и другие.

Expression e = new Expression("sin(0)+ln(2)+log(3,9)");double v = e.calculate();
Expression e = new Expression("min(1,2,3,4)+gcd(1000,100,10)");double v = e.calculate();
Expression e = new Expression("if(2<1, 3, 4)");double v = e.calculate();
Expression e = new Expression("iff(2<1, 1; 3<4, 2; 10<2, 3; 5<10, 4)");double v = e.calculate();

Встроенные математические константы [2]

[ редактировать ]

Встроенные математические константы с высокой точностью.

Expression e = new Expression("sin(pi)+ln(e)");double v = e.calculate();

Итерированные операторы [2]

[ редактировать ]

Итерированное суммирование и операторы произведения .

Expression e = new Expression("sum(i, 1, 10, ln(i))");double v = e.calculate();
Expression e = new Expression("prod(i, 1, 10, sin(i))");double v = e.calculate();

mXparser обеспечивает реализацию следующих вычислительных операций: дифференцирование и интегрирование .

Expression e = new Expression("der( sin(x), x )");double v = e.calculate();
Expression e = new Expression("int( sqrt(1-x^2), x, -1, 1)");double v = e.calculate();
Expression e = new Expression("ispr(21)");double v = e.calculate();
Expression e = new Expression("Pi(1000)");double v = e.calculate();
Expression e = new Expression("√2");double v = e.calculate();
Expression e = new Expression("∜16 + ∛27 + √16");double v = e.calculate();
Expression e = new Expression("∑(i, 1, 5, i^2)");double v = e.calculate();

Элементы, определяемые пользователем

[ редактировать ]

Библиотека предоставляет API для создания пользовательских объектов, таких как константы, аргументы, функции.

Пользовательские константы [3]

[ редактировать ]
Constant t = new Constant("t = 2*pi");Expression e = new Expression("sin(t)", t);double v = e.calculate();

Пользовательские аргументы [3]

[ редактировать ]
Argument x = new Argument("x = 5");Argument y = new Argument("y = 2*x", x);Expression e = new Expression("sin(x)+y", x, y);double v = e.calculate();

Пользовательские функции [3]

[ редактировать ]
Function f = new Function("f(x, y) = sin(x)+cos(y)");Expression e = new Expression("f(1,2)", f);double v = e.calculate();

Пользовательские вариативные функции [3]

[ редактировать ]
Function f = new Function("f(...) = sum( i, 1, [npar], par(i) )");Expression e = new Expression("f(1,2,3,4)", f);double v = e.calculate();

Пользовательская рекурсия [3]

[ редактировать ]
Function fib = new Function("fib(n) = iff( n>1, fib(n-1)+fib(n-2); n=1, 1; n=0, 0 ) )");Expression e = new Expression("fib(10)", fib);   double v = e.calculate();

Требования [3]

[ редактировать ]

Документация

[ редактировать ]

mXparser — исходный код

[ редактировать ]

Исходный код поддерживается и публикуется на GitHub . [5]

См. также

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2dde1eaa90a8f7421f8d79b2205604bb__1717064220
URL1:https://arc.ask3.ru/arc/aa/2d/bb/2dde1eaa90a8f7421f8d79b2205604bb.html
Заголовок, (Title) документа по адресу, URL1:
Mxparser - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)