Программирование и решение задач в пакете MathCAD

       

Уточнение корней нелинейного уравнения


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

Уточнение корней нелинейного уравнения
). Процедура уточнения завершается, если выполняется условие

Уточнение корней нелинейного уравнения
,                                                                  (8.1.7)

где

Уточнение корней нелинейного уравнения
 – заданная точность вычисления корня. Для уточнения корня используются специальные вычислительные методы [11] такие, как метод деления отрезка пополам, метод хорд, метод касательных (метод Ньютона) и многие другие.

 

Пример 8.1.3.

Используя метод деления отрезка пополам, уточнить корни уравнения (8.1.5). Реализовать метод в виде П-Ф.

Метод деления отрезка пополам заключается в делении длины «старого» интервала локализации пополам и принятии в качестве «нового» интервала локализации

Уточнение корней нелинейного уравнения
 такого интервала из двух полученных, у которого на концах функция
Уточнение корней нелинейного уравнения
имеет разные знаки, т.е.
Уточнение корней нелинейного уравнения
.

Описание П-Ф root_2 приведено на рис. 8.1.4. Здесь же показаны уточненные значения корней. Выполненная проверка показала высокую точность нахождения корней.

Уточнение корней нелинейного уравнения

                                              

Уточнение корней нелинейного уравнения

Уточнение корней нелинейного уравнения

Рис. 8.1.4. Реализация метода «деления отрезка пополам»

Заметим, что в теле П-Ф для организации итерационного цикла использовался оператор цикла for, что предотвращает «зацикливание» при неправильно заданных исходных данных. ¨

Функция root. В MathCAD для уточнения корней любого нелинейного уравнения (не обязательно только алгебраического) введена функция root, которая может иметь два или четыре аргумента, т.е.

Уточнение корней нелинейного уравнения
 или
Уточнение корней нелинейного уравнения
, где
Уточнение корней нелинейного уравнения
 – имя функции или арифметическое выражение, соответствующее решаемому нелинейному уравнению,
Уточнение корней нелинейного уравнения
 – скалярная переменная, относительно которой решается уравнение,
Уточнение корней нелинейного уравнения
 – границы интервала локализации корня.

Пример 8.1.4.

Используя функцию

Уточнение корней нелинейного уравнения
, найти все три корня уравнения (8.1.6), включая и два комплексных (см. пример 8.1.2). Фрагмент документа MathCAD, вычисляющий эти корни приведен на рис. 8.1.5.


