Решение нелинейных уравнений в маткаде 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 .

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

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

Вычисление корней численными методами включает два основных этапа:

· уточнение корней до заданной точности.

Рассмотрим эти два этапа подробно.

Отделение корней нелинейного уравнения

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

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

Пример. Дано алгебраическое уравнение

.

Определить интервалы локализации корней этого уравнения.

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

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

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

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

Пример. Используя функцию , найти все три корня уравнения , включая и два комплексных.

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

Функция root с двумя аргументами требует задания (до обращения к функции) переменной начального значения корня из интервала локализации.

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

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

Пример. Используя функцию polyroots , найти все три корня уравнения , включая и два комплексных

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

Решаемое уравнение задается в виде равенства, в котором используется «жирный» знак равно, вводимый с палитры Логичес­кий .

Ограничения содержат равенства или неравенства, которым должен удовлетворять искомый корень.

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

Для выбора алгоритма уточнения корня необходимо щелкнуть правой кнопкой мыши на имени функции Find ( x ) и в появившемся контекстном меню (см. рисунок) выбрать подходящий алгоритм.

Аналогично можно задать алгоритм решения и для функции Minerr ( x ).

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

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

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

В зависимости от того, какие функции входят в систему уравнений, можно выделить два класса систем:

· алгебраические системы уравнений;

· трансцендентные системы уравнений.

Среди алгебраических систем уравнений особое место занимают системы линейных алгебраических уравнений (СЛАУ).

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

Системой линейных алгебраических уравнений (СЛАУ) называется система вида:

В матричном виде систему можно записать как

,

где – матрица размерности , – вектор с проекциями.

Для вычисления решения СЛАУ следует использовать функцию lsolve , обращение к которой имеет вид: lsolve (А, b ), где А – матрица системы, – вектор правой части.

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

MathCAD дает возможность находить решение системы уравнений численными методами, при этом максимальное число уравнений в MathCAD 2001 i доведено до 200.

Для решения системы уравнений необходимо выполнить следующие этапы.

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

Пример. Дана система уравнений:

Определить начальные приближения для решений этой системы.

Видно, что система имеет два решения: для первого решения в качестве начального приближения может быть принята точка (-2, 2), а для второго решения – точка (5, 20). ¨

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

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

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

· ограничения со знаком ¹ ;

· дискретная переменная или выражения, содержащие дискретную переменную в любой форме;

· блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find (или Minerr ).

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

Пример. Используя функцию , вычислите решение системы уравнений

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

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

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

Относительно небольшое количество задач решения уравнений можно решить аналитически. Аналитическое решение предполагает точное определение корней либо нахождение алгоритма, по которому корни всегда могут быть найдены. На практике часто приходится искать решение при помощи численных методов [1, 11]. Уравнения решаются численными методами с заданной погрешностью. В MathCAD погрешность задается системной константой TOL . Как правило, отыскание корней алгебраического уравнения (или системы уравнений) численными методами связано с двумя задачами:

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

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

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

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

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

root(F(x, у, . ), x, [a, b]) возвращает с заданной точностью значение переменной, x , лежащей между a и b при котором функция равна нулю. Значения F() для a и b должны быть разных знаков. Третий аргумент не обязателен. Выбор решения определяется выбором начального значения переменной

Пример 4.1

Решить уравнение


источники:

http://pers.narod.ru/study/mathcad/07.html

http://new2.intuit.ru/studies/courses/10694/1113/lecture/17100