Реализация численных методов решения нелинейных уравнений средствами приложения MS Excel. Решение систем нелинейных уравнений. Решение нелинейного уравнения

Дано уравнение F(x)=0 . Это - общий вид нелинейного уравнения с одним неизвестным. Как правило, алгоритм нахождения корня состоит из двух этапов:

1. Отыскание приближенного значения корня или отрезка на оси абсцисс, его содержащего.

2. Уточнение приближенного значения корня до некоторой точности.

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

Шаговый метод

В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , шагh = 0,3. Решим его, используя специальные возможности пакета Excel. Последовательность действий (см. рис. 1):

1. Оформить заголовок в строке 1 «Численные методы решения нелинейных уравнений».

2. Оформить заголовок в строке 3 «Шаговый метод».

3. В ячейки A6 и C6 и B6 записать данные по задаче.

4. В ячейки B9 и C9 записать заголовки рядов - соответственно x иF(x).

5. В ячейки B10 и B11 ввести первые два значения аргумента - 3 и 3.3.

6. Выделить ячейки B5-B6 и протащить ряд данных до конечного значения (3,3), убедившись в правильном выстраивании арифметической прогрессии.

7. В ячейку C10 ввести формулу «=B10*B10-11*B10+30».

8. Скопировать формулу на остальные элементы ряда, используя прием протаскивания. В интервале C10:C18 получен ряд результатов вычисления функции F(x). Видно, что функция один раз меняет знак. Корень уравнения расположен в интервале .

9. Для построения графика зависимости F(x) используем Вставка - Диаграмма (тип «Точечная», маркеры соединяются гладкими кривыми).

Метод деления отрезка пополам

В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , с точностью ε=0.01. Решим его, используя специальные возможности пакета Excel.

1. Ввести в ячейку B21 заголовок «Метод деления отрезков пополам».

2. Ввести в ячейку A23, C23, E23 данные по задачи.

