Одно уравнение с одним неизвестным

Рассмотрим одно уравнение с одним неизвестным x: f(x)=0 (Например: sin(x)=0).

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

1. root (f(x),x);

2. root (f(x),x,a,b);

- f(x) – скалярная функция;

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

- a,b – границы интервала, внутри которого происходит поиск корня.

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

Задание 8. Определите корни уравнения sin(x)=0, используя встроенную функцию root.

1. Откройте новый документ.

2. Присвойте значение переменной x и функции f(x):

3. Запишите имя корня solution и введите символ присваивания (рис. 30). Откройте диалоговое окно Insert Function (Вставить функцию)с помощью одноименной команды на панели инструментов Стандартные и выделите встроенную функцию root. Нажмите кнопку ОК.

4. Вставьте имя функции и имя переменной в первые два местозаполнителя, вторые два – удалите.

5. Применив оператор численного вычисления, определите значение корня (рис. 30).

График функции f(x)=sin(x) и положение найденного корня показаны на рис. 31.

Хотя уравнение имеет бесконечное количество корней xN=N·π (N=0,±1,±2,…), MathCAD находит только один из них, x0, лежащий наиболее близко к x=0.5. Задайте другое начальное значение, например, x=3 и вы получите другой корень уравнения x1=π.

Таким образом, для поиска корня средствами MathCAD требуется его предварительная локализация. Это связано с особенностями выбранного численного метода, который называется методом секущей [1].

Рис. 31. Определение корня уравнения с помощью встроенной функции

Рис. 32. Графическое решение уравнения sin(x)=0

Иногда удобнее задавать не начальное приближение к корню, а интервал [a,b], внутри которого корень заведомо находится. В этом случае используется функция root с четырьмя аргументами. Например:

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

1. Внутри интервала [a,b] не может находиться более одного корня, иначе будет найден один из них, заранее неизвестно какой именно.

2. Значение f(a) и f(b) должны иметь разный знак, иначе будет выдано сообщение об ошибке.

Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно найти. Например:

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

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

Сохраняете результаты работе в текущем документе.

Корни полинома

Если функция является полиномом, то все его корни можно определить, используя встроенную функцию polyroots(v), где v – вектор, составленный из коэффициентов полинома. Поскольку полином N-й степени имеет ровно N корней (некоторые из них могут быть кратными), вектор v должен состоять из N+1 элементов. Результатом действия функции polyroots является вектор, состоящий из N корней рассматриваемого полинома. При этом нет надобности вводить какое-либо начальное приближение.

Задание 9. Найдите корни полинома f(x)=(x-3)·(x-1)3=x4-6x3+12x2-10x+3, выполнив следующие операции:

1. Откройте новый документ.

2. Введите с помощью оператора присваивания вектор коэффициентов полинома

Первым в векторе должен идти свободный член полинома, вторым - коэффициент при x1 и т. д. Последним должен быть коэффициент при старшей степени xN. Чтобы использовать встроенную функцию матрицу-строку нужно транспонировать. Для этого используется команда Транспонировать матрицу на палитре Матрицы.

3. С помощью диалогового окна Insert Function (Вставить функцию) введите имя встроенной функции и получите вектор ответов:

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

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

- вызовите контекстное меню, щелкнув правой кнопкой над именем функции polyroots;

- выберите нужный метод: либо LaGuerre (Лаггера), либо Companion Matrix (Матрица компаньонов).

- Щелкните по пустому месту экрана и система произведет пересчет корней полинома в соответствии с выбранным методом.

6. Метод парной матрицы должен дать более точный результат:

7. Сохраните полученные результаты в своей папке.

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

Рассмотрим методику решения системы N нелинейных уравнений с M неизвестными:

Здесь f1(x1,…,xM),..., fN(x1,…,xM) – некоторые скалярные функции от скалярных переменных x1,…,xM и, возможно, от еще каких-либо переменных. Уравнений может быть как больше, так и меньше числа переменных. Эту систему формально можно записать так:

f(x)=0

где x – вектор, состоящий из переменных x1,x2…,xM, а f(x) – соответствующая векторная функция.

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

1. Given – ключевое слово;

2. Система, записанная логическими операторами в виде равенств и, возможно, неравенств.

3. Find((x1,…,xM) встроенная функция для решения системы относительно переменных x1,…,xM.

Вставить логические операторы можно, использую палитру Boolean (Булевы). Блок Given/Find использует для поиска решения итерационные методы, поэтому, как и для функции root, требует задания начального значения для всех x1,…,xM. Сделать это необходимо до ключевого слова Given. Значение функции есть вектор, включающий решение по каждой переменной.

Задание 10. Решите систему уравнений:

x4+y2-3=0,

x+2·y=0.

1. Используя оператор присваивания, введите функции, определяющие систему уравнений:

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

3. Введите ключевое слово Given и два логических оператора, выражающих рассматриваемую систему уравнений. Для записи символа булева равенства используйте палитру Boolean (Булевы). Обратите внимание на то, что этот символ отличается от обычного знака равенства, означающего оператор численного вычисления, так как отображается жирными линиями.

4. С помощью оператора присваивания введите функцию Find:

5. Получите численное решение:

6. Проверьте правильность решения системы:

7. Сохраните результаты решения в своей папке.

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

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

Другое решение получено благодаря введению дополнительного неравенства.

Задание 11. По условиям задание 10 получите графическое решение системы двух уравнений.

Вычислительным блоком с функцией find можно найти и корень уравнения с одним неизвестным. Например, для уравнения sin(x)=0 , ближайшим корнем к точке x=0,5 будет нуль.

Полученный результат следует считать нулевым.

Наши рекомендации