Mathcad root точность

Mathcad root точность Техника
  • ��������� ������ ����������� ��������� ���������� ������� ����� ��� ����������� ���������������� �������� �����. � ������� Mathcad �������� ��������� ����� ��������� ������ ��������� ����������� ��������;
  • ��������� ������ ���������� ���������� �������� ����� � ��������� ���������.
  • f(x) � ������� ����� ����� ��������� f(x) = 0;
  • x � ����������, ������������ ������� ��������� ������ ���������;
  • a, b (��������������) � �������������� �����, ����� ��� a < b, ������ �� ��������� [a, b] ��������� ������ ���� ������.
  1. ���� �����������, �������� � �������, �������� ��������� �����������.
  2. ��� ������������� ������������� ��������� �������� ��������� ���������� TOL � CTOL (Constraint Tolerance � ������ �����������).
  3. ���������� �������� ����� Given, ������� ��������� Mathcad, ��� ����� ������� ������� ���������.
  4. �������� ��������� � ����������� �� ����� ������� � ���� ���������� (���� ��� �������) � ����� �������, ������ � ��������� ���������� �����, ������ ��� ������ ������������ ��������� ��������� ������� Boolean (����������). ����������� ������������� ������������ ���������� ���� a ≤ x ≤ b.
  5. ����������� ������� Find ��� Minerr � ������� ������-������ ���������. � �������� ���������� ����� ������� ������������� ����� �������� � ������� ���������� � ��� �������, � ������� ������ ���� ����������� � ������ ��������������� �� �����.
  6. � ������ ������������� ������� Minerr ����������� ��������.
  • ������������� ����������;
  • ���������, ���������� ���� ≠;
  • ��������� (:=) ��� ���������� (Ξ — ������������ �����) ����������� ���������� � �������, �� ����������� ���������, � ������ �������� ������ ������� Find ��� Minerr;
  • ������ ���� �������. ������ ���� ������ ��������� ������ ���� ����� Given � ���� �������� �������.

Mathcad root точность

  1. ������ �������;
  2. �������� ���������� ����� ����������� ��������;
  3. ������� ������ ������������� ��������, �������� ������������������ ������ �������� ���� Symbolics / Polynomial Coefficients (��������� / ������������ ��������);
  4. �������� ������ ������������� �������� � ����� ������;
  5. ������ ���������� v � ��������� �� �������� ������� ������������� ��������, ������� ��� ��������������� �� ������ ������;
  6. ��������� ������� polyroots(v) � �����-������ ���������, ��������, X:=polyroots(v);
  7. �������� ������ ������ ��������: X =.

Mathcad root точность

  1. �������� ������� ������������� ��� ����������� ������� A;
  2. �������� ������� ��������� ������ b;
  3. �������� ������� ��� ���������� ������� ������� X:=A-1b;
  4. ��������� ������ ������� ������� X=.
  1. ��������� Mathcad Start / All Programs / Mathsoft Apps / Mathcad (���� / ��� ��������� / Mathsoft Apps / Mathcad).
  2. ��������� � ������ ����� �� ����� z:\ ����� �������� � ������ ���1, ����� ������������ ��������� �����. ����������� ���������� ��������� � �������� ������ (Ctrl + S).
  3. �������� ��������� ������� Insert / Text Region (������� / ������� ������) � ������ � ���� ��������� �����:
  1. � ����� ��������� ������� ������ �������, ���, ��������, ������� ���� � ����� ��������.
  2. ��������� ������� 1.

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

  1. ��������� ������� 2.

Mathcad root точность

Mathcad root точность

  1. ��������� ������� 3.

x:=0   y:=0   z:=0

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

Mathcad root точность

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

Цель работы: Получить навыки решения алгебраических уравнений
средствами системы .

Справочный материал и примеры

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

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

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

корней − нахождение численного значения корня с
указанной точностью.

Точность
нахождения корня устанавливается с помощью системной переменной (
− Допуск сходимости), которая по умолчанию равна 10-3. Чем
меньше значение ,
тем точнее, вообще говоря, находится корень уравнения. Однако оптимальным
является  = 10-5.
Переопределить значение
можно в окне математических свойств документа на вкладке (Встроенные
переменные) или присваиванием,
например,