3. В области B25:H25 оформить заголовок таблицы (ряд B - левая граница отрезка «a», ряд C - середина отрезка «x», ряд D - правая граница отрезка «b», ряд E - значение функции на левой границе отрезка «F(a)», ряд F - значение функции на середине отрезка «F(x)», ряд G - произведение «F(a)*F(x)», ряд H - проверка достижения точности « ê F(x)ê <е».

4. Ввести первоначальные значения концов отрезка: в ячейку B26 «4.8», в ячейку D26 «5.1».

5. Ввести в ячейку C26 формулу «=(B26+D26)/2».

6. Ввести в ячейку E26 формулу «=B26*B26-11*B26+30».

7. Ввести в ячейку F26 формулу «=C26*C26-11*C26+30».

8. Ввести в ячейку G26 формулу «=E26*F26».

9. Ввести в ячейку H26 формулу «=ЕСЛИ(ABS(F26)<0.01; ² корень² )».

1 0. Выделить область B21:H21 и протащить ее по вертикали вплоть до появления в ряду H сообщения «корень» (ячейка H29, H30).

Метод касательных (Ньютона)

1. Ввести в ячейку J23 заголовок «Метод касательной (Ньютона)».

2. Ввести в ячейку L23 текст «е=», а в ячейку M23 значение точности «0.00001».

3. В области K25:N25 оформить заголовок таблицы (ряд K - значение аргумента «x», ряд L - значение функции «F(x)», ряд M - производная функции «F ¢ (x)», ряд N - проверка достижения точности «ê F(x)ê <е».

4. В ячейку K26 ввести первоначальное значение аргумента «-2».

5. Ввести в ячейку L26 формулу «=K26*K26*K26+2*K26*K26+3*K26+5».

6. Ввести в ячейку M26 формулу «=3*K26*K26+4*K26+3».

7. Ввести в ячейку N26 формулу «=ЕСЛИ(ABS(L26)<$M$23;"корень")».

8. Ввести в ячейку K27 формулу «=K26-L26/M26».

9. Выделить область L27:N27 и протащить ее по вертикали вплоть до появления в ряду N сообщения «корень» (ячейка N30).

Метод хорд

В качестве примера рассмотрим уравнение x 3 +2x 2 +3x+5= 0. Точность ε=0.01. Решим его, используя специальные возможности пакета Excel.

1. Ввести в ячейку B32 заголовок «Метод хорд».

2. Ввести в ячейку C34 текст «е=», а в ячейку E34 значение точности «0.00001».

3. В области B36:D36 оформить заголовок таблицы (ряд B - значение аргумента «x», ряд C - значение функции «F(x)», ряд D - проверка достижения точности « ê F(x)ê <е».

4. В ячейку B37 и B38 ввести первоначальное значение аргумента «-2» и. «-1»

5. Ввести в ячейку С37 формулу «=B37*B37*B37+2*B37*B37+3*B37+5».

6. Ввести в ячейку D37 формулу «=ЕСЛИ(ABS(B38-B37)<$D$34;"корень")».

7. Ввести в ячейку B39 формулу «=B38-C38*(B38-B37)/(C38-C37)».

8. Выделить область C39:D39 и протащить ее по вертикали вплоть до появления в ряду D сообщения «корень» (ячейка D43).

Метод простой итерации

В качестве примера рассмотрим уравнение x 2 - 11x + 30 = 0. Интервал поиска , с точностьюe =0,05.

1. Ввести в ячейку K32 заголовок «Метод простой итерации»

2. Ввести в ячейку N34 текст «е=», а в ячейку O34 значение точности «0,05».

3. Выбрать функцию j (x), удовлетворяющую условию сходимости. В нашем случае такой функцией является функция S(x)=(x*x+30)/11.

4. В области K38:N38 оформить заголовок таблицы (ряд K - значение аргумента «x», ряд L - значение функции «F(x)», ряд M - значение вспомогательной функции «S(x)», ряд N - проверка достижения точности « ê F(x)ê <е».

5. В ячейку K39 ввести первоначальное значение аргумента «4.8».

6. Ввести в ячейку L39 формулу «=K39*K39-11*K39+30».

7. Ввести в ячейку M39 формулу «=(K39*K39+30)/11».

8. Ввести в ячейку N39 формулу «=ЕСЛИ(ABS(L39)<$O$34;"корень")».

9. Ввести в ячейку K40 формулу «=M39».

1 0. Скопировать ячейки L39:N39 в ячейки L40:N40.

1 1 . Выделить область L40:N40 и протащить ее по вертикали вплоть до появления в ряду N сообщения «корень» (ячейка N53).

Рис.1 Решение нелинейных уравнений в среде Excel

n Пример 2.3. Найти корни уравнения

x - tg(x)= 0. (2.18)

Первый этап решения (этап отделения корней ) был реализован в разделе 2.1 (пример 2.2). Искомый корень уравнения находится на отрезке x Î, что и видно на графике (рис. 2.9).

Рис.2.9. Этап отделения корней

Этап уточнения корня реализуем средствами Excel. Продемонстрируем это на примере метода половинного деления . Схемы расчетов для методов касательных и хорд мало чем отличаются от приведенной ниже схемы.

Последовательность действий:

1. Подготовим таблицу, как показано на рис.2.10 и введем значения a , b , ε соответственно в ячейки В3, В4, В5.

2. Заполним первую строку таблицы:

D4=0 номер итерации;

Е4=В3, F4=B4, для вычисления f(a): G4=E4-TAN(E4),

Аналогично, в ячейки H4, I4, J4 введем формулы для вычисления соответственно f (b ), x n =(a+b )/2 и f (x n );

В ячейке К4 вычислим длину отрезка [a , b ]: K4=ABS(E4-F4).

3. D5=D4+1, для формирования номера итерации.

4. В ячейки E5, F5 введем формулы для формирования концов вложенных отрезков в соответствии с алгоритмом, изложенным в разделе 2.2.1:

E5=ЕСЛИ(J4*H4<0;I4;E4);

F5=ЕСЛИ(J4*H4>0;I4;F4).

5. Выделим ячейки G4:K4 и скопируем их вниз на одну строку .

6. Выделим ячейки D5:K5 и скопируем их вниз до конца таблицы.

Рис.2.10. Схема решения нелинейного уравнения методом бисекции

Деление отрезков продолжаем до тех пор, пока длина последнего не станет меньше заданного ε, т.е. до тех пор, пока не выполнится условие .

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

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

Для этого выполним следующие действия:

Выделим ячейки последнего столбца (К) расчетной схемы (рис.2.10), где будет задаваться критерий окончания итерационного процесса;

Выполним команду


Главная\Стили\ Условное форматирование;

Рис.2.11. Окно условного форматирования

В появившемся окне (рис.2.11) выберем строку:

Правила выделения ячеек \ Меньше;

В левой части появившегося диалогового окна Меньше (рис.2.12) зададим значение, которое будем использовано в качестве критерия (в нашем примере это адрес ячейки B5, где находится значение ε ).

Рис.2.12. Диалоговое окно Меньше

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

В результате такого форматирования ячейки столбца К, значения которых меньше 0.1, тонированы, рис.2.10.

Таким образом, за приближенное значение корня уравнения x- tg(x)= 0 с точностью e=0.1принимается 3-я итерация, т.е. x * »4.46875 . Для e=0.01 - x * » 4.49609 (6-я итерация).

Решение нелинейных уравнений с использованием надстройки «Подбор параметра»

Решение нелинейных уравнений можно реализовать в приложении MS Excel с использованием надстройки Подбор параметра, где реализуется некоторый итерационный процесс.

Найдем корни рассмотренного выше уравнения (2.18).

За нулевое приближение решения уравнения, как это видно из рис.2.13, можно принять х 0 =4 или х 0 =4,5.

Последовательность действий

1. Подготовим таблицу, как показано на рис.2.13. В ячейку А2 введем некоторое значение х 0 (например х 0 =4) из ОДЗ функции y=f(x). Это будет начальным приближением для итерационного процесса, реализуемого приложением Подбор параметра.

2. Ячейка В2 является изменяемой ячейкой в процессе работы надстройки. Введем в нее это значение х 0 , а в ячейке С3 вычислим значение функции f(x n) для этого приближения.

3. Выберем команду:

Данные \ Работа с данными \ Анализ «что-если»\ Подбор параметра.

4. В окне «Подбор параметра»сделаем установки, как показано на рис.2.13 и нажмем кнопку ОК.

Рис.2.13. Решение нелинейного уравнения с помощью надстройки «Подбор параметра»

Если все было проделано правильно, то в ячейке В2 (рис.2.13) будет получено приближенное значение корня нашего уравнения.

Проделайте все эти операции ещё раз с другим значением начального приближения, например х 0 =4,5.

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

1. Какое уравнение называется нелинейным. Что является решением нелинейного уравнения.

2. Геометрическая интерпретация решения нелинейного уравнения.

3. Методы решения нелинейного уравнения (прямые и итерационные), в чем разница.

4. Два этапа численного решения нелинейного уравнения. Какие задачи ставятся на первом и втором этапах.

5. Первый этап решения нелинейного уравнения. Как выбирается нулевое приближение (нулевая итерация).

6. Построение итерационной последовательности. Понятие сходимости итерационной последовательности. Нахождение приближенного значения корня нелинейного уравнения с точностью ε.

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


Глава 3.

Пусть найдено приближенное значение корня уравнения f (x ) = 0, обозначим его x n . Расчетная формула метода Ньютона для определения очередного приближения x n +1 может быть получена двумя способами.

Первый способ выражает геометрический смысл метода Ньютона и состоит в том, что вместо точки пересечения графика функции y = f (x ) с осью OX , мы ищем точку пересечения с осью OX касательной, проведенной к графику функции в точке (x n , f (x n )) как показано на рис. 2.6. Уравнение касательной имеет вид .

Рис. 2.7. Метод Ньютона (касательных)

В точке пересечения касательной с осью OX переменная y = 0. Приравнивая y нулю, выразим x и получим формулу метода касательных :

(2.6)

Второй способ. Разложим функцию f (x ) в ряд Тейлора в окрестности точки x = x n :

Ограничимся линейными относительно (x – x n ) слагаемыми, приравняем нулю f (x ) и, выразив из полученного уравнения неизвестное x и обозначив его через x n +1 , мы получим формулу (2.6).

Приведем достаточные условия сходимости метода Ньютона.

Теорема 2.3. Пусть на отрезке выполняются условия:

1) функция и ее производные и непрерывны;

2) производные и отличны от нуля и сохраняют определенные постоянные знаки;

3) (функция меняет знак на отрезке).

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

Доказательство . Так как непрерывна, меняет знак и монотонна на , то - интервал изоляции корня. Обозначим искомый корень через . Рас­смотрим функцию и найдем ее производную . Итак, непрерывна на , обращается в нуль в точке , так как в этой точке обращается в нуль функция . Следовательно, существует такой отре­зок (), что . Если возьмем ту часть отрезка, где , то , следовательно, функция возрастающая, но тогда последовательность является монотонной.

Рис. 2.8. Достаточные условия сходимости метода Ньютона

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

Пример 2.7. Уточнить до 0,000001 методом Ньютона корень уравнения
sin 5x + x 2 – 1 = 0. За начальное значение принять x 0 = – 0,7.

Решение. Найдем производную .

В программе Excel введем расчетные формулы:

1) Введем формулы и обозначения в ячейках диапазона A 1:D 3 и скопируем вниз маркером заполнения ячейки с формулами: B 3 - до B 5,
C 2 - до C 5, D 2 - до D 5;



