Решение уравнений через root маткад

Решение уравнений через root маткад

Глава 4. Решение уравнений

4.1 Функция root

Функция root используется для решения одного уравнения с одним неизвестным. Перед началом решения желательно построить график функции, чтобы проверить, есть ли корни, то есть пересекает ли график ось абсцисс. Начальное приближение лучше всего выбрать по графику поближе к корню, так как итерационные методы весьма чувствительны к выбору начального приближения.

Обращение к функции осуществляется следующим образом:

root ( f ( x ), x ), где f ( x ) – выражение, равное нулю; x – аргумент, варьируя который, система ищет значение, обращающее в нуль ( рис. 4.1 ).

Уравнение

начальное приближение

решение

или

другие корни

Задан интервал поиска корней

Рис. 4. 1 Использование функции root

Функция f ( x ) и аргумент x должны быть скалярами, то есть результат вычисления функции – число, а не вектор или матрица. Функция root использует метод секущих. Корень уравнения – ближайшее к начальному приближению значение x , обращающее функцию f ( x ) в нуль. Если корней несколько, то для отыскания каждого корня необходимо задавать свое начальное приближение.

Mathcad позволяет вместо начального приближения задавать диапазон значений аргумента, в котором лежит значение искомого корня. В этом случае обращение к функции root должно иметь четыре параметра:

root ( f ( x ), x , а, b ),

где a и b – границы интервала, в котором лежит один корень уравнения. Внутри интервала не должно быть больше одного корня, так как Mathcad выводит на экран лишь один корень, лежащий внутри интервала.

Значение функции на границах интервала должно быть разного знака, иначе, возможно, корень не будет найден.

Если уравнение не имеет действительных корней, то есть на графике функция f ( x ) нигде не равна нулю, то для вывода комплексных корней надо ввести начальное приближение в комплексной форме (рис. 4.2) .

Если функция имеет мнимый корень,

то начальное приближение задается комплексным числом

— начальное приближение

Рис. 4. 2 Решение уравнения с комплексными корнями

Для ввода мнимой единицы надо ввести с клавиатуры 1 i или 1 j .

Если уравнение имеет несколько корней, то для их нахождения можно использовать разложение функции f ( x ) на простые множители:

где x 1, x 2 , , xn – корни уравнения. Начальное приближение можно задать только для первого корня. В качестве функции f ( x ) нужно взять

,

где ,

и т. д. (рис. 4.3)

у этой функции 3 корня

диапазон значений х для вывода графика

Рис. 4. 3 Определение трех корней уравнения

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

1) в стандартном меню Mathcad выберите команду Tools → Worksheet Options → Built – In Variables (Инструменты → Параметры документов → Встроенные переменные);

2) в открывшемся окне поменяйте значение Convergence Tolerance ( TOL ) (Погрешность сходимости).

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

Для повышения точности расчета корня можно заменить f ( x ) на

.

Корень можно найти и по графику, увеличив масштаб. Для этого необходимо:

1) выделить график, щелкнув левой кнопкой мыши внутри графика;

2)в главном меню Mathcad выбрать команду Format → Graph → Zoom (Формат→График→Масштаб);

3) при нажатии левой кнопки мыши обвести пунктирной линией область графика вблизи искомого корня, которую надо увеличить;

4) в открытом окне X – Y Zoom (Масштаб по осям X – Y ) нажать кнопку Zoom .

Прямо с графика можно передать в буфер обмена численное значение корня. Для этого выполните следующие действия:

1) Выделите график, щелкнув левой кнопкой мыши внутри графика,

2) в главном меню Mathcad выберите команду Format → Graph → Trace (Формат→График→Трассировка),

3) щелкните левой кнопкой мыши внутри графика – появится перекрестье осей,

4) двигая мышь при нажатой левой кнопке, установите перекрестье на пересечении графика с осью абсцисс. При этом численные значения координат перекрестья появляются в открытом окне X – Y Trace (Трассировка X и Y ).

5) правильно выбрав положение перекрестья, нажмите кнопки Copy X и Copy Y – численные значения будут помещены в буфер