Mathcad root точность

.

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

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

) – функция
левой части уравнения
  


переменная, относительно которой требуется решить уравнение;

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

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

приближенное решение одного уравнения. При использовании iner необходимо
производить дополнительную проверку достоверности результатов решения.

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

При
необходимости присваиваются требуемые значения системным переменным и ( − Допуск ограничения).

Печатается
ключевое слово , которое указывает Mathcad,
что далее следует система уравнений.

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

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

В
случае использования функции выполняется
проверка.

Внутри блока решения недопустимы следующие операции и
выражения:

выражения, содержащие знак ≠;

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

другой блок решения. Каждый блок должен содержать
только одно слово Given и одну
решающую функцию.

Mathcad root точность

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

Пример к заданию 1

Пример 1. Решить
уравнение

Mathcad root точность

.

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

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

Mathcad root точность

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

Mathcad root точность

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

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

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

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

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

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

Mathcad root точность

Из графика функции ) видно, что уравнение

Mathcad root точность

 имеет три корня, которые
приблизительно равны: 1  -1; 2  1; 3  2,5.

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

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

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

Mathcad root точность

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

Mathcad root точность

Mathcad root точность

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

Mathcad root точность

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

Mathcad root точность

2-й способ.
Присвоим начальное приближение переменой для
уточнения третьего корня:

Mathcad root точность

Напечатаем служебное слово . Ниже
наберем () = 0,
используя логический знак равенства с панели (Логические) − комбинация клавиш + =. Еще ниже
напечатаем выражение 3 =() и вывод значения третьего корня 3 =.

Mathcad root точность

Mathcad root точность

ля
уточнения корня в данном примере установлена точность 0,0001. Поэтому
целесообразно изменить формат вывода результатов (4 знака после десятичного
разделителя) в окне форматирования результатов на вкладке .

Решение полиномиальных уравнений. Функция

Для решения полиномиальных уравнений вида

Mathcad root точность

или нахождения всех корней полинома степени n, используют функцию

вектор-столбец длины n, состоящий из корней полинома, как
действительных, так и комплексных. Аргументом функции
является вектор v длины n + 1 < 100,
содержащий коэффициенты полинома.

Решить полиномиальное уравнение можно следующим образом:

выделить
переменную синим управляющим курсором;

создать
вектор коэффициентов полинома, выполнив последовательность команд главного меню
/ (Символика /
Коэффициенты полинома);

вырезать
вектор коэффициентов полинома в буфер обмена;

задать
переменную и присвоить ей значение вектора
коэффициентов полинома, вставив его непосредственно из буфера обмена;

применить
функцию () в
каком-нибудь выражении, например

получить
вектор корней полинома: =.

Доступ к каждому отдельному корню − элементу вектора − осуществляется с помощью индекса, например, =.

Пример к заданию 2

Пример 2. Решить
уравнение

Mathcad root точность

.

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

Mathcad root точность

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

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

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

Mathcad root точность

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

Загрузить

Сохранить
в личной папке на диске :\ в папке \4 новый документ с именем ФИО_4,
лучше использовать латинские буквы. Производить сохранение регулярно в процессе
работы (+).

Вставить
текстовую область и ввести в поле документа текст:

Лабораторная работа №
4

Решение уравнений в
Math.

В
новой текстовой области ввести фамилию, имя, отчество и номер варианта.

Таблица 1 −

Решить полиномиальное уравнение (таблица
2).

Таблица 2 −

<o

Как
найти начальное приближение корней уравнений?

Какие
функции для решения одного уравнения известны в Mathcad? В чем их отличие?

Как
системная переменная TOL влияет на решение уравнения?

Что
такое вычислительный блок и какова его структура?

Какой
знак равенства используется в блоке решения? Какой комбинацией клавиш вставляется
в документ?

Какие
выражения недопустимы внутри блока решения уравнения?

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

Цель работы: Получить навыки решения систем линейных и
нелинейных уравнений средствами системы .

Справочный материал и примеры

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

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

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