Таблица 2.9

A B C D
k x f(x) f"(x)
–0,7 =SIN(5*B2)+B2^2–1 =5*COS(5*B2)+2*B2
=B2–C2/D2

Результаты расчетов приведены в таблице 2.10. Получено значение корня – 0,726631609 ≈ – 0,726632 с погрешностью 0,000001.

Таблица 2.10

A B C D A
k x f(x) f"(x)
-0,7 -0,159216772 -6,082283436
-0,726177138 -0,002664771 -5,865681044 0,026177138
-0,726631437 -1,00787E-06 -5,861240228 0,000454299
-0,726631609 -1,45328E-13 -5,861238543 1,71955E-07

Создадим функции в программе Excel для решения уравнения из примера 2.7 методом Ньютона.

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

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

Чаще всего речь идет о решении нелинейных уравнений различного типа. Сделать это максимально быстро, особенно с использованием ЭВМ, позволяют численные методы. Они хорошо изучены и давно доказали свою эффективность. К их числу относится и метод касательных Ньютона, которым посвящена эта статья.

Постановка задачи

В данном случае имеется функция g, которая задана на отрезке (a, b) и принимает на нем определенные значения, т. е. каждому x, принадлежащему (a, b) возможно сопоставить конкретное число g(x).

Требуется установить все корни уравнения из промежутка между точками a и b (включая концы), для которых функция обнуляется. Очевидно, что это будут точки пересечения y = g(x) с ОХ.

