17.3 Построение уравнения стандартого вида
Анализ варианта подстановок предназначен для определения наличия возможности
построения уравнения и включает в себя непосредственные подстановки. Вместо
переменных, записанных в узлах, производится подстановка соответствующих формул
и далее осуществляются эквивалентные преобразования полученного выражения.
Существует три варианта результата подстановок:
-
получено выражение, состоящее из одной искомой переменной;
-
в процессе подстановок произошло сокращение неизвестных переменных (т.е. все
переменные известны);
-
получено выражение, в котором есть искомая переменная, а остальные переменные
известны.
В первом случае решения нет, т.к. были использованы как прямые преобразования,
так и обратные. Например, V => S/t и далее S => V * t. Во втором случае явно
получено выражение для определения искомой переменной, т.е. найдено решение без
составления уравнения. Причем решение может быть получено ранее, чем
произведены все подставки в данном варианте. Это связано с тем, что в процессе
преобразования выражения неизвестные переменные могут быть сокращены. Только
при рассмотрении третьего варианта строится уравнение. Для построения уравнения
необходимо к полученному выражению добавить искомую переменную со знаком минус.
И далее преобразовать это выражение к стандартному виду:
a * x + b или a * x * x + b * x + c,
где x - искомая переменная, a, b, c - некоторые выражения, содержащие известные
переменные.
Для приведения уравнения к стандартному виду необходимо использовать следующие
алгоритмы:
-
алгоритм извлечения искомой переменной из-под знака деления;
-
алгоритм группирования множителей с одинаковыми степенями искомой переменной.
Например, выражение
1 + a/x + b + c * x * x.
Применение первого алгоритма даст:
x + a + b * x + c * x * x * x;
применение второго алгоритма даст:
c * x * x * x + (b + 1) * x + a.
Алгоритм извлечения искомой переменной из-под знака деления можно представить
следующими шагами:
-
Производится обход синтаксического дерева рассматриваемого выражения и ищется
такой узел <D> для некоторого узла <Т>, перед которым стоит знак
деления и в поддереве которого имеется лист, содержащий искомую переменную.
-
Если такой имеется, то данный узел <D> со знаком "умножить"
присоединяется ко всем остальным аддитивным составляющим, а знак деления и сам
узел <D> из поддерева рассматриваемого узла <T> удаляется.
-
Производятся эквивалентные преобразования, описанные выше.
-
Процесс преобразования производится до тех пор, пока в выражении не будет ни
одного подвыражения, содержащего искомую переменную под знаком деления.
Алгоритм группирования множителей с одинаковыми степенями искомой переменной
следующий:
-
Производится сортировка аддитивных составляющих синтаксического дерева по
степени искомой переменной, т.е. формируются списки составляющих, содержащих
квадрат искомой переменной, искомую переменную и не содержащих искомую
переменную.
-
После того, как списки сформированы, производится построение уравнения
стандартного вида:
-
если список квадратов отсутствует, то получается линейное уравнение, если он
есть, то формируется коэффициент, который, в общем случае, в скобках содержит
все подвыражения, содержащие квадрат искомой переменной;
-
если список аддитивных составляющих, содержащих искомую переменную, не пуст, то
формируется соответствующий коэффициент;
-
если список аддитивных составляющих, не содержащих переменных, не пуст, то
также формируется соответствующий коэффициент.
-
3.Из полученных коэффициентов строится стандартный вид уравнения.
|