приближенное решение системы уравнений (число уравнений должно быть
равно числу неизвестных). При использовании iner необходимо производить дополнительную проверку
достоверности результатов решения системы.

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

При
необходимости присваиваются требуемые значения системным переменным и ( − Допуск ограничения).

Печатается
ключевое слово , которое указывает Mathcad,
что далее следует система уравнений.

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

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

В
случае использования функции выполняется
проверка.

Внутри блока решения недопустимы следующие операции и
выражения:

выражения, содержащие знак ≠;

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

другой блок решения. Каждый блок должен содержать
только одно слово Given и одну
решающую функцию.

Mathcad root точность

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

Пример к заданию 1

Пример 1. Решить
систему уравнений

Mathcad root точность

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

Mathcad root точность

Вставим графическую область. Аргументы по оси абсцисс и
ординат введем через запятую. После
форматирования график выглядит так:

Mathcad root точность

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

Mathcad root точность

Напечатаем ключевое слово ,
затем уравнения системы, каждое в отдельном блоке с использованием логического
знака равенства (+ =).
Решение уточним с помощью функции :

Mathcad root точность

Так как находит
приближенное решение системы, то необходимо сделать проверку. Для этого зададим
значение системной переменной :=1.
Первый элемент вектора − это значение переменной , а второй − значение переменной . Подставим их в левую часть системы и вычислим, чему равна правая,
используя обычный знак «=» вывода результата:

Mathcad root точность

Полученные значения совпадают
заданными. Значит, система решена правильно.

Решение систем линейных уравнений

Рассмотрим систему линейных алгебраических уравнений:

Mathcad root точность

В матричном виде ее можно записать  =, где

Как известно, система линейных алгебраических уравнений
имеет решение, если ее определитель отличен от 0:

Mathcad root точность

.

Умножим обе части матричного уравнения = на обратную матрицу коэффициентов при неизвестных
системы -1 слева:

Mathcad root точность

. Учитывая, что

Mathcad root точность

, вектор-столбец решений системы можно искать в виде

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

задается
матрица коэффициентов при неизвестных системы ;

задается
столбец свободных членов ;

вводится
формула для нахождения решения системы

Mathcad root точность

;

выводится
вектор решений системы

Mathcad root точность

.

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

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

Mathcad root точность

 используется

Mathcad root точность

.

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

Пример к заданию 2

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

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

Mathcad root точность

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

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

Mathcad root точность

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

Mathcad root точность

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

Mathcad root точность

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

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

Mathcad root точность

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

Mathcad root точность

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

Mathcad root точность

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

Mathcad root точность

Решение системы с помощью функции можно
представить так:

Mathcad root точность

В последнем случае матрица ,
полученная путем объединения матрицы при неизвестных системы и столбца
свободных членов, является расширенной матрицей системы.

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

Mathcad root точность

, которое должно совпасть с вектором-столбцом свободных
членов :

Mathcad root точность

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

Загрузить

Сохранить
в личной папке на диске :\ в папке \5 новый документ с именем ФИО_5,
лучше использовать латинские буквы. Производить сохранение регулярно в процессе
работы (+).

Вставить
текстовую область и ввести в поле документа текст:

Лабораторная работа №
5

Решение систем
уравнений в Math.

В
новой текстовой области ввести фамилию, имя, отчество и номер варианта.

Таблица 1 − Нелинейные системы уравнений

Таблица 2 − Системы линейных уравнений

Контрольные вопросы

Назовите
функции для решения систем уравнений в Mathcad и особенности их применения.
Дайте их сравнительную характеристику.

Что
такое вычислительный блок и какова его структура? Какой знак равенства
используется в блоке решения? Какой комбинацией клавиш вставляется в документ?

Какие
выражения недопустимы внутри блока решения уравнения?

Какие
способы решения систем линейных алгебраических уравнений реализуются в Mathcad?

Назовите
способы решения матричных уравнений.

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

Цель лекции. Показать технику численного решения нелинейных уравнений с использованием сервисов MathCAD. Показать различные методы аналитического решения систем линейных уравнений.

4.1. Численное решение нелинейных уравнений

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

Использование функции root()

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