В некоторых случаях удобнее заменить g(x)=0 на аналогичное, вида g 1 (x) = g 2 (x). В таком случае в качестве корней выступают абсциссы (значение x) точек пересечения графиков g 1 (x) и g 2 (x).

Решение нелинейного уравнения важно и для задач оптимизации, для которых условие локального экстремума - обращение в 0 производной функции. Иными словами, такая задача может свестись к поиску корней уравнения p(x) = 0, где p(x) тождественна g"(x).

Методы решения

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

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

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

Локализация

Численные способы решения сложных уравнений, не имеющих аналитических решений, принято осуществлять в 2 этапа. Сначала требуется их локализировать. Эта операция заключается в нахождение таких отрезков на ОХ, на которых существует один корень решаемого уравнения.

Рассмотрим отрезок . Если g(x) на нем не имеет разрывов и принимает в концевых точках значения разных знаков, то между a и b или в них самих расположен по крайней мере 1 корень уравнения g(x) = 0. Чтобы он был единственным, требуется, чтобы g(x) на была монотонной. Как известно, таким свойством она будет обладать при условии знакопостоянства g’(x).

Говоря иначе, если на g(x) не имеет разрывов и монотонно растет или убывает, а ее значения в концевых точках имеют не одинаковые знаки, то на существует 1 и только 1 корень g(x).

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

Решение уравнения делением пополам

Прежде чем рассматривать более сложные численные касательныхи его разновидности) стоит познакомиться с наиболее простым способом выявления корней. Он называется дихотомией и относится к интуитивным нахождения корней основан на теореме о том, что если для g(x), непрерывной на выполняется условие разнознаковости, то на рассматриваемом отрезке есть хотя бы 1 корень g(x) = 0.

