Решить уравнение с точностью маткад

Решить уравнение с точностью маткад

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

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:

Решить уравнение с точностью маткад

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

Аналогичные действия при решении уравнений в Mathcad можно выполнить, используя меню “Символика”. Для этого необходимо записать вычисляемое выражение. Затем выделить переменную, относительно которой решается уравнение, войти в меню Символика, Переменная, Разрешить. Например:

В случае, если необходимо упростить полученный результат, используется знак равенства [=]. Например:

При решении некоторых уравнений, результат включает большое количество символов. Mathcad сохраняет его в буфере, а на дисплей выводитcя сообщение: “This array has more elements than can be displayed at one time. Try using the “submatrix” function” – “Этот массив содержит больше элементов, чем может быть отображено одновременно. Попытайтесь использовать функцию “submatrix””. В этом случае рекомендуется использовать численное решение. Или, в случае необходимости, символьное решение может быть выведено и отображено на дисплее.

Символьное решение может быть получено с использованием блока given … find. В этом случае при записи уравнения для связи его левой и правой части использует символ логического равенства “=” с панели инструментов Boolean, например:

Аналогичным способом решаются системы уравнений в символьном виде. Ниже приводятся примеры решения систем уравнений в символьном виде различными способами. При использовании оператора символьного решения solve в сочетании со знаком символьного равенства система уравнений должна быть задана в виде вектора, который вводится вместо левого маркера оператора solve, а перечень переменных, относительно которых решается система, вместо правого маркера. Например:

Пример использования блока given…find для решения системы уравнений:

Решить уравнение с точностью маткад

Электронный курс по MathCAD

Экспоненциальные и логарифмические уравнения.

Определение: Уравнение, в котором независимая переменная входит в аргумент хотя бы одной экспоненциальной (логарифмической) функции, называется экспоненциальным (логарифмическим) уравнением.

Способ решения с помощью Mathcad такой же, как и для других типов уравнений.

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

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

Значительно больше сложностей возникает при решении логарифмических уравнений. Область определения этих уравнений, если рассматривать их во множестве действительных чисел, как правило, не совпадает с действительной числовой прямой. MathCAD рассматривает логарифмические уравнения в комплексной области, т.е. не учитывая область определения.

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

Насколько полезным может быть предварительное нахождение области определения, показывает следующий пример. Область определения пустое множество, следовательно,множество решений L=<>.

Тригонометрические уравнения.

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

Для тангенса (и котангенса) этого главного значения достаточно посредством периодического продолжения atan(x)+k p , где k — целое представить все решения. При решении уравнений с тангенсами и котангенсами возникает также вполне разрешимая проблема, связанная с тем, что данные функции определены не во всех точках числовой прямой.

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

p ).

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

Данный пример демонстрирует пределы возможности MathCAD. Решение в лоб не дает никаких результатов.

Неравенства.

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

Неравенства, как и уравнения, можно решать либо с использованием символьного знака равенства, либо, отметив переменную следм курсора, посредством выполнения команды Solve (Вычислить) подменю Variable (Переменные) меню Symbolics (Символы). В разных неравенствах могут быть использованы различные знаки неравенств.

Знаки «больше» и «меньше» могут вводиться непосредственно с клавиатуры. Все остальные знаки можно вводить при помощи панели Evaluation (Вычисления), либо сочетанием клавиш.

Линейные неравенства и неравенства с дробно-рациональными функциями не составляют сложности для MathCAD.

Неравенства с параметрами удобно анализировать с использованием знака символьного равенства, если значения параметра ограничены некоторыми условиями.

При решении неравенств, содержащих трансцендентные функции,возможности MathCAD ограничены.

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

Системы линейных уравнений.

Для численного решения линейных систем уравнений в MathCAD имеется специальная функция:

lsolv(A,B) Она решает систему линейных алгебраических уравнений вида А x X =B, выдавая решение — вектор X.
А — матрица коэффициентов размерности nxn;
В — вектор свободных членов размерности n ;
X — вектор неизвестных пока решений.

Эквивалентной для MathCAD формой представления систем линейных уравнений является матричная форма. Представленные таким образом системы можно решать как символьно, так и численно.

Хорошей альтернативой решению систем в матричной форме является так называемый solve block (Блок решения). Он удобен тем, что при его использовании уравнения записываются не в матричной, а в обычной форме, а также тем, что позволяет решать нелинейные уравнения и вводить ограничительные условия для определяемого решения. Блок решения применяется как для нахождения численного решения, так и для отыскания решеня в символьном виде.

Синтаксис Блока решения:

Последовательность действий при численном решении:

  • Задаем начальные (стартовые) значения для искомых переменных.
  • Заключаем уравнения в блок решения, начинающийся ключевым словом Given и заканчивающийся ключевым словом Find(v1,v2. vn).
  • Если после слова Find(v1,v2. vn) ввести знак равенства [=], MathACD выдаст численное решение.

При символьном решении не надо вводить начальные значения, а после ключевого слова Find(v1,v2. vn) вместо знака равенства следует ввести символьный знак равенства (при помощи комбинации [Ctrl+.] или соответствующей пиктограммы панели Evaluation).

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

Нелинейные уравнения и системы уравнений.

Многие уравнения, например трансцендентные, и системы из них не имеют аналитических решений. Однако они могут решаться численными методами с заданной погрешностью (не более значения, заданного системной переменной (TOL) . Для простейших уравнений вида F(x)=0 решение находится с помощью функции

Эта функция возвращает значение переменной с указанным уровнем точности, при котором выражение дает 0.

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

Как известно, кубическое уравнение обязательно имеет хотя бы один кубический корень х1. Он найден вначале функцией root. Два других корня могут оказаться и комплексными. Функция root может отыскивать и такие корни. Для поиска второго корня, х2, первый исключается делением F(x) на (х-х1). Соответственно для поиска третьего корня, хЗ, F(X) делится еще и на (х-х2).

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

Функция поиска корней многочлена polyroots

Для поиска корней обычного полинома р(х) степени п MathCAD содержит очень удобную функцию:

Она возвращает вектор корней многочлена (полинома) степени п, коэффициенты которого находятся в векторе V, имеющем длину равную п+1.

Заметим, что корни полинома могут быть как вещественными, так и комплексными числами. Не рекомендуется пользоваться этой функцией, если степень полинома выше пятой-шестой, так как тогда трудно получить малую погрешность вычисления корней.

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

Given
Уравнения
Ограничительные условия
Выражения с функциями Find и Minerr

В блоке используется одна из следующих двух функций:

Find(vl, v2, . vn) — возвращает значение одной или ряда переменных для точного решения;

Minerr(vl, v2, . vn) — возвращает значение одной или ряда переменных для приближенного решения.

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

При использовании функции Minerr для решения систем нелинейных уравнений надо проявлять известную осторожность и обязательно предусматривать проверку решений. Нередки случаи, когда решения могут оказаться ошибочными, чаще всего из-за того, что из нескольких корней система предлагает нереальный (или не представляющий интереса) корень. Полезно как можно точнее указывать начальные приближения к решению.


источники:

http://allmathcad.com/ru/reshenie-uravnenij-i-sistem-uravnenij.html

http://msk.edu.ua/ivk/Informatika/Uch_posobiya/MathCad/detc/l5_1.htm