Функция вычисляет значение переменной, при котором F(x, у, ..)=0. Если уравнение имеет несколько корней, функцию надо вызывать соответствующее число раз. Вычисления реализуются итерационным методом. Данный метод заключается в постепенном приближении к искомому корню с некоторой точностью от начального значения переменной. Точность вычислений задаётся системной переменной , определённой в меню Tools/ Worksheet Options.. По умолчанию равной 0.001.

Пример 4.1
  • Зададим функцию f(y)=5y^2\ln{(y+4)}-3\ln{(3y+2)}
  • Найдем начальные значения корней. Для этого построим график функции. Подберем масштаб для наилучшего визуального наблюдения точек пересечения графика с осью OX.
  • Точки пересечения графика с осью OX лежат в интервалах (-1; 0) и (0; 1)
  • Определили начальные приближения корней. Используем функцию
  • Можно провести проверку,

f(y):=5y^2\ln{(y+4)}-3\ln{(3y+2)}

y:=-1

y1:=root(f(y),y)

y1:=-0.274

y:=1

y1:=root(f(y),y)

y1:=0.746

Листинг решения примера 4.1

Рис.
4.1.
Листинг решения примера 4.1

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

Пример 4.2

Решить уравнение F1(z,y)=z^3-9z^2+20z+yz+2y^3-15y=0 для y=2.

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

  • Задаем уравнение F1().
  • Строим график.
  • Всегда существует вероятность «просмотреть» корень, расположенный между узлами сканирования. Начальное значение корня z0 вводим как табулированную переменную в визуальной области корней, определенной по графику.
  • Строим функцию U(z0) как решение через root() — значение корня уравнения F1(z0,y)=0. То есть определяется разный корень в зависимости от начального значения z0.

y:=2

F1(z,y):=z^3-9z^2+20z+yz+2y^3-15y

Начальное значение корня :

z0:=-2,0..8

u(z0):=root(F1(z0,y),z0)

u(z0):=\begin{array}{|c|ccccc|}\hline 1 \\ \hline 1 \\ \hline 2.5858 \\ \hline 1 \\ \hline 5.4142  \\ \hline 5.4142\\ \hline \end{array}

F1(1,y):=0

F1(2.5858,y)=-6.0831 \cdot 10^{-5}

F1(5.4142,y)=-1.6933 \cdot 10^{-4}

 Листинг решения примера 4.2

Рис.
4.2.
Листинг решения примера 4.2

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

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

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

Пример 4.3

Решить уравнение x^5-2x^4-3x^3-x^2-4x=-21.

Осуществляется решение уравнения при помощи функции polyroots() (Рис.4.3).

  • Задаем вектор, элементы которого – коэффициенты полинома, начиная со свободного члена.
  • Используем функцию polyroots().
  • Решение представляется в виде матрицы, включающей все корни, в том числе и комплексные.

f(x):=(x^5-2x^4-3x^3-x^2-4x+21)

f(x)\large{=}0

V:=\begin{array}{|c|ccccc|}\hline 21 \\ \hline -4 \\ \hline -1 \\ \hline -3 \\ \hline -2  \\ \hline 1\\ \hline \end{array}

x:=polyroots(V)

x:=\begin{array}{|c|ccccc|}\hline -1.835 \\ \hline -0.334+1.557i \\ \hline -0.334-1.557i \\ \hline 1.503 \\ \hline 3 \\ \hline \end{array}

f(x):=\begin{array}{|c|ccccc|}\hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10}-1.421i \cdot 10^{-14} \\ \hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10} \\ \hline \end{array}

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

Цель лекции. Показать технику численного решения нелинейных уравнений с использованием сервисов MathCAD. Показать различные методы аналитического решения систем линейных уравнений.

4.1. Численное решение нелинейных уравнений

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

Использование функции root()

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

Функция вычисляет значение переменной, при котором F(x, у, ..)=0. Если уравнение имеет несколько корней, функцию надо вызывать соответствующее число раз. Вычисления реализуются итерационным методом. Данный метод заключается в постепенном приближении к искомому корню с некоторой точностью от начального значения переменной. Точность вычислений задаётся системной переменной , определённой в меню Tools/ Worksheet Options.. По умолчанию равной 0.001.