Для его обнаружения нужно поделить отрезок пополам и обозначить среднюю точку как x 2 . Тогда возможны два варианта: g(x 0) * g(x 2) либо g(x 2) * g(x 1) равны или меньше 0. Выбираем тот, для которого верно одно из этих неравенств. Повторяем процедуру, описанную выше, пока длина не станет меньше некой, заранее выбранной величины, определяющей точность определения корня уравнения на .

К достоинствам метода относится его надежность и простота, а недостаток — необходимость изначально выявить точки, в которых g(x) принимает разные знаки, поэтому его нельзя применять для корней, обладающих четной кратностью. Кроме того, он не обобщается на случай системы уравнений или если речь идет о комплексных корнях.

Пример 1

Пусть мы хотим решить уравнение g(x) = 2x 5 + x - 1 = 0. Чтобы долго не искать подходящий отрезок, строим график, используя, например, известную программу "Эксель". Мы видим, что в качестве отрезка для локализации корня лучше брать значения из промежутка . Мы можем быть уверены, что хотя бы один корень искомого уравнения на нем есть.

g"(x) = 10x 4 + 1, т. е. это монотонно возрастающая функция, поэтому на выбранном отрезке есть только 1 корень.

Подставляем концевые точки в уравнение. Имеем 0 и 1 соответственно. На первом шаге за решение берем точку 0,5. Тогда g(0,5) = -0,4375. Значит,следующий отрезок для деления пополам будет . Его серединная точка - 0,75. В ней значение функции равно 0,226. Берем для рассмотрения отрезок и его середину, которая находится в точке 0,625. Вычисляем значение g(x) в 0,625. Оно равно -0,11, т. е. отрицательное. Опираясь на этот результат, выбираем отрезок . Получаем x = 0,6875. Тогда g(x) = -0,00532. Если точность решения 0,01, то можем считать, что искомый результат равен 0,6875.

Теоретическая база

Этот способ нахождения корней методом касательных Ньютона пользуется популярностью из-за его очень быстрой сходимости.

Он основан на том доказанном факте, что если x n — приближение к корню f(x)=0, таком, что f" C 1 , то следующая апроксимация будет в точке, где обнуляется уравнение касательной к f(x), т. е.

Подставляем x = x n+1 и обнуляем y.

Тогда касательных выглядит так:

Пример 2

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

Пусть требуется выявить корни для x 3 + 4x - 3 = 0 с некоторой точностью, например 0,001. Как известно, график любой функции в виде многочлена нечетной степени должен хотя бы раз пересекать ось ОХ, т. е. сомневаться в существовании корней не приходится.

Прежде чем решить наш пример методом касательных, строим графикf(x) = x 3 + 4x - 3 поточечно. Это очень легко сделать, например, используя табличный процессор "Эксель". Из полученного графика будет видно, что на происходит его пересечение с осью ОХ и функция y = x 3 + 4x - 3 монотонно возрастает. Мы можем быть уверены, что на уравнения x 3 + 4x - 3 = 0 имеет решение и оно единственное.

Алгоритм

Любое решение уравнений методом касательных начинается с вычисления f "(x). Имеем:

Тогда вторая производная будет иметь вид x * 6.

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

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

то если нас интересует решение методом касательных с точностью e, то значение x n можно считать удовлетворяющим требованиям задачи, при условии выполнения неравенства|f(x n) / f’(x n)|< e.

На первом шаге касательных имеем:

  • x 1 = x 0 - (x 0 3 + 4x 0 - 3) / (3x 0 2 + 4) = 1- 0,2857 = 0,71429;
  • так как условие не выполняется, идем далее;
  • получаем новое значение для x 2 , которое равно 0,674;
  • замечаем, что отношение значения функции к ее производной в x 2 меньше 0,0063, прекращаем процесс.

Метод касательных в Excel

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

