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

advertisement
Одно уравнение с одним неизвестным
Почти все встроенные функции системы MathCAD, предназначенные для решения
нелинейных алгебраических уравнений, нацелены на решение второй задачи, т. е.
предполагают, что корни уже приблизительно локализованы. Чтобы решить первую задачу
(предварительной локализации корней), можно использовать, например, графическое
представление f(x), или последовательный поиск корня, начиная из множества пробных точек,
покрывающих расчетную область(сканирование).
MathCAD предлагает несколько встроенных функций, которые следует применять в
зависимости от специфики уравнения, т. е. свойств f (х). Например, для решения системы
служит вычислительный блок Given/Find, для решения одного уравнения с одним неизвестным
- функция root, реализующая метод секущих.
Для решения уравнений с одним неизвестным MathCAD имеет встроенную функцию
root, которая в зависимости от типа задачи, может включать либо два, либо четыре аргумента и,
соответственно, работает несколько по-разному.
- root(f(х),х);
- root(f(х),х,а,b); где
f (х) - скалярная функция, определяющая уравнение ;
х - скалярная переменная, относительно которой решается уравнение;
а, b - границы интервала, внутри которого происходит поиск корня.
Первый тип функции root требует дополнительного задания начального значения (guess
value) переменной х. Для этого нужно просто предварительно присвоить х некоторое число.
Поиск корня будет производиться вблизи этого числа. Таким образом, присвоение начального
значения требует предварительной информации о примерной локализации корня.
Рассмотрим пример решения одной задачи
x  4  3.9  4
2
f ( x)  x  4x  1
33
29.4
25.8
22.2
18.6
f ( x)
15
11.4
7.8
4
4.2
0.6
3.2 2.4 1.6 0.8 3 0 0.8 1.6 2.4 3.2
x
x  1
solution  root( f ( x)  x)
solution  0.268
x  3
solution  root( f ( x)  x)
solution  3.732
4
Иногда удобнее задавать не начальное приближение к корню, а интервал [а,b], внутри
которого корень заведомо находится. В этом случае следует использовать функцию root с
четырьмя аргументами, а присваивать начальное значение х не нужно, как было рассмотрено
выше. Поиск корня будет осуществлен в промежутке между а и b альтернативным численным
методом (Риддера или Брента).
x  4  3.9  4
2
f ( x)  x  4x  1 *
33
29.4
25.8
22.2
18.6
f ( x)
15
11.4
7.8
4
4.2
0.6
3.2 2.4 1.6 0.8 3 0
solution  root ( f ( x)  x 3  4)
solution  3.732
solution  root ( f ( x)  x 0  2)
solution  0.268
x
0.8 1.6 2.4 3.2
4
Если уравнение не имеет действительных корней, но имеет мнимые, то их также можно
найти. Например, уравнение х2 + 1 = 0 имеет два чисто мнимых корня: x1   1 и x 2    1 .
В высшей математике  1 обозначается латинской буквой i. Уравнение х2 + 1 = 0 в системе
MathCAD решается два раза с разными начальными значениями. При задании начального
значения 0.5 численный метод отыскивает первый корень (отрицательную мнимую единицу - i),
а при начальном значении -0.5 находится и второй корень (i).
Для решения этого уравнения второй вид функции root (с четырьмя, а не с двумя
аргументами) неприменим.
Функция f(х) может быть функцией не только одного, но и любого количества
аргументов. Именно поэтому в самой функции root необходимо определить, относительно
какого из аргументов следует решить уравнение.
Рассмотрим это на примере функции двух переменных f(х,у)=х 2 - у2 + 3. В нем сначала
решается уравнение f(х,y) = 0 относительно переменной х, а потом - относительно переменной
у.
В первой строке листинга определяется функция f(x,y), во второй и третьей - значения,
для которых будет производиться решение уравнения по х и у соответственно. В четвертой
строке решено уравнение f(х,0) = 0, а в последней - уравнение f(1,y) = 0.
Не надо забывать при численном решении уравнений относительно одной из
переменных предварительно определить значения остальных переменных. Иначе попытка
вычислить уравнения приведет к появлению ошибки "This variable or function is not defined
above", в данном случае говорящей о том, что другая переменная ранее не определена.
Можно указать значение других переменных непосредственно внутри функции root,
беспрепятственно удалив, например, вторую и третью строки листинга, и введя его последние
строки в виде root(f (x,0),х)= и root (f (1,у),у) =, соответственно.
Download