Пример 4.1
  • Зададим функцию f(y)=5y^2\ln{(y+4)}-3\ln{(3y+2)}
  • Найдем начальные значения корней. Для этого построим график функции. Подберем масштаб для наилучшего визуального наблюдения точек пересечения графика с осью OX.
  • Точки пересечения графика с осью OX лежат в интервалах (-1; 0) и (0; 1)
  • Определили начальные приближения корней. Используем функцию
  • Можно провести проверку,

f(y):=5y^2\ln{(y+4)}-3\ln{(3y+2)}

y:=-1

y1:=root(f(y),y)

y1:=-0.274

y:=1

y1:=root(f(y),y)

y1:=0.746

Листинг решения примера 4.1

Рис.
4.1.
Листинг решения примера 4.1

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

Пример 4.2

Решить уравнение F1(z,y)=z^3-9z^2+20z+yz+2y^3-15y=0 для y=2.

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

  • Задаем уравнение F1().
  • Строим график.
  • Всегда существует вероятность «просмотреть» корень, расположенный между узлами сканирования. Начальное значение корня z0 вводим как табулированную переменную в визуальной области корней, определенной по графику.
  • Строим функцию U(z0) как решение через root() — значение корня уравнения F1(z0,y)=0. То есть определяется разный корень в зависимости от начального значения z0.

y:=2

F1(z,y):=z^3-9z^2+20z+yz+2y^3-15y

Начальное значение корня :

z0:=-2,0..8

u(z0):=root(F1(z0,y),z0)

u(z0):=\begin{array}{|c|ccccc|}\hline 1 \\ \hline 1 \\ \hline 2.5858 \\ \hline 1 \\ \hline 5.4142  \\ \hline 5.4142\\ \hline \end{array}

F1(1,y):=0

F1(2.5858,y)=-6.0831 \cdot 10^{-5}

F1(5.4142,y)=-1.6933 \cdot 10^{-4}

 Листинг решения примера 4.2

Рис.
4.2.
Листинг решения примера 4.2

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

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

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

Пример 4.3

Решить уравнение x^5-2x^4-3x^3-x^2-4x=-21.

Осуществляется решение уравнения при помощи функции polyroots() (Рис.4.3).

  • Задаем вектор, элементы которого – коэффициенты полинома, начиная со свободного члена.
  • Используем функцию polyroots().
  • Решение представляется в виде матрицы, включающей все корни, в том числе и комплексные.

f(x):=(x^5-2x^4-3x^3-x^2-4x+21)

f(x)\large{=}0

V:=\begin{array}{|c|ccccc|}\hline 21 \\ \hline -4 \\ \hline -1 \\ \hline -3 \\ \hline -2  \\ \hline 1\\ \hline \end{array}

x:=polyroots(V)

x:=\begin{array}{|c|ccccc|}\hline -1.835 \\ \hline -0.334+1.557i \\ \hline -0.334-1.557i \\ \hline 1.503 \\ \hline 3 \\ \hline \end{array}

f(x):=\begin{array}{|c|ccccc|}\hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10}-1.421i \cdot 10^{-14} \\ \hline -3.289 \cdot 10^{-10} \\ \hline -3.289 \cdot 10^{-10} \\ \hline \end{array}

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

Графическое решение

