Технология решения нелинейных уравнений средствами MathCad
В математическом пакете MathCad имеются как программные средства для реализации алгоритмов уточнения корней уравнений, приведенных в п.6.2.2, так и встроенные функции для численного и аналитического вычисления корней уравнений.
Рассмотрим примеры , иллюстрирующие средства MathCad.
Пример 6.2.4-1. Отделить корни уравнения x3- cos(x)+1=0 графическим методом.
Проведем анализ функции ![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-2. Отделить корень уравнения f(x)=1–3x+cos(x)=0 аналитически.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-3. Выполнить «ручным расчетом» три итерации нахождения корня уравнения f(x)= 1 – 3х + cos(x) = 0 методом половинного деления.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-4. Уточнить корень уравнения f(x)=1 – 3x + cos(x)=0 методом итерации на отрезке [0;1].
Приведем уравнение 1 – 3х + cos(x) = 0к виду x = (cos(x) + 1) / 3и проведем исследование:
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-5. Привести уравнение x2–3∙x+3.25–5∙cos(x)=0 к виду, удобному для итерации.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-6. Выполнить «ручным расчетом» три итерации, решая уравнение f(x)=1 – 3x + cos(x) = 0 методом Ньютона.
В нашем случае
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
ВMathcad имеется ряд встроенных средств для поиска корней нелинейных уравнений. Функция
root(f(var1, var2, ...),var1, [a, b])
имеет два необязательных аргумента a и b, которые определяют границы интервала, на котором следует искать корень. На концах интервала [a;b] функция f должна менять знак (f(a)f(b)<0). Задавать начальное приближение для корня не нужно. Функция root использует алгоритм Риддера (в основу которого положен метод хорд) и Брента. Метод Брентасоединяет быстроту метода Риддера и гарантированную сходимость метода деления отрезка пополам.
Пример 6.2.4-7. Определить корни уравнения , используя расширенный поиск.
Для оценки местоположения корней построим график этой функции
![]() ![]() ![]() ![]() ![]() |
Пример 6.2.4-8. Отделить корень уравнения 1–3x+Cos(x)=0, а затем с помощью встроенной функции root( ) найти его значение с точностью TOL = 0.001.
Значение переменная TOL принимает по умолчанию. Если требуется изменить точность вычислений, то переменную TOL следует переопределить, например, следующим образом TOL:=0.00001. В данном примере, поскольку параметры a и b не заданы, то функция root возвращает первый вычисленный корень.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Если уравнение имеет несколько корней, то для их нахождения можно использовать разложение функции f(x) на простые множители f(x)=(x-x1)(x-x2) …(x-xn), где x1, x2, …, xn - корни уравнения. Начальное приближение можно задать только для первого корня, а в качестве функции взять, например,
Если уравнение не имеет действительных корней, то есть на графике функция f(x) нигде не равна нулю, то для вывода комплексных корней надо ввести начальное значение приближения к корню в комплексной форме, где для вывода мнимой части использовать символы 1i и 1j.
Пример 6.2.4-9. Найти решения нелинейного уравнения , имеющего несколько корней, часть из которых мнимые.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Дата добавления: 2021-05-28; просмотров: 468;