Для этого в "Эксель" нужно создать новую страницу и заполнить ее ячейки следующими формулами:

  • в C7 записываем «= СТЕПЕНЬ (B7;3) + 4 * B7 - 3»;
  • в D7 вписываем «= 4 + 3 * СТЕПЕНЬ (B7;2)»;
  • в E7 записываем «= (СТЕПЕНЬ (B7;3)- 3 + 4 * B7) / (3* СТЕПЕНЬ (B7;2) + 4)»;
  • в D7 вписываем выражение «=В7 - Е7»;
  • в B8 вписываем формулу-условие «= ЕСЛИ(Е7 < 0,001;"Завершение итераций"; D7)».

В конкретной задаче уже в ячейке B10 появится надпись «Завершение итераций», и за решение задачи нужно будет взять число, записанное в ячейке, расположенной на одну строку выше. Для него можно выделить и отдельный «растягиваемый» столбец, введя там формулу-условие, согласно которой там будет записан результат, если содержимое в той или иной ячейке столбца B примет вид «Завершение итераций».

Реализация в Pascal

Попробуем получить решение нелинейного уравнения y = х 4 - 4 - 2 * х методом касательных в Паскале.

Используем вспомогательную функцию, которая поможет осуществить приближенное вычисление f"(x) = (f(x + delta) - f(x)) / delta. В качестве условия для завершения итерационного процесса выберем выполнение неравенства|x 0 -x 1 |< некого малого числа. В Паскале его запишем, как abs(x0 - x1)<= epsilon.

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

Метод хорд

Рассмотрим еще один способ выявления корней нелинейных уравнений. Процесс итераций заключается в том, что в качестве последовательных приближений к искомому корню для f(x)=0 принимают значения точек пересечения хорды с абсциссами концевых точек a и b с ОХ, обозначаемые, как х 1 , ..., х n . Имеем:

Для точки, где хорда пересекается с осью ОХ выражение запишется, как:

Пусть вторая производная положительная при х £ (противоположный случай сведется к рассматриваемому, если записать- f(x) = 0). В таком случае график у = f(x) - кривая, выпуклая внизу и расположенная ниже хорды AB . Могут иметь место 2 случая: когда функция имеет положительное значение в точке a или она отрицательное в точке b.

В первом случае в качестве неподвижного выбираем конец a, а за x 0 берем точку b. Тогда последовательные приближения по формуле, представленной выше, образуют последовательность, которая монотонно убывает.

Во втором случае неподвижным является конец b при x 0 = a. Значения х, полученные на каждом шаге итерации, образуют последовательность, которая монотонно возрастает.

Таким образом, можем констатировать, что:

  • неподвижным в методе хорд является тот конец отрезка, где не совпадают знаки функции и ее второй производной;
  • приближения для корня x — x m — лежат от него в той стороне, где у f(х) знак, не совпадающий со знаком f"" (х).

Итерации можно продолжать, пока не выполнится условия близости корней на этом и предыдущем итерационном шаге по модулю abs(x m - x m - 1)< e.

Модифицированный способ

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

Предположим, нужно отыскать корни f(x)=0, если они есть на . Можно применить любой из описанных выше способов. Однако лучше попробовать их комбинацию, благодаря чему значительно повысится точность корня.

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

В таких условиях решение нелинейных уравнений методом касательных позволяет найти корень с избытком, если x 0 =b, а способ с использованием хорд при неподвижном конце b приводит к нахождению приближенного корня с недостатком.

Используются формулы:

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

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

В качестве условия используется оценочное неравенство| b n +1 - a n +1 |< e. Иными словами, на практике приходится находить решение при помощи двух методов, но на каждом шаге требуется выяснять, насколько полученные результаты близки друг другу.

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

Комбинированный метод легко реализуется в среде TURBO PASCAL. При большом желании можно попробовать осуществить все вычисления табличным методом в программе "Эксель".

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

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

Теперь вы знаете, как решать сложные уравнения. Метод касательных,как вы уже видели, реализуется достаточно просто, как в Паскале, так и в "Экселе". Поэтому вы всегда сможете установить корни уравнения, которое сложно или невозможно решить посредством формул.

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

Пусть после взятия производной мы пришли к уравнению tg(x)=1/x . Проведем следующие преобразования:
tg(x)=1/x Ю x tg(x)=1 Ю x2 tg=1 Ю x2= 1 / tg(x) Ю x = ± .

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