Одним из удобных и наглядных способов решения уравнений является графический. Графическим он называется потому, что при использовании такого способа решение уравнения f(x) = 0 представляется в виде графика функции f(x), пересечения которого с осью абсцисс (X) и будут решениями начального уравнения. Конечно, особенно точным такой способ решения назвать сложно, но он может пригодиться для задания начального приближения, необходимого для полноценной работы функции root, которая поможет найти корни более точно. Для начала рассмотрим простенькое квадратное уравнение 2×2 — 7x — 17 = 0. Левую часть уравнения нужно записать в виде функции, т.е. нужно сделать запись f(x) := 2×2 — 7x — 17. Напомню, что оператор присваивания (:=) записывается с клавиатуры при помощи простого двоеточия, т.е. для латинской раскладки клавиатуры это будет Shift+;, а для русской — Shift+6. Далее нужно задать диапазон построения графика. Для этого для переменной x записываем x := -10..10. Здесь нужно использовать специальный разделитель, применяемый в MathCAD’е для записи интервалов — обычное написание двух символов «.» подряд не поможет. Это разделитель можно найти на панели матричных вычислений (кнопка «m..n») или записать с помощью нажатия на клавиатуре точки с запятой. Итак, все нужное для построения графика мы с вами подготовили. Теперь дело за малым — добавить на рабочее поле собственно график. Для этого на панели «Graph» выберите «X-Y Plot» (самая первая из всех кнопок на панели), и тогда у вас на экране появится область построения графика. Для того, чтобы график в ней построился, нужно в центре под осью абсцисс написать имя нашей переменной (в данном случае им будет, конечно же, x), а по центру рядом с осью ординат — имя нашей функции (то есть f(x)).

Что ж, график у нас теперь есть. Как же определить, какая именно точка соответствует решению нашего уравнения? С этим поможет трассировка. Щелкните по получившемуся графику правой кнопкой мыши и выберите Trace. У вас на графике появится этакий «прицел», который можно будет передвигать мышкой, и окно, в котором будут отображаться координаты точки, находящейся в середине прицела (см. скриншоты). Прицел этот можно, кстати, двигать и при помощи клавиатурных стрелочек, но все равно в любом случае передвигаться он будет исключительно и только вдоль кривой, отображающей ход нашей функции, нули которой мы и ищем. Думаю, основную идею вы уже уловили: передвигая крестик-«прицел» вдоль кривой, можно в окне трассировки увидеть точку, Y-координата которой будет равна нулю.

Здесь, правда, может возникнуть небольшая проблема. В нашем уравнении, например, корень получился не целым, а трассировать функцию по X мы можем только с шагом, равным единице. Конечно, для того, чтобы локализовать корень для последующего применения функции root, в нашем случае достаточно и такой точности: достаточно найти интервал, на котором функция будет менять свой знак (то есть ее значение будет меняться с положительного на отрицательное или, напротив, с отрицательного на положительное). Но для других уравнений может случиться такое, что на единичном интервале может лежать и несколько решений — действительно, почему бы и нет, ведь даже для квадратных уравнений несложно придумать случай, когда такое может случиться. Какой из этого может быть выход? Самый простой и очевидный — уменьшить шаг трассировки по оси X, чтобы можно было более точно искать нулевые точки по оси Y. Сделать это в MathCAD очень просто. Помните, как мы задавали диапазон для нашей переменной x? Давайте кое-что поменяем и запишем его следующим образом: x := -10,-9.9..10. Теперь уже шаг трассировки у нас будет не единица, а одна десятая (0,1). Для того, чтобы уменьшить его еще в десять раз, нужно записать x := -10,-9.99..10. Общий принцип здесь вполне очевиден: мы записываем следующую точку диапазона следом за первой и, таким образом, указываем шаг, с которым MathCAD будет строить (а в итоге — и трассировать) наш график. Для более наглядного отображения данных имеет смысл добавить на график координатную сетку. Сделать это можно, если кликнуть по графику дважды, а затем в появившемся окне (см. скриншот) установить флажки напротив пунктов Grid Lines в категориях X Axis и Y Axis. Первый флажок устанавливает координатные линии для оси X, а второй, соответственно, для оси Y. Единственное, что также рекомендую — так это сразу поменять и цвет линий координатной сетки, кликнув по квадратикам рядом с этими пунктами — по умолчанию он задан кислотно-зеленым, что не очень удобно для глаз. Хотя это уже, конечно, дело вкуса.

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

Контроль точности решения уравнений с помощью функции root

