решить математическое уравнение с 1 неизвестным (уравнения строятся динамически) - PullRequest
1 голос
/ 27 апреля 2010

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

х + х / 3 + (х / 3) / 4 + (х / 3/4) / 2 = 50

Теперь я хотел бы оценить это уравнение и получить х. Уравнение строится динамически. х - это листовой узел в таксономии, остальные 3 узла - это супер понятия. Делитель представляет собой число дочерних узлов дочерних узлов.

Существует ли библиотека, которая позволяет строить такие уравнения динамически и разрешать x?

Спасибо, Крис

Ответы [ 3 ]

1 голос
/ 27 апреля 2010

Ваши уравнения всегда имеют такую ​​форму (линейные по x)? Если это так, при построении уравнения просто установите x в 1 и оцените lhs. Это даст вам lhs = 1 + 1/3 + (1/3) / 4 + (1/3/4) / 2 = 1.4583 .. Затем вычислите x = rhs / lhs = 50 / 1.4583

1 голос
/ 27 апреля 2010

Это может помочь вам создать алгебру.

Обратите внимание, что:

x= 3*x/3 = (x*4*3*2)/(4*3*2)
x+x/3 = 3x/3 + x/3 = 4x/3

и в вашем конкретном случае:

x + x/3 + (x/3)/4 + (x/3/4)/2 = (x*4*3*2)/(4*3*2) + (x*4*2)/(4*3*2) + (x*2)/(4*3*2) + (x)/(4*3*2) 
= (4*3*2x + 4*2x + 2*x + x)/(4*3*2)

Возможно, если вы найдете способ переписать левую часть как одну большую дробь, как это, решение будет намного проще. Кроме того, с учетом X

(4*3*2x + 4*2x + 2*x + x)/(4*3*2) = x*(4*3*2 + 4*2 + 2 + 1)/(4*3*2)

Тогда решите для х

50= x*(a/b)
50*(b/a) = x

Поскольку у вас есть некоторый код, генерирующий полином, вы также сможете довольно легко сгенерировать эту большую (a / b) дробь. Я специально не упрощал умножения, чтобы было ясно, откуда происходит каждый компонент.

0 голосов
/ 27 апреля 2010

Если вы планируете использовать Java, вы можете попробовать JAS . Он утверждает, что может решать уравнения с полиномами.

FTA:

Система алгебры Java (JAS) - объектно-ориентированный, безопасный тип и многопоточный подход к компьютерная алгебра. JAS обеспечивает хорошо разработана библиотека программного обеспечения с использованием универсальные типы для алгебраических вычисления, реализованные в Java язык программирования. Библиотека может использоваться как любое другое программное обеспечение Java пакет или его можно использовать в интерактивном режиме или через интерфейс Jython (Java Python). фокус JAS в настоящее время на коммутативные и разрешимые полиномы, Основания и приложения Гребнера. От использование Java в качестве реализации язык JAS является 64-битным и многоядерным процессор готов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...