.: [предыдущая | оглавление | следующая] :.

17.3 Построение уравнения стандартого вида

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

  1. получено выражение, состоящее из одной искомой переменной;
  2. в процессе подстановок произошло сокращение неизвестных переменных (т.е. все переменные известны);
  3. получено выражение, в котором есть искомая переменная, а остальные переменные известны.

В первом случае решения нет, т.к. были использованы как прямые преобразования, так и обратные. Например, V => S/t и далее S => V * t. Во втором случае явно получено выражение для определения искомой переменной, т.е. найдено решение без составления уравнения. Причем решение может быть получено ранее, чем произведены все подставки в данном варианте. Это связано с тем, что в процессе преобразования выражения неизвестные переменные могут быть сокращены. Только при рассмотрении третьего варианта строится уравнение. Для построения уравнения необходимо к полученному выражению добавить искомую переменную со знаком минус.

И далее преобразовать это выражение к стандартному виду:
a * x + b или a * x * x + b * x + c,
где x - искомая переменная, a, b, c - некоторые выражения, содержащие известные переменные.

Для приведения уравнения к стандартному виду необходимо использовать следующие алгоритмы:

  1. алгоритм извлечения искомой переменной из-под знака деления;
  2. алгоритм группирования множителей с одинаковыми степенями искомой переменной.
Например, выражение
1 + a/x + b + c * x * x.
Применение первого алгоритма даст:
x + a + b * x + c * x * x * x;
применение второго алгоритма даст:
c * x * x * x + (b + 1) * x + a.

Алгоритм извлечения искомой переменной из-под знака деления можно представить следующими шагами:

  1. Производится обход синтаксического дерева рассматриваемого выражения и ищется такой узел <D> для некоторого узла <Т>, перед которым стоит знак деления и в поддереве которого имеется лист, содержащий искомую переменную.
  2. Если такой имеется, то данный узел <D> со знаком "умножить" присоединяется ко всем остальным аддитивным составляющим, а знак деления и сам узел <D> из поддерева рассматриваемого узла <T> удаляется.
  3. Производятся эквивалентные преобразования, описанные выше.
  4. Процесс преобразования производится до тех пор, пока в выражении не будет ни одного подвыражения, содержащего искомую переменную под знаком деления.

Алгоритм группирования множителей с одинаковыми степенями искомой переменной следующий:

  1. Производится сортировка аддитивных составляющих синтаксического дерева по степени искомой переменной, т.е. формируются списки составляющих, содержащих квадрат искомой переменной, искомую переменную и не содержащих искомую переменную.
  2. После того, как списки сформированы, производится построение уравнения стандартного вида:
    • если список квадратов отсутствует, то получается линейное уравнение, если он есть, то формируется коэффициент, который, в общем случае, в скобках содержит все подвыражения, содержащие квадрат искомой переменной;
    • если список аддитивных составляющих, содержащих искомую переменную, не пуст, то формируется соответствующий коэффициент;
    • если список аддитивных составляющих, не содержащих переменных, не пуст, то также формируется соответствующий коэффициент.
  3. 3.Из полученных коэффициентов строится стандартный вид уравнения.
.: [предыдущая | оглавление | следующая] :.