В самом деле, мы прекрасно решаем квадратные и биквадратные уравнения, наипростейшие тригонометрические и степенные. Еще водятся "мастодонты", знающие о существовании формул Кардано для кубических уравнений. В общем же случае надежд на простое аналитическое решение нет. Более того, доказано, что даже алгебраическое уравнение выше четвертой степени неразрешимо в элементарных функциях. Поэтому решение уравнения проводят численно в два этапа (здесь разговор идет лишь о вещественных корнях уравнения). На первом этапе производится отделение корней - поиск интервалов, в которых содержится только по одному корню. Второй этап решения связан с уточнением корня в выбранном интервале (определением значения корня с заданной точностью).

1.1. Отделение корней

В общем случае отделение корней уравнения f(x)=0 базируется на известной теореме, утверждающей, что если непрерывная функция f(x) на концах отрезка имеет значения разных знаков, т.е. f(a)ґ f(b)Ј 0 , то в указан-ном промежутке содержится хотя бы один корень. Например, для уравнения f(x)= x 3 -6x+2=0 видим, что при x®Ґ f(x)>0 , при x®-Ґ f(x) , что уже свидетельствует о наличии хотя бы одного корня.

В общем случае выбирают некоторый диапазон, где могут обнаружиться корни, и осуществляют "прогулку" по этому диапазону с выбранным шагом h для обнаружения перемены знаков f(x) , т.е. f(x)ґ f(x+h) .

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

1.2. Уточнение корней методом половинного деления (дихотомии)

Самым простейшим из методов уточнения корней является метод половинного деления, или метод дихотомии, предназначенный для нахождения корней уравнений, представленных в виде f(x)=0 .

Пусть непрерывная функция f(x) на концах отрезка имеет значения разных знаков, т.е. f(a)ґ f(b) Ј 0 (), тогда на отрезке имеется хотя бы один корень.

Возьмем середину отрезка с=(a+b)/2 . Если f(a)ґ f(c) Ј 0 , то корень явно принадлежит отрезку от a до (a+b)/2 и в противном случае от (a+b)/2 до b .

Поэтому берем подходящий из этих отрезков, вычисляем значение функции в его середине и т.д. до тех пор, пока длина очередного отрезка не окажется меньше заданной предельной абсолютной погрешности (b-a)e .

Так как каждое очередное вычисление середины отрезка c и значения функции f(c) сужает интервал поиска вдвое, то при исходном отрезке и предельной погрешности e количество вычислений n определяется условием (b-a)/2 n e , или n~log 2 ((b-a)/e ) . Например, при исходном единичном интервале и точности порядка 6 знаков (e ~ 10 -6 ) после десятичной точки достаточно провести 20 вычислений (итераций) значений функции.

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

1.3. Уточнение корней методом хорд

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

Рис. 3. Метод хорд

Здесь вычисляются значения функции на концах отрезка, и строится "хорда", соединяющая точки (a,f(a)) и (b,f(b)) . Точка пересечения ее с осью абсцисс

принимается за очередное приближение к корню. Анализируя знак f(z) в сопоставлении со знаком f(x) на концах отрезка, сужаем интервал до [a,z ] или [z,b ] и продолжаем процесс построения хорд до тех пор, пока разница между очередными приближениями не окажется достаточно малой (в пределах допустимой погрешности) |Z n -Z n-1 |e .

Можно доказать, что истинная погрешность найденного приближения:

Где X * - корень уравнения, Z n и Z n+1 - очередные приближения, m и M - наименьшее и наибольшее значения f(x) на интервале [a,b ].

1.4. Уточнение корней методом касательных (Ньютона)

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

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

Пусть известно некоторое приближенное значение Z n корня X * . Применяя формулу Тейлора и ограничиваясь в ней двумя членами, имеем

откуда

.

Геометрически этот метод предлагает построить касательную к кривой y=f(x) в выбранной точке x=Z n , найти точку пересечения её с осью абсцисс и принять эту точку за очередное приближение к корню ().

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

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

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

.

Существуют и другие модификации метода Ньютона.

1.5. Уточнение корней методом простой итерации

Другим представителем итерационных методов является метод простой итерации .

Здесь уравнение f(x)=0 заменяется равносильным уравнением x=j (x) и строится последовательность значений