Каков наилучший способ проверить, увеличивается ли увеличение параметра в математическом выражении или уменьшает его выражение в целом (в Python, предпочтительно SymPy)?
Предположения: все параметры положительны (т.е. > 0).
Пример A*B/(A+C)
: A
должен быть найден как пропорциональный выражению, а C
должен быть найден как обратный пропорциональный.
Одним из очевидных решений было бы назначить 1 всем параметрам 1 и 100 в C соответственно и применить eval()
, но это очень грубо и может привести к ошибкам (например, с (A-B)/C
, где лучшим случаем было бы дать ошибка вместо неправильного результата).
Я не считаю, что это можно решить в общем случае. Простым counter- примером является sin(A)
, который может быть как пропорциональным, так и обратным пропорциональным, в зависимости от того, какое значение A вы оцениваете.
Однако вы можете использовать инструмент автоматического дифференцирования, такой как PyDX или Theano, для вычисления производной функций при различных значениях параметров.