Math.net Возможности тригонометрических функций в C#

Как получить полномочия функции триггера в Math.net?

Expr x = Expr.Variable("x");
Expr g = (2 * x).Sinh().Pow(2);

g.ToString() дает результат: (sinh(2*x))^2

Я хочу sinh^2(2*x)

Как мне это сделать?

Редактировать:

Согласно приведенному ниже комментарию Кристофа, это можно сделать в версии 0.21.0, которая реализует Expr.ToCustomString(true)

1 ответ

Решение

В настоящее время эта нотация не поддерживается. Однако я вижу три варианта:

  1. Мы определяем степени тригонометрических функций как новые функции или делаем их параметрическими.
    Я не хочу этого делать.
  2. Мы представляем неприменяемые функции как первоклассную концепцию, которой можно манипулировать таким образом.
    Это то, что мы, вероятно, захотим изучить в какой-то момент, но это более обширная тема и, вероятно, излишняя для того, что вам нужно.
  3. Расширьте наши визуальные выражения для поддержки положительных целочисленных степеней функций.
    Это то, что мы могли бы реализовать.

Вариант 3 позволит сохранить один набор скобок в таких выражениях, что приведет к более компактному рендерингу, особенно для средства форматирования LaTeX, где результат будет более читабельным. При построении визуального выражения из выражения оно автоматически подтягивает положительные целые числа к применяемой функции.

Насколько я понимаю, вас беспокоит только то, как он напечатан, поэтому мне кажется, что это также решит вашу проблему?

Другие вопросы по тегам