Уточнение корней нелинейного уравнения

 
Рис. 8.1.5. Вычисление корней уравнения примера 8.1.2
Заметим, что для вычисления всех трех корней
использовался прием понижения порядка алгебраического уравнения, рассмотренный в п. 8.1.1. ¨
Функция root с двумя аргументами требует задания (до обращения к функции) переменной
Уточнение корней нелинейного уравнения
 начального значения корня из интервала локализации.
 Рекомендации по использованию функции root:
  • в функции root реализован метод секущих [11], поэтому требуется предварительная локализация корней решаемого нелинейного уравнения;

  • для изменения точности, с которой функция root ищет корень, нужно изменить значение системной переменной TOL. Если значение TOL увеличивается, функция root будет сходиться быстрее, но ответ будет менее точен. Если значение TOL уменьшается, то функция root будет сходиться медленнее, но ответ будет более точен. Чтобы изменить значение TOL в определенной точке документа MathCAD, используйте определение вида
    Уточнение корней нелинейного уравнения
    . Чтобы изменить значение TOL для всего рабочего документа, необходимо обратиться к пункту меню Математика команда Опции в появившемся диалоговом окне в закладке Встроенные переменные изменить значение системной переменной TOL (по умолчанию она равна 0.001);

  • если два корня расположены близко друг от друга, следует уменьшить TOL, чтобы различить их;

  • если функция f(x) имеет малый наклон около искомого корня, функция root(f(x), x) может сходиться к значению r, отстоящему от корня достаточно далеко. В таких случаях для нахождения более точного значения корня необходимо уменьшить значение TOL. Другой вариант заключается в замене уравнения f(x) = 0 на эквивалентное g(x) = 0, где

  • Уточнение корней нелинейного уравнения
    .
    Пример 8.1.5.
    Используя функцию root, вычислить изменения корня нелинейного уравнения
    Уточнение корней нелинейного уравнения
    при изменении коэффициента а от 1 до 10 с шагом 1.
    Фрагмент документа приведен на рис. 8.1.6. ¦
    Уточнение корней нелинейного уравнения

    Рис. 8.1.6. Вычисление корней уравнения в цикле
    Функция polyroots. Для вычисления всех корней алгебраического уравнения вида (8.1.2) порядка
    Уточнение корней нелинейного уравнения
    (не выше 5) рекомендуется использовать функцию polyroots. Обращение к этой функции имеет вид polyroots(v), где v – вектор, состоящий из n +1 проекций, равных коэффициентам алгебраического уравнения, т.е.
    Уточнение корней нелинейного уравнения
    . Эта функция не требует проведения процедуры локализации корней.


    Пример 8.1.6.
    Используя функцию polyroots, найти все три корня уравнения (8.1.6), включая и два комплексных (см. пример 8.1.2). Фрагмент документа MathCAD, вычисляющий эти корни приведен на рис. 8.1.7. ¦
    Задание 8.1.1. Используя функцию root, вычислить корень из указанного интервала локализации следующих нелинейных уравнений:
    • Уточнение корней нелинейного уравнения
      ;

    • Уточнение корней нелинейного уравнения
      . ?

    • Уточнение корней нелинейного уравнения

      Рис. 8.1.7. Вычисление корней уравнения
      с использованием функции polyroots
      Блок Given. При уточнении корня нелинейного уравнения можно использовать специальный вычислительный блок Given, имеющий следующую структуру:
      Уточнение корней нелинейного уравнения
                                                                 (8.1.8)
      Решаемое уравнение задается в виде равенства, в котором используется «жирный» знак равно, вводимый с палитры Логичес­кий. Ограничения содержат равенства или неравенства, которым должен удовлетворять искомый корень.
      Функция Find уточняет корень уравнения, вызов этой функции имеет вид Find(x), где x – переменная, по которой уточняется корень. Если корня уравнения на заданном интервале не существует, то следует вызвать функцию Minerr(x), которая возвращает приближенное значение корня.
      Для уточнения корней в функциях Find(x), Minerr(x) реализованы различные численные алгоритмы и пользователю предоставляется возможность либо задать один из реализованных алгоритмов (к которому он имеет «максимальное доверие»), либо предоставить право выбора алгоритма пакету MathCAD. Для этого необходимо щелкнуть правой кнопкой мыши на имени функции Find(x) и в появившемся контекстном меню (см. рис. 8.1.8) выбрать подходящий алгоритм. Пользователю, не «искушенному» в вычислительных методах рекомендуется предоставить выбор MathCAD, включив для этого команду Автовыбор. В контекстном меню можно увидеть выбранный алгоритм.

      Уточнение корней нелинейного уравнения

      Уточнение корней нелинейного уравнения

      Рис. 8.1.8. Задание алгоритма функции Find
      Аналогично можно задать алгоритм решения и для функции Minerr(x).
      Замечание 8.1.1. Использование численных методов в функциях Find(x), Minerr(x) требует перед блоком Given задать начальные значения переменным, по которым осуществляется поиск корней уравнения.


      Пример 8.1.7. Используя блок Given, вычислите корень уравнения примера 8.1.2 в интервале отделения
      Уточнение корней нелинейного уравнения
      . Фрагмент документа приведен на рис. 8.1.9. ¨
      Задание 8.1.2. Используя блок Given, вычислить корень из указанного интервала отделения следующих нелинейных уравнений и выполнить проверку найденных корней:
      • Уточнение корней нелинейного уравнения
        ;

      • Уточнение корней нелинейного уравнения
        ;

      • Уточнение корней нелинейного уравнения
        . ?





      • Уточнение корней нелинейного уравнения

        Рис. 8.1.9. Решение уравнения с использованием Given

        Содержание раздела