6) вне поля графика запишите имя, которое хотите дать корню, и оператор присваивания :=. Нажмите кнопку Paste (Вставить) в стандартном меню Mathcad или в контекстном меню, открывающемся при нажатии правой кнопки мыши.

Рис. 4. 4 Определение корня уравнения по графику

В окне X – Y Trace есть пункт Track Data Points (Отмечать расчетные точки). Если установить этот флажок, при перемещении мыши пунктирное перекрестье на графике будет перемещаться скачками, отмечая расчетные значения функции. Если флажок снять, движение перекрестья становится плавным.

При работе с Mathcad постоянно пользуйтесь правой кнопкой мыши (в контекстном меню каждый раз появляются новые, наиболее нужные в данный момент функции). Щелкните правой кнопкой мыши на графике: в открывшемся контекстном меню есть пункты Zoom и Trace .

Решение уравнений через root маткад

Для решения одного уравнения с одним неизвестным используется функция root. Аргументами этой функции являются выражение и переменная, входящая в выражение. Ищется значение переменной, при котором выражение обращается в ноль. Функция возвращает значение переменной, которое обращает выражение в ноль.

root( f(z), z)Возвращает значение z, при котором выражение или функция f(z) обращается в 0. Оба аргумента этой функции должны быть скалярами. Функция возвращает скаляр.

Первый аргумент есть либо функция, определенная где-либо в рабочем документе, или выражение. Выражение должно возвращать скалярные значения.

Второй аргумент — имя переменной, которое используется в выражении. Это та переменная, варьируя которую Mathcad будет пытаться обратить выражение в ноль. Этой переменной перед использованием функции root необходимо присвоить числовое значение. Mathcad использует его как начальное приближение при поиске корня.

Рассмотрим пример, как найти a — решение уравнения e x = x 3 . Для этого выполните следующие шаги:

  • Определите начальное значение переменной x. Введите x:3. Выбор начального приближения влияет на корень, возвращаемый Mathcad (если выражение имеет несколько корней).

  • Определите выражение, которое должно быть обращено в ноль. Для этого перепишите уравнение e x = x 3 в виде x 3 — e x = 0. Левая часть этого выражения и является вторым аргументом функции root
  • Определите переменную a как корень уравнения. Для этого введите a:root(x^3[Space]-e^x[Space],x).

  • Напечатайте a=, чтобы увидеть значение корня.

При использовании функции root имейте в виду следующее:

  • Удостоверьтесь, что переменной присвоено начальное значение до начала использования функции root.
  • Для выражения с несколькими корнями, например x 2 — 1 = 0, начальное значение определяет корень, который будет найден Mathcad. На Рисунке 1 приведен пример, в котором функция root возвращает различные значения, каждое из которых зависит от начального приближения.
  • Mathcad позволяет находить как комплексные, так и вещественные корни. Для поиска комплексного корня следует взять в качестве начального приближения комплексное число.
  • Задача решения уравнения вида f(x) = g(x) эквивалентна задаче поиска корня выражения f(x) — g(x) =0. Для этого функция root может быть использована следующим образом:

Функция root предназначена для решения одного уравнения с одним неизвестным. Для решения систем уравнений используйте методику, описанную в следующем разделе “Системы уравнений”. Для символьного решения уравнений или нахождения точного численного решения уравнения в терминах элементарных функций выберите Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.

Рисунок 1: Использование графика и функции root для поиска корней уравнения.

Что делать, когда функция root не сходится

Mathcad в функции root использует для поиска корня метод секущей. Начальное значение, присвоенное переменной x, становится первым приближением к искомому корню. Когда значение выражения f(x) при очередном приближении становится меньше значения встроенной переменной TOL, корень считается найденным, и функция root возвращает результат.

Если после многих итераций Mathcad не может найти подходящего приближения, то появляется сообщение об ошибке “отсутствует сходимость”. Эта ошибка может быть вызвана следующими причинами:

  • Уравнение не имеет корней.
  • Корни уравнения расположены далеко от начального приближения.
  • Выражение имеет локальные максимумы или минимумы между начальным приближением и корнями.
  • Выражение имеет разрывы между начальным приближением и корнями.
  • Выражение имеет комплексный корень, но начальное приближение было вещественным (или наоборот).

