Оптимизация математического выражения

Рейтинг: 0Ответов: 0Опубликовано: 13.01.2023

Я пишу небольшой проект который может находить производную от функции, но после нахождения производный остается много мусора. К примеру производная от x ** 2:

(((2.0 * (x ** (2.0 - 1.0))) * 1.0) + (((x ** 2.0) * ln(x)) * 0.0))

Я смог написать небольшой оптимизатор который убирает не нужное и вот что он выдает:

2 * x

но он работает только на простых примерах. Он не справляется даже с таким выражением:

x / x                                               # исходной выражение
(((1.0 / x) * 1.0) + (((-(x)) / (x ** 2.0)) * 1.0)) # производная без оптимизации
((1.0 / x) - (x / (x ** 2.0)))                      # с оптимизацией

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

x ** 10
(10.0 * (9.0 * (8.0 * (7.0 * (6.0 * (x ** 5.0))))))
# производная 5 степени

У меня такой вопрос какие существуют методы оптимизации математических выражение и где о них можно почитать?

Ответы

Ответов пока нет.