Практически любой численный метод решения уравнений и систем уравнений является приближенным. Счастливым исключением из этого правила являются, пожалуй, только некоторые матричные методы решения систем линейных уравнений. Ну и решения простых линейных, квадратных и кубических уравнений тоже являются точными — правда, их редко относят к численным, потому что здесь фактически для расчета численных значений корней используются аналитические формулы. С функцией root все несколько иначе: она умеет решать любые (ну, или практически любые) по своему виду уравнения, но зато выдает приближенные значения их решений. Поскольку нередко нужно знать решение уравнения с какой-то четко заданной точностью, будет весьма полезным узнать, как эту точность в MathCAD’е можно контролировать. Оказывается, это совсем не сложно, и даже, более того, я бы сказал, совсем просто. В системе MathCAD существует специальная переменная, служащая как раз таки для контроля точности численных решений. Называется эта переменная TOL, и такое название происходит от английского слова tolerance, которое «Мультилекс» перевел как «допустимое отклонение от стандартного размера». В нашем случае это как раз и означает точность. Для того, чтобы пояснить суть этого параметра, следует немного углубиться во «внутреннюю кухню» MathCAD’а. Не бойтесь, я не буду рассказывать подробно об алгоритмах и писать какие-то формулы. Но если вам это неинтересно, можно просто пропустить следующий абзац.

Дело в том, что методы, применяемые MathCAD’ом при численном решении уравнений, являются итерационными. Что это значит? Это значит, что все эти методы используют для получения значения x цикл, в котором каждое следующее значение решения вычисляется по предыдущему, но с большей точностью. Циклы бывают разными, как и начальные значения переменной x, и в теории численных методов выводятся формулы, показывающие, при каких условиях возможно получение приближенного решения — а ведь даже это возможно далеко не всегда. Когда цикл имеет нормальный ход, то есть с каждой последующей итерацией (выполнением вычислений в рамках одного шага цикла) значение приближенного решения получается более точным, то есть более близким к реальному решению, чем на предыдущей итерации, говорят, что итерации сходятся (иногда добавляют, что они сходятся к точному значению решения). Для того, чтобы определять, когда же значение, получаемое в результате итерационных вычислений, нас наконец-то устроит, и используется переменная TOL. Для простоты восприятия можно сказать, что, когда разница между текущим и предыдущим значением переменной в рамках цикла становится меньше, чем TOL, то ее дальнейшее вычисление (то есть и сам цикл) прекращаются. Таким вот нехитрым образом TOL и служит для контроля точности вычислений. Впрочем, это совсем не гарантирует, что точка, вычисленная таким образом, будет лежать близко к реальному корню — вполне может оказаться и так, что указанная разность вычисленных значений будет меньше, чем TOL, и довольно далеко от точки, являющейся реальным решением заданного уравнения. Но с этим, к сожалению, ничего поделать нельзя — алгоритм, вложенный создателями MathCAD’а в свой продукт, на самом деле не так уж и плох, если правильно подбирать начальное приближение и TOL. Для этого рекомендуется перед началом непосредственных вычислений значений корня уравнения f(x) = 0 строить график его левой части (так, как мы это делали выше), а после получения собственно значения — проверять его с помощью подстановки в исходное уравнение.

Изменять переменную TOL можно выбрав в главном меню MathCAD’а пункт Tools, далее выбрав Worksheet Options, а потом — вкладку Built-in Variables (см. соответствующий скриншот). Там вы без труда найдете надпись «Convergence Tolerance (TOL)» и соответствующее значение, равное по умолчанию 0,001, или 10-3. Поменять значение TOL можно прямо в документе, записав, например: TOL := 0,0001. Нужно только помнить, что тогда менять TOL нужно до вызова функции root. Ну и, конечно, не стоит сильно увлекаться уменьшением TOL, потому что в ряде случаев это может затруднить процесс поиска решения и привести к тому, что оно вообще не будет найдено. Кроме того, надо отметить, что чем меньше TOL, тем больше времени потребуется MathCAD’у на вычисление решения. Делать TOL в случае использования root меньше, чем 10-13, обычно и вовсе не имеет смысла, потому что погрешности расчета функций exp, sin, log и других (это все трансцендентные функции) находятся примерно на этом уровне, и более точное значение получить будет попросту технически невозможно. Вообще же теоретически предельным для TOL является значение 10-16, но добиться такой точности, как правило, реально невозможно. Да и редко когда нужно, к счастью.

Дополнительно:  Root права на android и зачем они нужны
Оцените статью
Master Hi-technology
Добавить комментарий