Чтобы установить причину ошибки, исследуйте график f(x). Он поможет выяснить наличие корней уравнения f(x)=0 и, если они есть, то определить приблизительно их значения. Чем точнее выбрано начальное приближение корня, тем быстрее функция root будет сходиться к точному значению. roots;using plots to find

Некоторые советы по использованию функции root

В этом разделе приведены несколько советов по использованию функции root:

  • Для изменения точности, с которой функция root ищет корень, можно изменить значение встроенной переменной TOL. Если значение TOL увеличивается, функция root будет сходиться быстрее, но ответ будет менее точен. Если значение TOL уменьшается, функция root будет сходиться медленнее, но ответ будет более точен. Чтобы изменить значение TOL в определенной точке рабочего документа, используйте определение вида TOL := 0.01. Чтобы изменить значение TOL для всего рабочего документа, выберите из меню Математика команду Встроенные переменные и введите подходящее значение в поле TOL. Нажав “OK”, выберите из меню Математика команду Пересчитать всё, чтобы обновить все вычисления в рабочем документе с использованием нового значения переменной TOL.
  • Если уравнение имеет несколько корней, пробуйте использовать различные начальные приближения, чтобы найти их. Использование графика функции полезно для нахождения числа корней выражения, их расположения и определения подходящих начальных приближений. Рисунок 1 показывает пример. Если два корня расположены близко друг от друга, можно уменьшить TOL, чтобы различить их.
  • Если f(x) имеет малый наклон около искомого корня, функция может сходиться к значению r, отстоящему от корня достаточно далеко . В таких случаях для нахождения более точного значения корня необходимо уменьшить значение TOL. Другой вариант заключается в замене уравнения f(x)=0 на g(x)=0, где

  • Для выражения f(x) с известным корнем a нахождение дополнительных корней f(x) эквивалентно поиску корней уравнения h(x)=0, где h(x)=f(x)/(x-a). Подобный приём полезен для нахождения корней, расположенных близко друг к другу. Часто бывает проще искать корень выражения h(x), определенного выше, чем пробовать искать другой корень уравнения f(x)=0, выбирая различные начальные приближения.
  • Решение уравнений с параметром

    Предположим, что нужно решать уравнение многократно при изменении одного из параметров этого уравнения. Например, пусть требуется решить уравнение для нескольких различных значений параметра a. Самый простой способ состоит в определении функции

    Чтобы решить уравнение для конкретного значения параметра a, присвойте значение параметру a и начальное значение переменной x как аргументам этой функции. Затем найдите искомое значение корня, вводя выражение f(a,x)=.

    Рисунок 2 показывает пример того, как такая функция может использоваться для нахождения корней исследуемого уравнения при различных значениях параметра. Обратите внимание, что, хотя начальное значение x непосредственно входит в определение функции, нет необходимости определять его в другом месте рабочего документа.

    Рисунок 2: Определение функции пользователя с функцией root.

    Нахождение корней полинома

    Для нахождения корней выражения, имеющего вид

    лучше использовать функцию polyroots, нежели root. В отличие от функции root, функция polyroots не требует начального приближения. Кроме того, функция polyroots возвращает сразу все корни, как вещественные, так и комплексные. На Рисунках 3 и 4 приведены примеры использования функции polyroots.

    polyroots(v)Возвращает корни полинома степени . Коэффициенты полинома находятся в векторе v длины n+1. Возвращает вектор длины n, состоящий из корней полинома.

    Функция polyroots всегда возвращает значения корней полинома, найденные численно. Чтобы находить корни символьно, используйте команду Решить относительно переменной из меню Символика. См. Главу “Символьные вычисления”.

    Рисунок 3: Использование функции polyroots для решения задачи, изображенной на Рисунке 1.

    Рисунок 4: Использование функции polyroots для поиска корней полинома.

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter

    Решение уравнений через root маткад

    РЕШЕНИЕ УРАВНЕНИЙ И СИСТЕМ УРАВНЕНИЙ

    4 Решение уравнений и систем средствами Mathcad

    Система Mathcad обладает широкими возможностями численного решения уравнений и систем уравнений.

    Функция root, блоки Given…Find, Given…Minerr

    В ходе численного решения обычно выделяют два этапа:

    • отделение корней – определение интервала нахождения каждого корня или определение приблизительного значения корня. В системе Mathcad наиболее наглядным будет отделение корней уравнения графическим способом;
    • уточнение корней – нахождение численного значения корня с указанной точностью.

    Точность нахождения корня устанавливается с помощью системной переменной TOL (Convergence Tolerance – Допуск сходимости), которая по умолчанию равна 10 -3 . Чем меньше значение TOL, тем точнее, вообще говоря, находится корень уравнения. Однако оптимальным является TOL = 10 -5 . Переопределить значение TOL можно в окне математических свойств документа Math Options на вкладке Build-In Variables (Встроенные переменные) или присваиванием, например, TOL:=0.0001.

    Для решения одного уравнения с одной неизвестной предназначена встроенная функция root, которая в общем виде задается

    root(f(x), x, [a, b])

    и возвращает значение переменной x, при котором функция f(x) обращается в ноль. Аргументы функции root:

    • f(x) – функция левой части уравнения f(x) = 0;
    • x – переменная, относительно которой требуется решить уравнение;
    • a, b (необязательные) – действительные числа, такие что a -1 слева: A -1 Ax=A -1 b. Учитывая, что A -1 A, вектор-столбец решений системы можно искать в виде

    Этот прием используется в Mathcad так:

    1. задается матрица коэффициентов при неизвестных системы A;
    2. задается столбец свободных членов b;
    3. вводится формула для нахождения решения системы X:=A -1 b;
    4. выводится вектор решений системы X=.

    Кроме того, пакет Mathcad имеет встроенную функцию

    lsolve(A, b),

    возвращающую вектор-столбец решений системы линейных алгебраических уравнений. Аргументами функции lsolve являются матрица коэффициентов при неизвестных системы и столбец свободных членов. Порядок решения аналогичен рассмотренному, но вместо формулы X:=A -1 b используется X:=lsolve(A, b).

    Реализовать широко известный метод Гаусса решения систем линейных уравнений позволяет встроенная функция rref(M), возвращающая ступенчатый вид матрицы M. Если в качестве аргумента взять расширенную матрицу системы, то в результате применения rref получится матрица, на диагонали которой – единицы, а последний столбец представляет собой столбец решений системы.

    Решение системы линейных уравнений можно осуществить с помощью блоков Given…Find, Given…Minerr. При этом неизвестным системы задается произвольное начальное приближение, а проверка необязательна.

    Порядок выполнения лабораторной работы

    1. Загрузить Mathcad Start / All Programs / Mathsoft Apps / Mathcad (Пуск / Все программы / Mathsoft Apps / Mathcad).
    2. Сохранить в личной папке на диске z:\ новый документ с именем ФИО1, лучше использовать латинские буквы. Производить сохранение регулярно в процессе работы (Ctrl + S).
    3. Вставить текстовую область Insert / Text Region (Вставка / Область текста) и ввести в поле документа текст:

    Лабораторная работа № 4
    Решение уравнений и систем в Mathcad.

    1. В новой текстовой области ввести фамилию, имя, отчество, учебный шифр и номер варианта.
    2. Выполнить задание 1.

    Задание 1. Решить уравнение .

    Решение.

    Решение данного уравнения будем проводить в два этапа: отделение корней уравнения графически, уточнение корней уравнения.

    Определим функцию f(x), равную левой части данного уравнения, когда правая равна нулю:

    Зададим ранжированную переменную x на некотором диапазоне с мелким шагом, например:

    Вставим в документ графическую область. Для этого выберем дважды пиктограмму с изображением графика сначала на панели Math (Математика), затем на палитре графиков Graph или выполним из главного меню последовательность команд Insert / Graph / X-Y Plot (Вставка / График / X-Y Зависимость).

    Снизу по оси абсцисс наберем x, а сбоку по оси ординат введем f(x).

    Для появления графика щелкнем левой клавишей мыши вне графической области.

    Отформатируем график функции f(x). Для этого щелкнем правой клавишей мыши в области графика и выберем в контекстном меню команду Format (Формат). Установим пересечение осей графика (CrossedТолько оси), добавим вспомогательные линии по координатным осям (Grid LinesВспомогательные линии). Отменим при этом автосетку (AutogridАвтосетка) и установим количество линий сетки, равное 10.

    Для подтверждения внесенных изменений нажмем последовательно кнопки Apply (Применить) и ОК.

    После указанных преобразований график функции f(x) будет выглядеть следующим образом:

    Из графика функции f(x) видно, что уравнение имеет три корня, которые приблизительно равны: x1 ≈ -1; x2 ≈ 1; x3 ≈ 2,5.

    Этап отделения корней завершен.

    Уточним теперь корни уравнения с помощью функции root.

    Присвоим начальное приближение переменной x и укажем точность поиска корня:

    Уточним заданное приближение к значению корня с помощью функции root:

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

    Начальное приближение можно не задавать при использовании в качестве аргументов root границ отрезка нахождения корня, например, второй корень можно уточнить:

    Задание 2. Решить уравнение .

    Решение.

    Напечатаем левую часть уравнения, не приравнивая выражение к 0, и выделим синим курсором переменную x:

    Выберем из главного меню Symbolics / Polynomial Coefficients (Символика / Коэффициенты полинома). Появившийся вектор коэффициентов полинома выделим целиком синим курсором и вырежем в буфер обмена, используя кнопку Вырезать на панели инструментов Formatting (Форматирование) или комбинацию клавиш Ctrl + X.

    Напечатаем v := и вставим вектор из буфера обмена, используя кнопку Вставить на панели инструментов или комбинацию клавиш Ctrl + V.

    Для получения результата напечатаем polyroots(v) =:

    Задание 3. Решить систему линейных уравнений Сделать проверку.

    Решение.

    1-й способ. Использование блока Given … Find.

    Зададим всем неизвестным, входящим в систему уравнений, произвольные начальные приближения, например:

    Напечатаем слово Given. Установим визир ниже и наберем уравнения системы, каждое в своем блоке. Используем при этом логический знак равенства (Ctrl + =).

    После ввода уравнений системы напечатаем X := Find(x, y, z) и получим решение системы в виде вектора, состоящего из трех элементов:

    Сделаем проверку, подставив полученные значения неизвестных в уравнения системы, например, следующим образом

    После набора знака «=» в каждой строке должен быть получен результат, равный или приблизительно равный правой части системы. В данном примере системная переменная ORIGIN = 1.

    2-й способ. Использование блока Given…Minerr.

    Порядок решения системы этим способом аналогичен порядку использования блока Given … Find и представлен ниже вместе с проверкой:

    3-й способ. Решение системы линейных уравнений матричным способом.

    Создадим матрицу А, состоящую из коэффициентов при неизвестных системы. Для этого напечатаем A := , вызовем окно создания массивов (Ctrl + M). Число строк (Rows) и столбцов (Columns) матрицы данной системы равно 3. Заполним пустые места шаблона матрицы коэффициентами при неизвестных системы, как показано ниже:

    Зададим вектор b свободных членов системы. Сначала напечатаем b :=, затем вставим шаблон матрицы(Ctrl + M), где количество строк (Rows) равно 3, а количество столбцов (Columns) равно 1. Заполним его:

    Решим систему матричным способом по формуле

    Решим систему с помощью функции lsolve:

    Для проверки правильности решения системы, полученного матричным способом, достаточно вычислить произведение A·X, которое должно совпасть с вектором-столбцом свободных членов b:


    источники:

    http://old.exponenta.ru/soft/MathCAD/usersguide/chapter15/15_1.asp

    http://zf.bsut.by/it/fbo/zc/lab2_mc.htm