Получение сразу нескольких корней
Многие уравнения с тригонометрическими функциями могут иметь периодические или близкие к ним решения. К сожалению, функции Mathematica, вычисляющие корни уравнений, не способны в этом случае дать сразу несколько корней. Однако ситуация тут далеко не безнадежна – приведенный ниже пример наглядно показывает это.
Пусть требуется в интервале изменения х от 0 до 20 найти все решения уравнения:
x sin(x)
+
x
/
2
-
1
=
0
График функции, представляющей левую часть уравнения, показан на рис. 4.24. Хорошо видно, что он пересекает ось х семь раз, то есть имеет в интересующем нас диапазоне семь корней.
Рис. 4.24. График функции х sin(x) + х/2-1 и пример вычисления всех ее корней в интервале изменения х от 0 до 20
Колебательная составляющая функции обусловлена входящей в нее функцией sin(x), которая имеет нули в точках 0, n, 2n, 3n… Однако, как видно из рис. 4.24, эти значения лишь приближенные, ввиду влияния других членов уравнения.
Ключевая идея получения всех корней уравнения заключается в поиске нужных решений с помощью функции FindRoot, которой последовательно подставляются различные начальные приближения. Однако вместо уже испытанного приема – поиска корней поодиночке – можно воспользоваться "таблицей" решений, используя функцию Table. Решение, приведенное под графиком функции на рис. 4.24, наглядно иллюстрирует возможности этого приема – найдены (или, вернее, уточнены) все семь корней исходного уравнения.