Как найти корень процесса

Корень нелинейной функции

Синтаксис

Описание

пример

x = fzero(fun,x0) попытки найти точку x где   fun(x) = 0. Это решение состоит в том где fun(x) изменяет знак — fzero не может найти корень функции, такой как x^2.

пример

x = fzero(fun,x0,options) использование options изменить процесс решения.

пример

x = fzero(problem) решает находящую корень задачу, заданную problem.

пример

[x,fval,exitflag,output]
= fzero(___)
возвращает fun(x) в fval выведите, exitflag кодирование причины fzero остановленный, и структура output, содержащая информацию о процессе решения.

Примеры

свернуть все

Корень, начинающий с одной точки

Вычислить π путем нахождения нуля синусоидальной функции около 3.

fun = @sin; % function
x0 = 3; % initial point
x = fzero(fun,x0)

Корень, начинающий с интервала

Найдите нуль косинуса между 1 и 2.

fun = @cos; % function
x0 = [1 2]; % initial interval
x = fzero(fun,x0)

Обратите внимание на то, что cos(1) и cos(2) отличайтесь по знаку.

Корень функции, определяемой файлом

Найдите нуль функционального f (x) = x3 – 2x – 5.

Во-первых, запишите файл под названием f.m.

function y = f(x)
y = x.^3-2*x-5;

Сохраните f.m на вашем MATLAB® path.

Найдите нуль f (x) около 2.

fun = @f; % function
x0 = 2; % initial point
z = fzero(fun,x0)

Начиная с f(x) полином, можно найти тот же действительный нуль и комплексно-сопряженную пару нулей, с помощью roots команда.

   ans =
   2.0946          
  -1.0473 + 1.1359i
  -1.0473 - 1.1359i

Корень функции с дополнительным параметром

Найдите корень функции, которая имеет дополнительный параметр.

myfun = @(x,c) cos(c*x);  % parameterized function
c = 2;                    % parameter
fun = @(x) myfun(x,c);    % function of x alone
x = fzero(fun,0.1)

Опции не по умолчанию

Постройте процесс решения путем установки некоторых функций построения графика.

Задайте функциональную и начальную точку.

fun = @(x)sin(cosh(x));
x0 = 1;

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

options = optimset('PlotFcns',{@optimplotx,@optimplotfval});

Запустите fzero включая options.

x = fzero(fun,x0,options)

Figure Optimization Plot Function contains 2 axes objects. Axes object 1 with title Current Point contains an object of type bar. Axes object 2 with title Current Function Value: -3.21625e-16 contains an object of type line.

Решение проблемной структуры

Решите задачу, которая описана структурой задачи.

Задайте структуру, которая кодирует находящую корень проблему.

problem.objective = @(x)sin(cosh(x));
problem.x0 = 1;
problem.solver = 'fzero'; % a required part of the structure
problem.options = optimset(@fzero); % default options

Решите задачу.

Больше информации из решения

Найдите точку где exp(-exp(-x)) = x, и отобразите информацию о процессе решения.

fun = @(x) exp(-exp(-x)) - x; % function
x0 = [0 1]; % initial interval
options = optimset('Display','iter'); % show iterations
[x fval exitflag output] = fzero(fun,x0,options)
 
 Func-count    x          f(x)             Procedure
    2               1     -0.307799        initial
    3        0.544459     0.0153522        interpolation
    4        0.566101    0.00070708        interpolation
    5        0.567143  -1.40255e-08        interpolation
    6        0.567143   1.50013e-12        interpolation
    7        0.567143             0        interpolation
 
Zero found in the interval [0, 1]
output = struct with fields:
    intervaliterations: 0
            iterations: 5
             funcCount: 7
             algorithm: 'bisection, interpolation'
               message: 'Zero found in the interval [0, 1]'

fval = 0 средних значений fun(x) = 0, как желаемый.

Входные параметры

свернуть все

funФункция, чтобы решить
указатель на функцию | имя функции

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

fzero решает   fun(x) = 0. Решить уравнение fun(x) = c(x), вместо этого решите fun2(x) = fun(x) - c(x) = 0.

Чтобы включать дополнительные параметры в вашу функцию, смотрите Корень в качестве примера Функции Дополнительным Параметром и разделом Passing Extra Parameters.

Пример: 'sin'

Пример: @myFunction

Пример: @(x)(x-a)^5 - 3*x + a - 1

Типы данных: char | function_handle | string

x0Начальное значение
скаляр | вектор с 2 элементами

Начальное значение в виде действительного скаляра или вектора действительных чисел с 2 элементами.

  • Скаляр — fzero начинается в x0 и попытки определить местоположение точки x1 где fun(x1) имеет противоположный знак fun(x0). Затем fzero итеративно уменьшает интервал где fun изменяет знак, чтобы достигнуть решения.

  • Вектор с 2 элементами — fzero проверки, что fun(x0(1)) и fun(x0(2)) имейте противоположные знаки и ошибки, если они не делают. Это затем итеративно уменьшает интервал где fun изменяет знак, чтобы достигнуть решения. Интервал x0 mustBeFinite; это не может содержать ±Inf.

Совет

Вызов fzero с интервалом (x0 с двумя элементами), часто быстрее, чем вызов его со скалярным x0.

Пример 3

Пример: [2,17]

Типы данных: double

optionsОпции для процесса решения
структура, обычно созданное использование optimset

Опции для процесса решения в виде структуры. Создайте или измените options использование структуры optimsetfzero использование они options поля структуры.

Display

Level of display (см. Итеративное Отображение):

  • 'off' не отображает вывода.

  • 'iter' отображает вывод в каждой итерации.

  • 'final' отображения только окончательный результат.

  • 'notify' (значение по умолчанию) отображает вывод, только если функция не сходится.

FunValCheck

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

  • 'on' отображает ошибку, когда целевая функция возвращает значение, которое является complexInf, или NaN.

  • Значение по умолчанию, 'off', отображения никакая ошибка.

OutputFcn

Задайте одну или несколько пользовательских функций, которые оптимизационная функция вызывает на каждой итерации, или как указатель на функцию или как cell-массив указателей на функцию. Значение по умолчанию не ни один ([]). Смотрите синтаксис выходной функции и функции построения графика.

PlotFcns

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

  • @optimplotx строит текущую точку.

  • @optimplotfval строит значение функции.

Пользовательские функции построения графика используют тот же синтаксис в качестве выходных функций. Смотрите Выходные функции для Optimization Toolbox™ и Синтаксис Функции построения графика и Выходную функцию.

TolX

Допуск завершения на x, положительная скалярная величина. Значением по умолчанию является eps, 2.2204e–16. Смотрите допуски и критерий остановки.

Пример: options = optimset('FunValCheck','on')

Типы данных: struct

problemНаходящая корень проблема
структура

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

objective

Целевая функция

x0

Начальная точка для x, скалярный или 2D вектор

solver

'fzero'

options

Структура опций, обычно созданное использование optimset

Типы данных: struct

Выходные аргументы

свернуть все

x — Местоположение корня или изменения знака
действительный скаляр

Местоположение корня или изменения знака, возвращенного как скаляр.

fval — Значение функции в x
действительный скаляр

Значение функции в x, возвращенный как скаляр.

exitflag — Целое число, кодирующее выходное условие
целое число

Целое число, кодирующее выходное условие, означая причину fzero остановленный его итерации.

1

Функция сходилась к решению x.

-1

Алгоритм был отключен выходной функцией или функцией построения графика.

-3

NaN или Inf со значением функции столкнулись при поиске интервала, содержащего изменение знака.

-4

Со значением комплексной функции столкнулись при поиске интервала, содержащего изменение знака.

-5

Алгоритм может сходиться к особой точке.

-6

fzero не обнаружил изменение знака.

output — Информация о находящем корень процессе
структура

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

intervaliterations

Количество проделанных итераций, чтобы найти интервал, содержащий корень

iterations

Количество находящих нуль итераций

funcCount

Количество вычислений функции

algorithm

'bisection, interpolation'

message

Выходное сообщение

Алгоритмы

fzero команда является файлом функции. Алгоритм, созданный Т. Деккером, использует комбинацию деления пополам, секанса и обратных квадратичных методов интерполяции. Алгол 60 версий, с некоторыми улучшениями, дан в [1]. Версия Фортрана, на который fzero базируется, находится в [2].

Альтернативная функциональность

Приложение

Оптимизировать задача Live Editor обеспечивает визуальный интерфейс для fzero.

Ссылки

[1] Брент, R., алгоритмы для минимизации без производных, Prentice Hall, 1973.

[2] Форсайт, G. E. М. А. Малкольм, и К. Б. Молер, компьютерные методы для математических вычислений, Prentice Hall, 1976.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Для генерации кода C/C++:

  • fun входной параметр должен быть указателем на функцию, и не структурой или вектором символов.

  • fzero игнорирует все опции за исключением TolX и FunValCheck.

  • fzero не поддерживает четвертый выходной аргумент, структуру output.

Представлено до R2006a

№70 Анализ переходных процессов в цепи R, L, C.

Переходные процессы в цепи R, L, C описываются дифференциальным уравнением 2-го порядка. Установившиеся составляющие токов и напряжений определяются видом источника энергии и определяются известными методами расчета установившихся режимов. Наибольший теоретический интерес представляют свободные составляющие, так как характер свободного процесса оказывается существенно различным в зависимости от того, являются ли корни характеристического уравнения вещественными или комплексными сопряженными.

Проанализируем переходной процесс в цепи R, L, C при включении ее к источнику постоянной ЭДС (рис. 70.1).

Общий вид решения для тока: i(t)=iy(t)+iсв(t)=Iy+A1ep2t+A2ep2t

Установившаяся составляющая: Iy=0

Характеристическое уравнение и его корни:

Независимые начальные условия: i(0)=0; uc(0)=0.

Зависимое начальное условие:

Постоянные интегрирования определяется из соместного решения системы уравнений:

Окончательное решение для тока:

Исследуем вид функции i(t) при различных значениях корней характеристического уравнения.

а) Корни характеристического уравнения вещественные, не равны друг другу.

Это имеет место при условии:

При изменении t от 0 до ∞ отдельные функции ep1t и ep2t убывают по экспоненциальному закону от 1 до 0, причем вторая из них убывает быстрее, при этом их разность ep1t — ep2t ≥ 0. Из этого следует вывод, что искомая функция тока i(t) в крайних точках при t = 0 и при t = ∞ равна нулю, а в промежутке времени 0

4.4. Переходные процессы в RLC-цепях

4.4. Переходные процессы в RLC-цепях

Рассмотрим переходные процессы в RLC-цепях на примере цепи последовательного колебательного контура рис. 4.3,а, потери в котором будем учитывать путем включения в цепь резистораR.

Рис.4.3. RLC-цепь (а) и переходные процессы в ней (б) и (в).

Переходные процессы в последовательном колебательном контуре при нулевых начальных условиях. Установим ключ К в положение 1, и подключим входное воздействие к контуру. Под действием подключенного источника u в контуре потечет ток i, который создаст напряжения uR, uL, uC .

На основании второго закона Кирхгофа для этого контура можно записать следующее уравнение

.

Учитывая, что будем иметь

. (4.34)

Общее решение уравнения (4.34) будем искать в виде суммы свободной uС св и принужденной uС пр составляющих:

. (4.35)

Свободная составляющая определяется решением однородного дифференциального уравнения, которое получается из (4.34) при u = 0

. (4.36)

Решение (4.36) зависит от корней характеристического уравнения, которое получается из (4.36) и имеет вид

. (4.37)

Корни этого уравнения определяются только параметрами цепи R, L ,C и равны

, (4.38)

где α = R/2L – коэффициент затухания контура;

– резонансная частота контура.

Из (4.38) видно, что корни р1 и р2 зависят от характеристического сопротивления контура и могут быть:

при R > 2ρ вещественными и различными;

при R 2ρ свободная составляющая будет равна:

. (4.39)

Пусть входное воздействие u = U = const, тогда принужденная составляющая uпр = U. Учитывая выражение (4.39) и что uпр = U выражение (4.35) примет вид:

. (4.40)

Зная uС находим ток в контуре

. (4.41)

Для определения постоянных интегрирования А1 и А2 запишем начальные условия для uC и i при t = 0:

(4.42)

Решая систему уравнений (4.42) получаем:

;

.

Подставляя А1 и А2 в уравнения (4.40) и (4.41) и учитывая, что в соответствии с (4.38) p1 p2=1/LC будем иметь:

; (4.43)

. (4.44)

Так как , то

. (4.45)

Графики изменения uС, i, uL в последовательном колебательном контуре при условии R > 2ρ приведены на рис. 4.3,б).

Моменты времени t1 и t2 определяются соответственно из условий

,

; .

Анализ графиков, описываемых выражениями (4.43 – 4.45) показывает, что при R > 2ρ (при больших потерях) в контуре происходят апериодические процессы.

Рассмотрим процессы в контуре при R 2ρ, то корни р1 и р2 в (4.38) будут вещественны и различны и решение уравнения (4.36) будет иметь вид

. (4.54)

Напряжение uC создает ток в цепи

. (4.55)

Для определения постоянных интегрирования А1 и А2 положим t = 0 и учтем, что на момент коммутации uC = U, i = 0, тогда из (4.54) и (4.55) получим

(4.56)

Решая систему уравнений (4.56) находим

;

.

Подставляя А1 и А2 в (4.54) и (4.55) получаем уравнения для напряжения uC и тока i в цепи контура

. (4.57)

. (4.58)

Из выражений (4.57) и (4.58) видно, что при отключении входного воздействия от цепи контура, который имеет большое затухание (R > 2ρ) происходит апериодический разряд емкости С. Запасенная до отключения входного воздействия энергия в емкости WС = CU2/2 расходуется на покрытие тепловых потерь в резисторе R и создания магнитного поля в индуктивности L. Затем энергия электрического поля емкости WС и магнитная энергия индуктивности WL расходуется в резисторе R.

Найдем закон изменения напряжения uC и тока i в цепи, когда контур обладает малыми потерями, т.е. при условии R

Как найти корни характеристического уравнения rlc цепь

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

  • непосредственно на основе дифференциального уравнения вида (2) (см. лекцию №24), т.е. путем исключения из системы уравнений, описывающих электромагнитное состояние цепи на основании первого и второго законов Кирхгофа, всех неизвестных величин, кроме одной, относительно которой и записывается уравнение (2);
  • путем использования выражения для входного сопротивления цепи на синусоидальном токе;
  • на основе выражения главного определителя.

Согласно первому способу в предыдущей лекции было получено дифференциальное уравнение относительно напряжения на конденсаторе для последовательной R-L-C-цепи, на базе которого записывается характеристическое уравнение.

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

Применение второго и третьего способов составления характеристического уравнения рассмотрим на примере цепи рис. 1.

Составление характеристического уравнения по методу входного сопротивления заключается в следующем:

записывается входное сопротивление цепи на переменном токе;

j w заменяется на оператор р;

полученное выражение приравнивается к нулю.

совпадает с характеристическим.

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

Для цепи на рис. 1 относительно зажимов источника

.

Заменив j w на р и приравняв полученное выражение к нулю, запишем

. (1)

При составлении характеристического уравнения на основе выражения главного определителя число алгебраических уравнений, на базе которых он записывается, равно числу неизвестных свободных составляющих токов. Алгебраизация исходной системы интегро-дифференциальных уравнений, составленных, например, на основании законов Кирхгофа или по методу контурных токов, осуществляется заменой символов дифференцирования и интегрирования соответственно на умножение и деление на оператор р. Характеристическое уравнение получается путем приравнивания записанного определителя к нулю. Поскольку выражение для главного определителя не зависит от правых частей системы неоднородных уравнений, его составление можно производить на основе системы уравнений, записанных для полных токов.

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

Отсюда выражение для главного определителя этой системы

.

Приравняв D к нулю, получим результат, аналогичный (1).

Общая методика расчета переходных процессов классическим методом

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

  1. Запись выражения для искомой переменной в виде
    . (2)
  2. Нахождение принужденной составляющей общего решения на основании расчета установившегося режима послекоммутационной цепи.
  3. Составление характеристического уравнения и определение его корней (для цепей, описываемых дифференциальными уравнениями первого порядка, вместо корней можно находить постоянную времени t — см. лекцию №26). Запись выражения свободной составляющей в форме, определяемой типом найденных корней.
  4. Подстановка полученных выражений принужденной и свободной составляющих в соотношение (2).
  5. Определение начальных условий и на их основе – постоянных интегрирования.

Примеры расчета переходных процессов классическим методом

1. Переходные процессы в R-L цепи при ее подключении к источнику напряжения

Такие процессы имеют место, например, при подключении к источнику питания электромагнитов, трансформаторов, электрических двигателей и т.п.

Рассмотрим два случая:

а)

б) .

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

. (3)

Тогда для первого случая принужденная составляющая тока

. (4)

,

откуда и постоянная времени .

. (5)

Подставляя (4) и (5) в соотношение (3), запишем

.

В соответствии с первым законом коммутации . Тогда

,

откуда .

Таким образом, ток в цепи в переходном процессе описывается уравнением

,

а напряжение на катушке индуктивности – выражением

.

Качественный вид кривых и , соответствующих полученным решениям, представлен на рис. 3.

При втором типе источника принужденная составляющая рассчитывается с использованием символического метода:

,

где .

.

Выражение свободной составляющей не зависит от типа источника напряжения. Следовательно,

.

Поскольку , то

.

Таким образом, окончательно получаем

. (6)

Анализ полученного выражения (6) показывает:

  1. При начальной фазе напряжения постоянная интегрирования А=0. Таким образом, в этом случае коммутация не повлечет за собой переходного процесса, и в цепи сразу возникнет установившийся режим.
  2. При свободная составляющая максимальна по модулю. В этом случае ток переходного процесса достигает своей наибольшей величины.

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

, максимум тока имеет место примерно через . В пределе при .

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

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

2. Переходные процессы при отключении катушки индуктивности от источника питания

При размыкании ключа в цепи на рис. 5 принужденная составляющая тока через катушку индуктивности .

,

откуда и .

В соответствии с первым законом коммутации

.

Таким образом, выражение для тока в переходном режиме

и напряжение на катушке индуктивности

. (7)

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

3. Заряд и разряд конденсатора

При переводе ключа в положение 1 (см. рис. 6) начинается процесс заряда конденсатора:

.

Принужденная составляющая напряжения на конденсаторе .

Из характеристического уравнения

определяется корень . Отсюда постоянная времени .

.

При t=0 напряжение на конденсаторе равно (в общем случае к моменту коммутации конденсатор может быть заряженным, т.е. ). Тогда и

.

Соответственно для зарядного тока можно записать

.

В зависимости от величины : 1 — ; 2 — ; 3 — ; 4 — — возможны четыре вида кривых переходного процесса, которые иллюстрирует рис. 7.

При разряде конденсатора на резистор (ключ на рис.6 переводится в положение 2) . Постоянная времени .

Тогда, принимая, что к моменту коммутации конденсатор был заряжен до напряжения (в частном случае ), для напряжения на нем в переходном режиме можно записать

.

Соответственно разрядный ток

. (8)

Как видно из (8), во избежание значительных бросков разрядного тока величина должна быть достаточно большой.

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

  1. Основы теории цепей: Учеб. для вузов /Г.В.Зевеке, П.А.Ионкин, А.В.Нетушил, С.В.Страхов. –5-е изд., перераб. –М.: Энергоатомиздат, 1989. -528с.
  2. Бессонов Л.А. Теоретические основы электротехники: Электрические цепи. Учеб. для студентов электротехнических, энергетических и приборостроительных специальностей вузов. –7-е изд., перераб. и доп. –М.: Высш. шк., 1978. –528с.
  3. Теоретические основы электротехники. Учеб. для вузов. В трех т. Под общ. ред. К.М.Поливанова. Т.1. К.М.Поливанов. Линейные электрические цепи с сосредоточенными постоянными. –М.: Энергия- 1972. –240с.
  1. Составить характеристическое уравнение для цепи на рис. 1, используя выражение входного сопротивления относительно места разрыва ветви с резистором .
  2. Может ли в одной части линейной цепи протекать колебательный переходный процесс, а в другой – апериодический?
  3. Для чего в схеме на рис. 5 служит цепочка, состоящая из диода и резистора R?
  4. Почему можно разрывать ветвь с конденсатором и нельзя – ветвь с индуктивным элементом?
  5. Почему корни характеристического уравнения не зависят от того, относительно какой переменной было записано дифференциальное уравнение?
  6. Для цепи на рис. 8 составить характеристическое уравнение и определить, при каких значениях переходный процесс в ней будет носить апериодический характер, если .

Ответ: .

Определить в цепи на рис. 9, если , , , .

Ответ: .

источники:

http://support17.com/rtcs-lecture-27/

http://toehelp.ru/theory/toe/lecture25/lecture25.html

Численные методы решения нелинейных уравнений

Корни нелинейных уравнений

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

f(x)=0,qquad mathsf{(3.1)}

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

Требуется найти корни нелинейного уравнения (3.1), т.е. числа x_{ast1},x_{ast2},ldots которые путем подстановки их в (3.1) превращают уравнение в верное числовое равенство. Числа x_{ast1},x_{ast2},ldots называются также нулями функции f(x).

На практике часто бывает выгодно уравнение (3.1) заменить равносильным ему уравнением (уравнения равносильны, если имеют одинаковые корни):

f_1(x)-f_2(x)=0,

(3.2)

где функции f_1(x),,f_2(x) — более простые, чем функция f(x). Тогда при задании уравнения в виде (3.1) нулями функции f(x) являются точки пересечения f(x) с осью Ox (рис. 3.1,д), а при задании в виде (3.2) — абсциссы точек пересечения функций f_1(x) и f_2(x) (рис. 3.1,б).

Точки пересечения функции с осью абсцисс

Замечания

1. Если f(x)=a_nx^n+a_{n-1}x^{n-1}+ldots+a_0=P_n(x) — алгебраический многочлен, то уравнение (3.1) называется также алгебраическим n-й степени:

P_n(x)equiv a_nx^n+a_{n-1}x^{n-1}+ldots+a_0=0,

(3.3)

где a_n,ldots,a_0 — действительные числа, коэффициенты уравнения.

График сеточной функции

2. На практике встречаются задачи нахождения корней уравнения f(x_i)=0, левая часть которого задана сеточной функцией y_i=f(x_i),~i=1,2,ldots,N (рис. 3.2).

Число x_{ast} есть корень уравнения (3.1) кратности k, если при x=x_{ast} вместе с функцией f(x) обращаются в нуль ее производные до (k-1)-го порядка включительно, т.е. f(x_{ast})= f'(x_{ast})= ldots= f^{(k-1)}(x_{ast})=0, а f^{(k)}(x_{ast})ne0. Корень кратности к = 1 называется простым. На рис 3.1,с простыми корнями являются x_{ast1},x_{ast2},x_{ast3}, a корни x_{ast4},x_{ast5} — кратные.

В соответствии с классическим результатом Галуа алгебраическое уравнение (3.1) при ngeqslant5 не имеет решения в замкнутом (формульном) виде. Сеточные уравнения вообще не имеют формульных решений. Поэтому корни алгебраических (n>2), трансцендентных и сеточных уравнений, как правило, определяются приближенно с заданной точностью.

Решение осуществляется в два этапа:

Первый этап. Находятся отрезки [a_i,b_i], внутри каждого из которых содержится один простой или кратный корень (x_{ast i}in[a_i,b_i]) (см. рис. 3.1). Этот этап называется процедурой отделения корней. По сути на нем осуществляется грубое нахождение корней x_{ast i}.

Второй этап. Грубое значение каждого корня x_{ast i} уточняется до заданной точности одним из численных методов, в которых реализуются последовательные приближения. Порядок (скорость) сходимости метода определяется так же, как в методе простых итераций.


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

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

Теорема 3.1 (о числе корней алгебраического уравнения (3.3)). Алгебраическое уравнение (3.3) n-й степени имеет ровно n корней, действительных или комплексных, при условии, что каждый корень считается столько раз, какова его кратность.

Теорема 3.2 (о свойстве парной сопряженности комплексных корней уравнения (3.3)). Если x_{ast i}=alpha+beta i — корень алгебраического уравнения (3.3) кратности k, то число overline{x_{ast i}}=alpha-beta i также является корнем той же кратности.

Следствие. Алгебраическое уравнение нечетной степени имеет по крайней мере один действительный корень.

Теорема 3.3 (об оценке модулей корней уравнения (3.3)). Пусть

A=max bigl{|a_{n-1}|,ldots,|a_0|bigr},qquad B=max bigl{|a_n|,|a_{n-1}|,ldots, |a_1|bigr},

где a_k,~k=overline{0,n} — коэффициенты уравнения a_nx^n+a_{n-1}x^{n-1}+ ldots+ a_{1}x+a_0=0. Тогда модули всех корней x_{ast i}~(i=1,2,ldots,n) уравнения удовлетворяют неравенству

frac{1}{1+dfrac{B}{|a_0|}}<|x_{ast i}| leqslant 1+frac{A}{|a_n|},quad i=1,2,ldots,n,

(3.4)

т.е. корни уравнения расположены в кольце.

Следствие. Числа r=frac{1}{1+dfrac{B}{|a_0|}} и R=1+ frac{A}{|a_n|} являются соответственно нижней и верхней границами положительных корней алгебраического уравнения: r<x_{ast i}^{+}<R. Аналогично числа -R и -r служат нижней и верхней границами отрицательных корней уравнения: -R<x_{ast i}^{-}<-r.

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

Теорема 3.4 (теорема Лагранжа о верхней границе положительных корней уравнения (3.3)). Пусть a_n>0 и a_i — первый отрицательный коэффициент в последовательности a_n,a_{n-1},a_{n-2},ldots,a_1,a_0;~C — наибольшая из абсолютных величин отрицательных коэффициентов. Тогда за верхнюю границу положительных корней уравнения (3.3) может быть принято число

R=1+sqrt[LARGE{n-i}]{frac{C}{a_n}},.

(3.5)

Теорема 3.5 (о нижних и верхних границах положительных и отрицательных корней алгебраического уравнения). Пусть R — верхняя граница положительных корней уравнения P_n(x)=0,

R_1 — верхняя граница положительных корней уравнения P^1(x)= x^nP_n! left(frac{1}{x}right)=0,
R_2 — верхняя граница положительных корней уравнения P^2(x)= P_n(-x)=0,
R_3 — верхняя граница положительных корней уравнения P^3(x)= x^nP_n! left(-frac{1}{x}right)=0.

Тогда положительные корни x_{ast i}^{+} и отрицательные корни x_{ast i}^{-} уравнения (3.3) удовлетворяют неравенствам

frac{1}{R_1}leqslant x_{ast i}^{+}leqslant R,qquad-R_2 leqslant x_{ast i}^{-}leqslant-frac{1}{R_3},.

(3.6)

Теорема 3.6 (теорема Декарта о количестве действительных корней алгебраических уравнений). Число S_1 положительных корней (с учетом их кратностей) алгебраического уравнения P_n(x)=0 равно числу перемен знаков в последовательности коэффициентов a_n,a_{n-1},ldots,a_0 (коэффициенты, равные нулю, не учитываются) многочлена P_n(x) или меньше этого числа на четное число. Число S_2 отрицательных корней (с учетом их кратностей) алгебраического уравнения P_n(x)=0 равно числу перемен знаков в последовательности a_n,a_{n-1},ldots,a_0 многочлена P_n(-x) или меньше этого числа на четное число.

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

Следствие. Если при каком-нибудь k выполнено неравенство a_k^2 leqslant a_{k-1}a_{k+1}, то уравнение (3.3) имеет по крайней мере одну пару комплексных корней.

Для отделения корней применяется следующая теорема.

Теорема 3.8. Если функция f(x), определяющая уравнение f(x)=0, на концах отрезка [a_i,b_i] принимает значения разных знаков, т.е. f(a_i)cdot f(b_i)<0, то на этом отрезке содержится по крайней мере один корень уравнения. Если же f(x) непрерывна и дифференцируема и ее первая производная сохраняет знак внутри отрезка [a_i,b_i] Bigl(mathop{operatorname{sign}}limits_{xin[a_i,b_i]} f'(x)=text{const}Bigr), то на [a_i,b_i] находится только один корень уравнения.


Способы отделения корней

В вычислительной практике обычно используются следующие способы отделения корней:

1) средствами машинной графики: функция f(x) представляется на дисплее и приближенно определяются отрезки, которым принадлежат точки x_{ast i};

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

3) формированием простых функций f_1(x) и f_2(x) таких, что получается равносильное уравнение в виде (3.2), и дальнейшим построением графиков этих функций (см. рис. 3.1,б).

▼ Примеры 3.1-3.3

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

P_5(x)= x^5+2x^4-5x^3+8x^2-7x-3=0.

Решение

В данной задаче n=5,~ a_5=1,~ a_4=2,~ a_3=-5,~ a_2=8,~ a_1=-7,~ a_0=-3. Согласно теореме 3.1 уравнение имеет пять корней. Поскольку n=5, то по следствию из теоремы 3.2 уравнение имеет по крайней мере один действительный корень.

Оценим модули корней по теореме 3.3. Так как

A=max bigl{|2|,|-5|,|8|,|-7|,|-3|bigr}=8,qquad B=max bigl{|1|,|2|,|-5|, |8|,|-7|bigr}=8,

то frac{1}{1+frac{8}{|-3|}}<|x_{ast i}|<1+frac{8}{|1|} или frac{3}{11}<|x_{ast i}|<9, т.е. все корни лежат внутри данного кольца. По следствию из теоремы 3.3 это означает, что положительные корни удовлетворяют неравенству frac{3}{11}<x_{ast i}^{+}<9, а отрицательные — неравенству -9<x_{ast i}^{-}<-frac{3}{11}.

Применим теоремы 3.4 и 3.5 для уточнения приведенных результатов. Найдем верхнюю границу положительных корней. Так как a_3=-5 — первый отрицательный коэффициент в последовательности 1,2,-5,8,-7,-3, то i=3, а C=max bigl{|-5|,|-7|,|-3|bigr}=7 — наибольшая из абсолютных величин отрицательных коэффициентов. Следовательно, R=1+sqrt[LARGE{(5-3)}]{frac{7}{1}}= 1+sqrt{7}cong3,!646.

Найдем нижнюю границу положительных корней. Составим уравнение:

begin{aligned}P^{1}(x)&= x^nP_n! left(frac{1}{x}right)= x^5P_5!left(frac{1}{x} right)= x^5! left(frac{1}{x^5}+ frac{2}{x^4}-frac{5}{x^3}+frac{8}{x^2}-frac{7}{x}-3right)=\ &=-3x^5-7x^4+8x^3-5x^2+2x+1=0.end{aligned}

или 3x^5+7x^4-8x^3+5x^2-2x-1=0 (старший коэффициент должен быть положительным). Для этого уравнения i=3,~ C=max bigl{|-8|,|-2|,|-1|bigr}=8, поэтому R_1=1+sqrt[LARGE{(5-3)}]{frac{8}{3}}=1+sqrt{frac{8}{3}}cong2,!632. Отсюда frac{1}{R_1}=0,!38 leqslant x_{ast i}^{+}leqslant R=3,!646.

Уточним границы отрицательных корней. Составим уравнение:

P^2(x)=P_5(-x)= или x^5-2x^4-5x^3-8x^2-7x+3=0.

Для этого уравнения i=4,~ C=maxbigl{|-2|,|-5|,|-8|,|-7|bigr}=8, поэтому R_2=1+ sqrt[LARGE{5-4}]{frac{8}{1}}=9. Составим уравнение

begin{aligned}P^3(x)&= x^nP_n! left(-frac{1}{x}right)= x^5P_5! left(-frac{1}{x}right)= x^5! left(-frac{1}{x^5}+frac{2}{x^4}+frac{5}{x^3}+frac{8}{x^2}+frac{7}{x}-3right)=\ &=-3x^5+7x^4+8x^3+2x-1=0.end{aligned}

или 3x^5-7x^4-8x^3-5x^2-2x+1=0. Для этого уравнения i=4,~ C=max bigl{|-7|,|-8|,|-5|,|-2|bigr}=8, поэтому R_3=1+sqrt[LARGE{5-4}]{frac{8}{3}}=1+ frac{8}{3}cong3,!666. Отсюда находим: -R_2=-9 leqslant x_{ast i}^{-}leqslant-frac{1}{R_3}=-0,!272. Заметим, что данный результат совпадает с полученным ранее.

Исследуем структуру корней уравнения. Так как квадрат каждого некрайнего коэффициента больше произведения двух его соседних коэффициентов, то по теореме 3.7 необходимое условие действительности всех корней уравнения выполняется.

На основе теоремы 3.6 определим число положительных и отрицательных корней. Выписываем коэффициенты многочлена P_n(x)=P_5(x)colon, 1,,2,-5,,8,-7,-3. Так как число перемен знака S_1=3, то число положительных корней равно трем или меньше на четное число, т.е. равно 1. Далее выписываем коэффициенты многочлена P_5(-x)colon, -1,,2,,5,,8,,7,-3. Так как число перемен знаков S_2=2, то число отрицательных корней равно двум или меньше на четное число, т.е. их вообще нет.

Пример 3.2. Отделить корни кубического уравнения x^3-x+1=0.

Решение

Точка пересечения кубической параболы и прямой

Согласно теореме 3.1 уравнение имеет три корня, среди которых по крайней мере один действительный (следствие из теоремы 3.2, поскольку это уравнение нечетной степени).

Оценим модули корней уравнения по теореме 3.3. Так как

A=max bigl{|0|,|-1|,|1|bigr}=1,quad B=max bigl{|1|,|0|,|-1|bigr}=1, то frac{1}{1+dfrac{1}{|1|}}<|x_{ast i}|<1+frac{1}{|1|} или frac{1}{2}<|x_{ast i}|<2.

Отсюда frac{1}{2}<x_{ast i}^{+}<2 и -2<x_{ast i}^{+}<-frac{1}{2}.

Определим число положительных и отрицательных корней. Выписываем коэффициенты многочлена P_3(x)colon, 1,,0,-1,,1. Так как число перемен знака S_1=2 (нулевой коэффициент не учитывается), то число положительных корней равно двум или меньше на четное число, т.е. они отсутствуют. Далее выписываем коэффициенты многочлена P_3(-x)=-x^3+x+1colon, -1,,0,,1,,1. Так как число перемен знака S_2=1 (нулевой коэффициент не учитывается), то число отрицательных корней равно единице.

Отделим корни третьим способом. Для этого преобразуем уравнение к равносильному виду (3.2): x^3=x-1 и найдем точки пересечения фафиков y=x^3 и y=x-1 (рис. 3.3).

Очевидно, корень уравнения x_{ast}in[-2;-1].

Пример 3.3. Отделить корни уравнения третьего порядка x^3-x^2-9x+9=0.

Решение


Процедура уточнения положения корня функции

Метод половинного деления

Пусть дано уравнение f(x)=0 и отделен простой корень x_{ast}, т.е. найден такой отрезок [a_0,b_0], что x_{ast}in[a_0,b_0] и на концах отрезка функция имеет значения, противоположные по знаку (f(a_0)cdot f(b_0)<0). Отрезок [a_0,b_0] называется начальным интервалом неопределенности, потому что известно, что корень ему принадлежит, но его местоположение с требуемой точностью не определено.

Процедура уточнения положения корня заключается в построении последовательности вложенных друг в друга отрезков, каждый из которых содержит корень уравнения. Для этого находится середина текущего интервала неопределенности c_k=frac{a_k+b_k}{2},~ k=0,1,2,ldots, и в качестве следующего интервала неопределенности из двух возможных выбирается тот, на концах которого функция f(x) имеет разные знаки (рис. 3.5).

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


Алгоритм метода половинного деления

1. Найти начальный интервал неопределенности L_0=[a_0,b_0] одним из методов отделения корней, задать малое положительное число varepsilon. Положить k=0.

2. Найти середину текущего интервала неопределенности: c_k=frac{a_k+b_k}{2}.

3. Если f(a_k)cdot f(c_k)<0, то положить a_{k+1}=a_k,~ b_{k+1}= c_k, а если f(c_k)cdot f(b_k)<0, то принять a_{k+1}=c_k,~ b_{k+1}= b_k. В результате находится текущий интервал неопределенности L_{k+1}= [a_{k+1},b_{k+1}].

4. Если b_{k+1}-a_{k+1}leqslant varepsilon, то процесс завершить: x_{ast}in L_{k+1}= [a_{k+1},b_{k+1}]. Приближенное значение корня можно найти по формуле x_{ast}cong frac{a_{k+1}+b_{k+1}}{2}.

Если b_{k+1}-a_{k+1}>varepsilon, положить k=k+1 и перейти к п.2.

Замечания

1. Метод имеет линейную, но безусловную сходимость, и его погрешность за каждую итерацию уменьшается в два раза:

|b_1-a_1|=frac{|b_0-a_0|}{2};quad |b_2-a_2|= frac{|b_1-a_1|}{2}= frac{|b_0-a_0|}{2^2},quad ldots,quad |b_k-a_k|= |b_0-a_0|cdot2^{-k}.

Из последнего соотношения можно оценить число итераций k для достижения заданной точности varepsiloncolon

|b_0-a_0|cdot2^{-k} leqslant varepsilon;qquad k geqslant log_{2}frac{|b_0-a_0|}{varepsilon},.

Отсюда видно, что, например, для достижения точности varepsilonapprox10^{-3} при (b_0-a_0)cong1 необходимо выполнить примерно десять итераций.

2. К достоинствам метода следует отнести то, что он позволяет найти простой корень уравнения x_{ast}in[a_0,b_0] любых непрерывных функций f(x) при любых значениях a_0,,b_0 таких, что f(a_0)cdot f(b_0)<0. Недостатки метода — он не обобщается на системы нелинейных уравнений и не может использоваться для нахождения корней четной кратности.

▼ Примеры 3.4-3.6

Пример 3.4. Найти корень уравнения x^3-x+1=0 методом половинного деления с точностью varepsilon_1=0,!01 и varepsilon_2=0,!0005.

Решение

Пример 3.5. Найти корень уравнения x^3-x^2-9x+9=0 методом половинного деления с точностью varepsilon=0,!001.

Решение

В примере 3.3 были отделены корни уравнения. Уточним корень, лежащий на отрезке [2,!5;4]. Результаты расчетов поместим в табл. 3.2.

begin{aligned} mathit{Table~3.2}~&\ begin{array}{|c|c|c|c|c|c|c|c|} hline begin{matrix}{}\[-2pt]{}end{matrix} k& f(a_k)& a_k& b_k& f(b_k)& c_k=dfrac{a_k+b_k}{2}& f(c_k)& b_k-a_k\hline 0& -4,!125& 2,!5& 4& 21& 3,!25& 3,!5156& 1,!5\hline 1& -4,!125& 2,!5& 3,!25& 3,!5156& 2,!875& -1,!3769& 0,!75\hline 2& -1,!3769& 2,!875& 3,!25& 3,!5156& 3,!0625& 0,!78149& 0,!375\hline 3& -1,!3769& 2,!875& 3,!0625& 0,!7815& 2,!96875& -0,!3672& 0,!1875\hline 4& -0,!3672& 2,!9687& 3,!0625& 0,!7815& 3,!01562& 0,!18945& 0,!09375\hline 5& -0,!3672& 2,!9687& 3,!0156& 0,!1894& 2,!99218& -0,!0933& 0,!04687\hline 6& -0,!0933& 2,!9921& 3,!0156& 0,!1894& 3,!0039& 0,!0469& 0,!02344\hline 7& -0,!0933& 2,!9921& 3,!0039& 0,!0469& 2,!99804& -0,!02349& 0,!01172\hline 8& -0,!02349& 2,!99804& 3,!0039& 0,!0469& 3,!00097& 0,!011647& 0,!00586\hline end{array}& end{aligned}

В результате найден интервал [2,!99804;3,!0039] и приближенное значение корня x_{ast}cong3,!00097.

Пример 3.6. Отделить корни трансцендентного уравнения x^2-e^{-x}=0 и найти один из корней с точностью varepsilon=0,!01.

Решение

1. Можно отделить корни уравнения, преобразовав его к равносильному виду x^2=e^{-x} и определив абсциссу точек пересечения графиков функций y=f_1(x)=x^2 и y=f_2(x)=e^{-x}colon, x_{ast}in[0,!5;1]. При этом f(0,!5)cdot f(1)<0.

2. Уточним корень. Результаты расчетов приведем в табл. 3.3.

begin{aligned} mathit{Table~3.3}~&\ begin{array}{|c|c|c|c|c|c|c|c|} hline begin{matrix}{}\[-2pt]{}end{matrix} k& f(a_k)& a_k& b_k& f(b_k)& c_k=dfrac{a_k+b_k}{2}& f(c_k)& b_k-a_k\hline 0& -0,!3565& 0,!5& 1& 0,!6321& 0,!75& 0,!09013& 0,!5\hline 1& -0,!3565& 0,!5& 0,!75& 0,!09013& 0,!625& -0,!1446& 0,!251\hline 2& -0,!1446& 0,!625& 0,!75& 0,!09013& 0,!6875& -0,!0301& 0,!125\hline 3& -0,!0301& 0,!6875& 0,!75& 0,!09013& 0,!7187& 0,!0292& 0,!0625\hline 4& -0,!0301& 0,!6875& 0,!7187& 0,!0292& 0,!7031& -0,!00069& 0,!0312\hline 5& -0,!00069& 0,!7031& 0,!7187& 0,!0292& 0,!7109& 0,!0142& 0,!0156\hline 6& -0,!00069& 0,!7031& 0,!7109& 0,!0142& 0,!707& 0,!0067& 0,!0078\hline end{array}& end{aligned}

Вычисления показывают, что b_6-a_6=0,!7109-0,!7031=0,!0078< varepsilon= 0,!01.

Поэтому x_{ast}cong frac{0,!7109+0,!7031}{2}= c_6=0,!707.


Геометрическая интерпретация метода хорд

Метод хорд

Этот метод при тех же предположениях обеспечивает более быстрое нахождение корня, чем метод половинного деления. Для этого отрезок [a,b] делится не пополам, а в отношении |f(a)|,colon|f(b)|.

Геометрически метод хорд эквивалентен замене кривой y=f(x) хордой, проходящей через точки (a,f(a)) и (b,f(b)) (рис. 3.6).

Уравнение хорды AB имеет вид frac{x-a}{b-a}= frac{y-f(a)}{f(b)-f(a)}. Полагая x=x^{(1)} и y=0, получаем

x^{(1)}= a-frac{f(a)}{f(b)-f(a)}cdot(b-a).

Предположим, что вторая производная f''(x) сохраняет постоянный знак, и рассмотрим два случая: f(a)>0,~ f''(a)>0 (рис. 3.7,д) и f(a)<0,~ f''(x)>0 (рис. 3.7,б). Случай f''(x)<0 сводится к рассматриваемому, если уравнение записать в форме: -f(x)=0. Первому случаю (см. рис. 3.7,д) соответствует формула (3.7), а второму случаю (3.8) (см. рис. 3.7,б):

begin{aligned}&x^{(0)}=b,\ &x^{(k+1)}=x^{(k)}-frac{f(x^{(k)})}{f(x^{(k)})-f(a)} bigl(x^{(k)}-abigr),quad k=0,1,2,ldotsend{aligned}

(3.7)

begin{aligned}&x^{(0)}=a,\ &x^{(k+1)}=x^{(k)}-frac{f(x^{(k)})}{f(b)-f(x^{(k)})}bigl(b-x^{(k)}bigr),quad k=0,1,2,ldots end{aligned}

(3.8)

В первом случае остается неподвижным конец a, а во втором случае конец b.

Метод хорд

Замечание. Для выявления неподвижного конца используется условие f''(x)cdot f(t)>0, где t=a или t=b. Если неподвижен конец a, применяется формула (3.7), а если конец b, — формула (3.8).

Пример 3.7. Найти корень уравнения x^3-x+1=0 методом хорд с точностью varepsilon=0,!001.

Решение

Рассмотрим задачу нахождения корня на отрезке [-2;-1] (см. пример 3.2). Так как f(a)=f(-2)=-5, f(b)=f(-1)=-1, a f''(x)=3x^2-1>0 на отрезке [-2;-1], то f''(x)cdot f(b)>0 и, следовательно, имеем второй случай (см. рис. 3.7,б).

Положим x^{(0)}=a=-2,~k=0. Тогда по формуле (3.8) получаем

x^{(1)}= x^{(0)}-frac{f(x^{(0)})}{f(b)-f(x^{(0)})}bigl(b-x^{(0)}bigr)=-2-frac{-5}{1-(-5)}cdot(-1-(-2))=-1,!1666.

Так как Delta_1=|x^{(1)}-x^{(0)}|=0,!8334>varepsilon, то положим k=1 и продолжим процесс:

x^{(2)}= x^{(1)}-frac{f(x^{(1)})}{f(b)-f(x^{(1)})}bigl(b-x^{(1)}bigr)=-1,!1666-frac{-0,!5786}{1-0,!5786}cdot bigl(-1-(-1,!1666)bigr)=-1,!3953.

Так как Delta_2=|x^{(2)}-x^{(1)}|=0,!2287>varepsilon, то положим k=2 и продолжим процесс:

x^{(3)}= x^{(2)}-frac{f(x^{(2)})}{f(b)-f(x^{(2)})}bigl(b-x^{(2)}bigr)=-1,!3953-frac{-0,!3214}{1+0,!3214}cdot bigl(-1-(-1,!3953)bigr)=-1,!2991.

Поскольку Delta_3=|x^{(3)}-x^{(2)}|=0,!0962>varepsilon, положим k=3colon

x^{(4)}= x^{(3)}-frac{f(x^{(3)})}{f(b)-f(x^{(3)})}bigl(b-x^{(3)}bigr)=-1,!2991-frac{-0,!1064}{1+0,!1064}cdot bigl(-1-(-1,!2991)bigr)=-1,!3347.

Так как Delta_4=|x^{(4)}-x^{(3)}|=0,!0356>varepsilon, положим k=4colon

x^{(5)}= x^{(4)}-frac{f(x^{(4)})}{f(b)-f(x^{(4)})}bigl(b-x^{(4)}bigr)=-1,!3347-frac{-0,!043}{1+0,!043}cdot bigl(-1-(-1,!3347)bigr)=-1,!3209.

Поскольку Delta_5=|x^{(5)}-x^{(4)}|=0,!0138>varepsilon, положим k=5colon

x^{(6)}= x^{(5)}-frac{f(x^{(5)})}{f(b)-f(x^{(5)})}bigl(b-x^{(5)}bigr)=-1,!3209-frac{-0,!0162}{1+0,!0162}cdot bigl(-1-(-1,!3209)bigr)=-1,!3261.

Так как Delta_6=|x^{(6)}-x^{(5)}|=0,!0052>varepsilon, положим k=6colon

x^{(7)}= x^{(6)}-frac{f(x^{(6)})}{f(b)-f(x^{(6)})}bigl(b-x^{(6)}bigr)=-1,!3261-frac{-0,!0059}{1+0,!0059}cdot bigl(-1-(-1,!3261)bigr)=-1,!3241.

Поскольку Delta_7=|x^{(7)}-x^{(6)}|=0,!0020>varepsilon, положим k=7colon

x^{(8)}= x^{(7)}-frac{f(x^{(7)})}{f(b)-f(x^{(7)})}bigl(b-x^{(7)}bigr)=-1,!3241-frac{-0,!00217}{1+0,!00217}cdot bigl(-1-(-1,!3241)bigr)=-1,!3248.

Так как Delta_8=|x^{(8)}-x^{(7)}|=0,!0007<varepsilon=0,!001, то корень уравнения x_{ast}cong-1,!3248. Из анализа поведения Delta_k следует, что сходимость метода хорд линейная, однако более быстрая, чем сходимость метода половинного деления.


Абсцисса точки пересечения прямой и кривой

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

Пусть известно, что корень x_{ast} уравнения f(x)=0 лежит на отрезке G={aleqslant xleqslant b}.

Методика решения задачи

1. Уравнение f(x)=0 равносильным преобразованием привести к виду x=varphi(x). Это преобразование может быть осуществлено различными путями, но для сходимости нужно обеспечить выполнение условия |varphi'(x)|leqslantchi<1 (chi — некоторая константа). При этом задача сводится к нахождению абсциссы точки пересечения прямой y=x и кривой y=varphi(x) (рис. 3.8).

2. Задать начальное приближение x^{(0)}in[a,b] и малое положительное число varepsilon. Положить k=0.

3. Вычислить следующее приближение:

x^{(k+1)}= varphi(x^{(k)}).

(3.9)

4. Если |x^{(k+1)}-x^{(k)}|leqslantvarepsilon, итерации завершаются и x_{ast}cong x^{(k+1)}. Если |x^{(k+1)}-x^{(k)}|>varepsilon, положить k=k+1 и перейти к п.3.

Замечание. В качестве условия завершения итераций при известном значении chi может быть использовано неравенство

bigl|x^{(k+1)}-x^{(k)}bigr|leqslant frac{1-chi}{chi}cdot varepsilon.

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

Отображение (функция) varphi(x) называется сжимающим в области G с коэффициентом chi~(0leqslantchi<1), если для любых двух x',,x'' из G выполнено неравенство

bigl|varphi(x'')-varphi(x')bigr|leqslantchicdotbigl|x''-x'bigr|.

(3.10)

Теорема 3.9 (о сходимости метода простых итераций и единственности получаемого численного решения)

Пусть выполнены условия:

1. Нелинейное уравнение x=varphi(x) имеет решение x_{ast}in G.

2. Отображение varphi(x) является сжимающим в области G с некоторым коэффициентом chi~(0leqslantchi<1).

Тогда:

а) решение x_{ast} является единственным решением в области G;

б) последовательность x^{(0)},x^{(1)},ldots,x^{(k+1)},ldots, определяемая по отображению на основе итерационного процесса, сходится к решению x_{ast} со скоростью геометрической прогрессии, т.е. при выборе x^{(0)} из условия |x_{ast}-x^{(0)}|<R, где R>0 — некоторое малое число, справедливо неравенство

bigl|x_{ast}-x^{(k)}bigr| leqslant chi^kcdot bigl|x_{ast}-x^{(0)}bigr|,quad k=0,1,2,ldots

Теорема 3.9 утверждает, что при выполнении условий 1,2 существует окрестность G(x_{ast},R) такая, что если взять x^{(0)} в этой окрестности и вычислять x^{(1)},x^{(2)},ldots по формуле (3.9), то в результате с любой наперед заданной точностью можно вычислить x^{(k+1)}approx x_{ast}, соответствующее искомому (единственному) корню. Но так как эта окрестность неизвестна, то можно взять произвольное x^{(0)}in G. Если при этом вычисляется последовательность x^{(0)},x^{(1)},x^{(2)},ldots,x{(k)},ldots, сходящаяся к некоторому значению widehat{x}, то в силу теоремы widehat{x}=x_{ast}. Если сходимость отсутствует, то надо взять другое x^{(0)}in G и повторить расчет.

Теорема 3.10 (о достаточном условии сходимости метода простых итераций). Пусть выполнены условия:

1. Функция varphi(x) имеет производные для всех xin G.

2. Существует число chi,(0 leqslantchi<1,~chi=text{const}), такое, что |varphi'(x)|leqslantchi для всех xin G.

Тогда отображение varphi(x) является сжимающим в G с коэффициентом сжатия х и последовательность x^{(0)},x^{(1)},ldots,x^{(k+1)},ldots, определяемая на основе итерационного процесса, сходится к решению x_{ast}, то есть x^{(k)}to x_{ast} при ktoinfty.

▼ Доказательство

В силу условия 1 справедлива теорема Лагранжа о конечных приращениях:

varphi(x'')-varphi(x')leqslant (x''-x')varphi'(delta) для forall x',x''in G,

где delta — точка, лежащая между x' и x''. Но тогда с учетом условия 2 и замены varphi'(delta) ее мажорантой chi получим

bigl|varphi(x'')-varphi(x')bigr|leqslant chicdot bigl|x''-x'bigr|,

т.е. отображение varphi(x) — сжимающее, и, таким образом, последовательность x^{(0)},x^{(1)},ldots,x^{(k+1)},ldots сходится к некоторому widehat{x}. Но тогда в силу непрерывности varphi(x) в G имеет место равенство widehat{x}=x_{ast}.

Геометрическая интерпретация процесса сходимости и расходимости в зависимости от выполнения или невыполнения достаточного условия сходимости представлена на рис. 3.9.

Сходимость итерационных последовательностей

Из рис. 3.9 видно, что при 0<varphi'(x)<1 и при -1<varphi'(x)<0 (см.рис. 3.9,д,б) итерационные последовательности x^{(0)},x^{(1)},x^{(2)},ldots сходятся к x_{ast}. Причем в первом случае реализуется односторонняя (монотонная) сходимость, а во втором — двусторонняя (немонотонная). При |varphi'(x)|>1 (см.рис. 3.9,в,г) процесс расходится несмотря на то, что точка x^{(0)} очень близка к x_{ast}. Процессы на рис. 3.9,а,б соответствуют сжимающему отображению.

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

1. Можно заменить уравнение f(x)=0 на равносильное x=x+cf(x), где c=text{const}ne0. Тогда, принимая правую часть этого уравнения за varphi(x) и раскрывая |varphi'(x)|= |1+cf'(x)|<1, получаем условие

-2<ccdot f'(x)<0.

(3.11)

Таким образом, можно найти константу c на отрезке G=[a,b] так, чтобы удовлетворялись неравенства (3.11). При этом надо стремиться получить такую постоянную c, которая бы больше отличалась от нуля, и тогда будет реализовы-ваться более быстрая сходимость.

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

bigl|x^{(k+1)}-x_{ast}bigr|leqslant frac{chi}{1-chi}cdot bigl|x^{(k+1)}-x^{(k)}bigr|

(3.12)

или по формуле (эта оценка выражается через два приближения x^{(0)} и x^{(1)})

bigl|x^{(k+1)}-x_{ast}bigr|leqslant frac{chi^{k+1}}{1-chi}cdot bigl|x^{(1)}-x^{(0)}bigr|.

(3.13)

Из оценки следует условие выхода из итерационного процесса. Если значение chi неизвестно, то выход осуществляется по условию

bigl|x^{(k+1)}-x^{(k)}bigr|leqslant varepsilon.

2. Уравнение f(x)=0 заменяется равносильным (где знак в правой части выбирается из условия |varphi'(x)|<1):

x=xmp frac{f(x)}{max|f'(x)|}equiv varphi(x) при xin G,

3. Можно выразить x из уравнения f(x)=0 так, чтобы для полученного уравнения x=varphi(x) выполнялось условие сходимости |varphi'(x)|<1 в окрестности искомого корня.

Замечание к доказательству. Выполнение условия Delta_{k+1}= bigl|x^{(k+1)}-x^{(k)}bigr|leqslant varepsilon не гарантирует близости к точному решению (на рис. 3.10 достигается область, где условие окончания выполняется, но корень x_{ast} расположен достаточно далеко от этой области).

Итерационный процесс и корень

▼ Примеры 3.8-3.10

Пример 3.8. Методом простых итераций с точностью varepsilon=0,!001 уточнить корень трансцендентного уравнения x^2-e^{-x}=0, причем искомый корень x_{ast}in[0,!5;1,!0]equiv G.

Решение

Пример 3.9. Найти решение уравнения x^3-x+1=0 методом простых итераций с точностью varepsilon_1=0,!01 и varepsilon_2=0,!001.

Решение

Пример 3.10. Найти корни уравнения x^3-x^2-9x+9=0 методом простых итераций с точностью varepsilon=0,!001.

Решение

1. Преобразуем уравнение к виду x=varphi(x)colon, x=sqrt[LARGE{3}]{x^2+9x-9}.

В примере 3.3 была выполнена операция отделения корней и получены отрезки [-4;-2],,[0,5;2],,[2;4].

Можно показать, что на отрезках [2;4],,[-4;-2] функция varphi(x)= sqrt[LARGE{3}]{x^2+9x-9} удовлетворяет условию |varphi'(x)|<1.

На отрезке [0,!5;2] используем другой вид уравнения: x=frac{x^3}{9}-frac{x^2}{9}+1. Также легко проверить, что функция varphi(x)=frac{x^3}{9}-frac{x^2}{9}+1 удовлетворяет достаточному условию сходимости на отрезке [0,!5;2].

2. В качестве начальных приближений выберем:
– точку x^{(0)}=-2 на отрезке [-4;-2];
– точку x^{(0)}=0,!5 на отрезке [0,!5;-2];
– точку x^{(0)}=2 на отрезке [2;4];.
В поставленной задаче varepsilon=0,!001.

3,4. Выполним расчеты по формуле

x^{(k+1)}= sqrt[LARGE{3}]{(x^{(k)})^2+9x^{(k)}-9},quad k=0,1,2,ldots

с начальными значениями x^{(0)}=-2 и x^{(0)}=2 и по формуле

x^{(k+1)}=frac{(x^{(k)})^3}{9}-frac{(x^{(k)})^2}{9}+1,quad k=0,1,2,ldots

с начальным значением x^{(0)}=0,!5.

Результаты расчетов занесены в табл. 3.6–3.8.

begin{aligned}& begin{aligned} mathit{Table~3.6}~&\ begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}hline k&! scriptstyle{0}!&! scriptstyle{1}!&! scriptstyle{2}!&! scriptstyle{3}!&! scriptstyle{4}!&! scriptstyle{5}!&! scriptstyle{6}!&! scriptstyle{7}!&! scriptstyle{8}!&! scriptstyle{9}!&! scriptstyle{10}!&! scriptstyle{11}!&! scriptstyle{12}!\hline x^{(k)}&! scriptstyle{2,0000}!&! scriptstyle{2,3513}!&! scriptstyle{2,6056}!&! scriptstyle{2,7694}!&! scriptstyle{2,8682}!&! scriptstyle{2,9255}!&! scriptstyle{2,9582}!&! scriptstyle{2,9767}!&! scriptstyle{2,9870}!&! scriptstyle{2,9927}!&! scriptstyle{2,9959}!&! scriptstyle{2,9977}!&! scriptstyle{2,9987}!\hline  bigl|x^{(k)}-x^{(k-1)}bigr|&! -!&! scriptstyle{0,3513}!&! scriptstyle{0,2543}!&! scriptstyle{0,1638}!&! scriptstyle{0,0988}!&! scriptstyle{0,0573}!&! scriptstyle{0,0327}!&! scriptstyle{0,0185}!&! scriptstyle{0,0102}!&! scriptstyle{0,0057}!&! scriptstyle{0,0032}!&! scriptstyle{0,0018}!&! scriptstyle{0,0010}!\hline end{array}& end{aligned}<br />\[6pt] & begin{aligned} mathit{Table~3.7}~&\ begin{array}{|c|c|c|}hline k&  x^{(k)}&  bigl|x^{(k)}-x^{(k-1)}bigr|\hline 0&-2,!0000&-\hline 1&-2,!8438& 0,!8438\hline 2&-2,!9816& 0,!1378\hline 3&-2,!9979& 0,!0163\hline 4&-2,!9997& 0,!0018\hline 5&-2,!99997& 0,!00027\hline end{array}&end{aligned} qquadqquadqquad begin{aligned} mathit{Table~3.8}~&\ begin{array}{|c|c|c|} hline k&  x^{(k)}&  bigl|x^{(k)}-x^{(k-1)}bigr|\hline 0& 0,!50000&-\hline 1& 0,!98611& 0,!4861\hline 2& 0,!99849& 0,!01238\hline 3& 0,!99983& 0,!00134\hline 4& 0,!99998& 0,!00015\hline end{array}& end{aligned}end{aligned}

В результате получены приближенные значения корней:

x_{1ast}cong-2,!99997,qquad x_{2ast}cong0,!99998,qquad x_{3ast}cong2,!9987.

Обратим внимание на сильное различие в числе итераций, потребовавшихся для нахождения корней x_{ast}=3 (табл. 3.6) и x_{ast}=-3 (табл. 3.7), с помощью одной и той же формулы. Заметим, что в окрестности корня x_{ast}=3 значения модуля производной функции varphi(x)=sqrt[LARGE{3}]{x^2+9x-9} равны:

|varphi'(2)|=0,!784;qquad |varphi'(2,!3513)|=0,!673;qquad |varphi'(2,!6056)|=0,!618;qquad |varphi'(2,!9977)|=0,!556.

С другой стороны, в окрестности корня x_{ast}=-3 имеем:

|varphi'(-2)|=0,!206;qquad |varphi'(-2,!8438)|= 0,!124;qquad |varphi'(-2,!9977)|=0,!111.

Анализ результатов показывает, что чем меньше значения модуля производной |varphi'(x)|, тем быстрее сходимость.


Метод Ньютона для решения нелинейных уравнений

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

Геометрическая интерпретация метода Ньютона

1) существование второй производной функции f(x) на множестве G={aleqslant xleqslant b};
2) удовлетворение первой производной условию f(x)ne0 для всех xin G;
3) знакопостоянство f'(x),,f''(x) для всех xin G.

Поэтому его желательно использовать совместно с другими методами, например методом половинного деления, чтобы достигнуть диапазона widetilde{a}leqslant x leqslant widetilde{b}, где указанные условия начинают выполняться.

Геометрическая интерпретация метода Ньютона состоит в следующем. Задается начальное приближение x^{(0)}. Далее проводится касательная к кривой y=f(x) в точке x^{(0)} (рис. 3.11), т.е. кривая заменяется прямой линией. В качестве следующего приближения выбирается точка пересечения этой касательной с осью абсцисс. Процесс построения касательных и нахождения точек пересечения с осью абсцисс повторяется до тех пор, пока приращение не станет меньше заданной величины varepsilon.

Получим расчетную формулу метода Ньютона. Вместо участка кривой BC (точка C соответствует x_{ast}) возьмем участок AB — касательную, проведенную в точке (x^{(0)},f(x^{(0)}))). Для этого отрезка справедливо конечное соотношение:

frac{f(x^{(0)})-0}{x^{(0)}-x^{(1)}}= f'(x^{(0)})equiv operatorname{tg}alpha,

где alpha — угол наклона касательной в точке (x^{(0)},f(x^{(0)})) к оси абсцисс. Разрешая это соотношение относительно x^{(1)}, получаем x^{(1)}= x^{(0)}-frac{f(x^{(0)})}{f'(x^{(0)})}. Повторяя процесс, находим общую формулу:

x^{(k+1)}= x^{(0)}-frac{f(x^{(k)})}{f'(x^{(k)})},quad k=0,1,2,ldots

(3.14)

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

x=x-frac{f(x)}{f'(x)}equiv varphi(x),

(3.15)

которое, однако, на [a,b] не равносильно исходному, а является таковым только в одной точке при x=x_{ast}. Поэтому данный метод не служит разновидностью метода простых итераций.

Применим теперь для вывода формулы (3.14) метод линеаризации. Положим, что итерационный процесс имеет вид

x^{(k+1)}=x^{(k)}+delta^{(k)},quad k=0,1,2,ldots

(3.16)

где delta^{(0)} — поправка к k-му приближению, которую необходимо найти. Предполагая, что f(x) имеет непрерывную вторую производную, разложим f(x^{(k)}+delta^{(k)}) по формуле Тейлора относительно точки x^{(k)}colon

f(x^{(k)}+delta^{(k)})= f(x^{(k)})+ delta^{(k)}f'(x^{(k)})+ frac{1}{2}(delta^{(k)})^2 f''(xi),

где xiin bigl(x^{(k)},x^{(k+1)}bigr). Учитывая, что fbigl(x^{(k)}+ delta^{(k)}bigr)=0 (это соответствует нахождению точки пересечения с осью абсцисс), и оставляя только линейную (относительно delta^{(k)}) часть разложения (отсюда и название — метод линеаризации), записываем линейное относительно delta^{(k)} уравнение

f(x^{(k)})+ delta^{(k)} f'(x^{(k)})=0.

Отсюда выражается поправка delta^{(k)}=-frac{f(x^{(k)})}{f'(x^{(k)})}. Подставляя delta^{(k)} в (3.16), получаем (3.14).

Теорема 3.11 (о достаточных условиях сходимости метода Ньютона). Пусть выполняются следующие условия:

1. Функция f(x) определена и дважды дифференцируема на [a,b].

2. Отрезку [a,b] принадлежит только один простой корень x_{ast}, так что f(a)cdot f(b)&lt;0.

3. Производные f'(x),,f''(x) на [a,b] сохраняют знак, и f'(x)ne0.

4. Начальное приближение x^{(0)} удовлетворяет неравенству f(x^{(0)})cdot f''(x^{(0)})&gt;0 (знаки функций f(x) и f''(x) в точке x^{(0)} совпадают).

Тогда с помощью метода Ньютона (3.14) можно вычислить корень уравнения f(x)=0 с любой точностью.

Замечания

1. Метод Ньютона характеризуется вторым порядком сходимости вблизи корня и первым порядком — вдали от него. Данную оценку проверяем для двух случаев, когда x^{(k)} находится далеко от корня x_{ast} (это возможно на первых итерациях) и когда x^{(k)} располагается вблизи x_{ast}.

Первый случай. Пусть отрезок omega=[x^{(k)},x_{ast}] не мал. Тогда на основе теоремы Лагранжа получим (где m_1=minlimits_{omega}|f'(x)|)

bigl|f(x^{(k)})bigr|= bigl|f(x_{ast})-f(x^{(k)})bigr|= bigl|f'(xi)bigr|cdot bigl|x_{ast}-x^{(k)}bigr| geqslant m_1 bigl|x_{ast}-x^{(k)}bigr|.

(3.17)

Преобразуем с использованием (3.17) итерационную формулу (3.14) (где M_1= maxlimits_{xin[a,b]}|f'(x)|):

x^{(k+1)}=x^{(k)}-frac{f(x^{(k)})}{f'(x^{(k)})};qquad bigl|x^{(k+1)}-x^{(k)}bigr|= frac{|f(x^{(k)})|}{f'(x^{(k)})} geqslant frac{m_1}{M_1} bigl|x_{ast}-x^{(k)}bigr|.

В силу монотонности последовательности x^{(0)},x^{(1)},ldots имеем

begin{gathered}x_{ast}-x^{(k+1)}= x_{ast}-x^{(k)}-bigl(x^{(k+1)}-x^{(k)}bigr),\ bigl|x_{ast}-x^{(k+1)}bigr|= bigl|x_{ast}-x^{(k)}bigr|-bigl|x^{(k+1)}-x^{(k)}bigr| geqslant bigl|x_{ast}-x^{(k)}bigr|- frac{m_1}{M_1} bigl|x_{ast}-x^{(k)}bigr|= left(1-frac{m_1}{M_1}right)! bigl|x_{ast}-x^{(k)}bigr|. end{gathered}

Таким образом, вдали от корня получаем линейную сходимость

bigl|x_{ast}-x^{(k+1)}bigr| leqslant ccdot bigl|x_{ast}-x^{(k)}bigr|, где 0 leqslant c=1-frac{m_1}{M_1}&lt;1.

Второй случай. Пусть теперь отрезок omega=[x^{(k)},x] мал, т.е. итерации выполняются вблизи корня. Тогда, полагая, что указанные выше предположения 1–4 теоремы 3.10 выполнены, разложим функцию f(x) в окрестности корня x_{ast} относительно точки x^{(k)}, учитывая члены до второго порядка. Получим

Bigl.{f(x)}Bigr|_{x=x^{(k)}}= f(x^{(k)})+ bigl(x_{ast}-x^{(k)}bigr) f'(x^{(k)})+ bigl(x_{ast}-x^{(k)}bigr)^2 frac{1}{2}f''(xi)=0,

где xiin bigl(x^{(k)}-delta,,x^{(k)}+deltabigr) (delta&gt;0 — малая величина). Из данного соотношения выражаем x_{ast}colon

x_{ast}=x^{(k)}-frac{f(x^{(k)})}{f'(x^{(k)})}-frac{(x_{ast}-x^{(k)})^2}{2f'(x^{(k)})},f''(xi).

Но первые два слагаемых в правой части в соответствии с (3.14) равны x^{(k+1)}. Тогда будем иметь

x_{ast}-x^{(k)}=-frac{(x_{ast}-x^{(k)})^2}{2f'(x^{(k)})},f''(xi).

Из последнего соотношения следует оценка погрешности (k+1)-го приближения через погрешность k-го приближения:

bigl|x_{ast}-x^{(k+1)}bigr|leqslant frac{M_2}{2m_1} bigl|x_{ast}-x^{(k)}bigr|^2,

(3.18)

где принято M_2=maxlimits_{omega}|f''(x)|,~ m_1=minlimits_{omega}|f'(x)|. Оценка (3.18) свидетельствует о квадратичной сходимости метода касательных вблизи корня. С вычислительной точки зрения это означает, что на каждом приближении количество верных цифр результата удваивается.

2. Для нахождения комплексных корней уравнения f(z)=0 можно также использовать (3.14) в форме (где z=x+iy — комплексная переменная)

z^{(k+1)}=z^{(k)}-frac{f(z^{(k)})}{f'(z^{(k)})},quad k=0,1,2,ldots

Метод Ньютона может применяться не только для нахождения простых корней, но для определения кратных корней, т.е. когда на отрезке [a,b] содержащем корень, не выполняется условие f(a)cdot f(b)&lt;0 (условие 2 теоремы 3.11). Наряду с теоремой 3.11 удобно также пользоваться следующей теоремой.


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

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

а) дана функция f(x)colon Dto mathbb{R}, где D — открытый интервал, и f'(x)in operatorname{Lip}_{gamma}(D);

б) для некоторого rho&gt;0 выполняется условие |f'(x)|leqslantrho при всех x из D.

Если уравнение f(x)=0 имеет решение x_{ast}in D, то существует некоторое eta&gt;0, такое, что если |x^{(0)}-x_{ast}|&lt;eta, то последовательность bigl{x^{(0)},x^{(1)},x^{(2)},ldotsbigr}, задаваемая формулой (3.14), существует и сходится к x_{ast}. Более того, справедлива оценка

bigl|x^{(k+1)}-x_{ast}bigr| leqslant frac{gamma}{2rho} bigl|x^{(k)}-x_{ast}bigr|^2,quad k=0,1,2,ldots

Здесь обозначение f'(x)in operatorname{Lip}_{gamma}(D) означает, что функция f'(x) непрерывна по Липшицу с константой gamma на множестве D, то есть |f'(x)-f'(y)| leqslant gamma cdot|x-y| для любых x,,y из D.

Замечания

1. Требование теоремы 3.12, чтобы производная f'(x) имела ненулевую нижнюю границу в D, определяет, что значение f'(x_{ast}) должно быть ненулевым для квадратичной сходимости метода Ньютона. Если же f'(x_{ast})=0, то x_{ast} является кратным корнем, а метод Ньютона сходится лишь линейно.

2. Выполнение условий теоремы 3.12 гарантирует сходимость метода Ньютона только из «хорошего» начального приближения x^{(0)}.

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

Методика решения задачи

1. Задать начальное приближение x^{(0)} так, чтобы выполнялось неравенство f(x^{(0)})cdot f''(x^{(0)})&gt;0, а также малое положительное число varepsilon. Положить k=0.

2. Вычислить x^{(k+1)} по формуле x^{(k+1)}= x^{(k)}-frac{f(x^{(k)})}{f'(x^{(k)})}.

3. Если |x^{(k+1)}-x^{(k)}|leqslant varepsilon, процесс завершить и положить x_{ast}cong x^{(k+1)}.

Если |x^{(k+1)}-x^{(k)}|&gt;varepsilon, положить k=k+1 и перейти к п.2.

▼ Примеры 3.11-3.14

Пример 3.11. Методом Ньютона с точностью varepsilon=0,!001 уточнить корень трансцендентного уравнения x^2-e^{-x}=0, причем искомый корень x_{ast}in[0,!5;1,!0]equiv G.

Решение

Можно проверить, что на множестве G удовлетворяются условия 1, 2, 3 теоремы 3.11, обеспечивающие сходимость метода касательных.

1. Зададим начальное приближение из условия 4. Так как для f(x)=x^2-e^{-x} справедливо f''(x)=2-e^{-x}&gt;0 на множестве G,~ f(a)=f(0,!5)&lt;0, f(b)=f(1)&gt;0, то f(1)cdot f''(1)&gt;0, поэтому x^{(0)}=1.

2,3. Результаты расчетов по формуле (3.14) x^{(k+1)}= x^{(k)}-frac{(x^{(k)})^2-e^{-x^{(k)}}}{2x^{(k)}+e^{-x^{(k)}}},~k=0,1,2,ldots помещены в табл. 3.9.

begin{aligned} mathit{Table~3.9}~&\ begin{array}{|c|c|c|c|c|} hline k& 0& 1& 2& 3\hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}& 1,!000& 0,!73304& 0,!70381& 0,!703467\hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!27& 0,!029& 0,!00034\hline begin{matrix}{}\[-8pt]{}end{matrix} f(x^{(k)})& 0,!63212& 0,!05690& 0,!00065& 8,!25cdot10^{-7}\hline end{array}& end{aligned}

Из табл. 3.9 можно сделать следующие выводы:

1. Для достижения заданной точности, проверяемой по модулю разности bigl|x^{(k)}-x^{(k-1)}bigr|, потребовалось выполнить три приближения. Если же выход организовать по условию bigl|f(x^{(k)})bigr|leqslant varepsilon, то достаточно двух приближений.

2. Вблизи корня x_{ast} количество верных цифр в результатах x^{(k)} удваивается, так что все цифры в x^{(3)} являются верными, тогда как в x^{(2)} верными являются первые три цифры после запятой.

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

Пример 3.12. Методом Ньютона найти корень уравнения x^3-x+1=0.

Решение

Пример 3.13. Найти корни уравнения x^3-x^2-9x+9=0 методом Ньютона с точностью varepsilon=0,!001.

Решение

Процедура отделения корней была выполнена в примере 3.3. В качестве отрезков [a_i;b_i], которым принадлежат корни уравнения, выберем [-4;-2], [2,!5;4], [0,!5;2].

Так как f(-4)=-3,!5;~ f(-2)=15, то есть f(-4)f(-2)&lt;0, производные f''(x)=6x-2&lt;0, f'(x)=3x^2-2x-9&gt;0 сохраняют знак при xin[-4;-2], то условия сходимости выполняются.

Так как f(2,!5)=-4,!125;~ f(4)=21, то есть f(2,!5)f(4)&lt;0, и производные f'(x)&gt;0,~ f''(x)&gt;0 сохраняют знак при xin[2,!5;4], то условия сходимости на этом отрезке тоже выполняются.

Так как f(0,!5)=4,!375;~ f(2)=-5, то есть f(0,!5)f(2)&lt;0, и производные f'(x)&lt;0,~ f''(x)&gt;0 сохраняют знак при xin[0,!5;2], то условия сходимости выполняются.

1. Зададим начальные приближения: на отрезке [0,!5;2] выберем x^{(0)}= 0,!5, так как f(0,!5)cdot f''(0,!5)&gt;0; на отрезке [-4;-2] выберем x^{(0)}=-4, так как f(4)cdot f''(4)&gt;0; аналогично на отрезке [2,!5;4] выберем x^{(0)}=4. В поставленной задаче varepsilon= 0,!001.

2,3. Результаты расчетов по формуле (3.14) x^{(k+1)}= x^{(k)}-frac{(x^{(k)})^3-(x^{(k)})^2-9x^{(k)}+9}{3(x^{(k)})^2-2x^{(k)}-9},~ k=0,1,2,ldots приведены в табл. 3.11–3.13.

begin{aligned}& begin{aligned} mathit{Table~3.11}~&\ begin{array}{|c|c|c|c|c|c|} hline k& 0& 1& 2& 3& 4 \hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}&-4,!00000&-3,!255319&-3,!023383&-3,!000225&-3,!000000 \hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!744681& 0,!231936& 0,!023158& 0,!000225 \hline end{array}& end{aligned}\[2pt] & begin{aligned} mathit{Table~3.12}~&\ begin{array}{|c|c|c|c|c|} hline k& 0& 1& 2& 3 \hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}&0,!5000& 0,!972973& 0,!9998246& 1,!0000000 \hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!472973& 0,!0268516& 0,!0001754 \hline end{array}& end{aligned}\[2pt] & begin{aligned} mathit{Table~3.13}~&\ begin{array}{|c|c|c|c|c|c|c|} hline k& 0& 1& 2& 3& 4& 5 \hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}& 4,!0000& 3,!322581& 3,!051484& 3,!001674& 3,!000002& 3,!0000 \hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!6774194& 0,!2710969& 0,!049809& 0,!001671& 2cdot10^{-6} \hline end{array}& end{aligned} end{aligned}

В результате получены приближенные значения корней:

x_{ast1}cong-3,!0000;qquad x_{ast2}cong1,!0000;qquad x_{ast3}cong 3,!0000.

Пример 3.14. Найти корень уравнения x^2-2x+1=0 методом Ньютона с точностью varepsilon=0,!01.

Решение

Очевидно, уравнение имеет один кратный корень x_{ast}=1. Согласно замечанию к теореме 3.12 применение метода Ньютона для решения поставленной задачи сопровождается линейной сходимостью (табл. 3.14).

begin{aligned} mathit{Table~3.14}~&\ begin{array}{|c|c|c|c|c|c|c|c|c|} hline k& 0& 1& 2& 3& 4& 5& 6& 7\hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}& 2& 1,!5& 1,!25& 1,!125& 1,!0625& 1,!03125& 1,!015625& 1,!007813 \hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!5& 0,!25& 0,!125& 0,!0625& 0,!03125& 0,!015625& 0,!0078125 \hline end{array}& end{aligned}

Полученное приближенное решение x_{ast}cong1,!007813.


Нарушение знакопостоянства производных функции

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

Метод касательных, являясь весьма эффективным средством численного анализа, к сожалению, имеет достаточно жесткие ограничения. Действительно, он не может применяться для сеточных уравнений (см. рис. 3.2); при нарушении знакопостоянства производных (рис. 3.12); при существовании неограниченных вторых производных и др. Так, если даже условие знакопостоянства нарушено вдали от корня, где выбрано x^{(0)}, а вблизи корня выполняется, то все равно метод касательных неприменим (см. рис. 3.12), если не произвести сужения начального отрезка.

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

Процесс последовательных приближений по методу Ньютона

В силу этого в ряде случаев могут оказаться более предпочтительными модификации метода касательных. Рассмотрим три из них.

Упрощенный метод Ньютона. Методика его применения совпадает с изложенной ранее, но вместо формулы (3.14) используется

x^{(k+1)}=x^{(k)}-frac{f(x^{(k)})}{f'(x^{(0)})},quad k=0,1,2,ldotsqquad mathsf{(3.19)}

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

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

Пример 3.15. Найти корень уравнения x^3-x+1=0 упрощенным методом Ньютона.

Решение

Корень уравнения отделен в примере 3.2: x_{ast}in[-2;-1].

1. Выберем начальное приближение x^{(0)}=-2 и зададим varepsilon_1=0,!01 и varepsilon_2=0,!001.

2,3. Выполним расчеты по формуле (3.19):

x^{(k+1)}= x^{(k)}-frac{(x^{(k)})^3-x^{(k)}+1}{3(x^{(0)})^2-1}= x^{(k)}-frac{(x^{(k)})^3-x^{(k)}+1}{11},quad k=0,1,2,ldots

Результаты расчетов приведены в табл. 3.15.

begin{aligned} mathit{Table~3.15}~&\ begin{array}{|c|c|c||c|c|c|} hline begin{matrix} {}\[-6pt]{}end{matrix} k& x^{(k)}& bigl|x^{(k)}-x^{(k-1)}bigr|& k& x^{(k)}& bigl|x^{(k)}-x^{(k-1)}bigr|\hline 0&-2,!00001&-& 6&-1,!3388& 0,!0092\hline 1&-1,!5455& 0,!4545& 7&-1,!3333& 0,!0005\hline 2&-1,!4413& 0,!1042& 8&-1,!3299& 0,!00034\hline 3&-1,!3911& 0,!0502& 9&-1,!3279& 0,!002\hline 4&-1,!3637& 0,!0274& 10&-1,!3267& 0,!0012\hline 5&-1,!348& 0,!0157& 11&-1,!3259& 0,!0008\hline end{array}& end{aligned}

При varepsilon=0,!01 получено решение x_{ast}cong-1,!3388, а при varepsilon=0,!001 — решение x_{ast}cong-1,!3259. Очевидно, по сравнению с методом Ньютона сходимость замедляется (см. пример 3.12).


Метод Ньютона-Бройдена

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

x^{(k+1)}= x^{(k)}-c_kcdot frac{f(x^{(k)})}{f'(x^{(k)})},quad k=0,1,2,ldots

(3.20)

где c_k — число, которое выбирается на каждой итерации так, чтобы уменьшить значение bigl|f(x^{(k+1)})bigr| по сравнению с bigl|f(x^{(k)})bigr|. При c_k=1 метод Ньютона-Бройдена совпадает с методом Ньютона.

Как правило, при плохой сходимости или ее отсутствии полагают 0&lt;c_k&lt;1 (рис. 3.14,д), а при хорошей сходимости для c_k=1 полагают c_k&gt;1 (это ускоряет сходимость (рис. 3.14,б)).

Сходимость при методе Ньютона-Бройдена

На рис. 3.14 прямоугольниками отмечены точки x^{(1)}, полученные при c_0=1,~ delta^{(k)}= frac{f(x^{(k)})}{f'(x^{(k)})},~k=0,1,2,ldots, — поправка, соответствующая методу Ньютона, а точки x^{(1)}=x^{(0)}-c_0delta^{(0)} получены по методу Ньютона-Бройдена.


Тангенс угла наклона секущей

Метод секущих

В этом методе производная функции f(x) подсчитывается с помощью конечно-разностных соотношений:

– в точке x^{(0)} используется формула f'(x^{(0)})approx frac{f(x^{(0)})-f(x^{(0)}-delta)}{delta}, где delta — малая положительная величина;

– в точках x^{(k)},~k=1,2,ldots, используется формула f'(x^{(k)})approx frac{f(x^{(k)})-f(x^{(k-1)})}{x^{(k)}-x^{(k-1)}}.

Вычисленное значение f'(x^{(k)}) определяет тангенс угла наклона секущей (рис. 3.15).

Методика применения метода секущих совпадает с описанной ранее, но вместо (3.14) используется формула

x^{(k+1)}= x^{(k)}-frac{f(x^{(k)})}{f(x^{(k)})-f(x^{(k-1)})}cdot bigl(x^{(k)}-x^{(k-1)}bigr),quad k=1,2,ldots

(3.21)

Аппроксимация сеточной функции

Замечания

1. Метод секущих является более экономичным по сравнению с методом Ньютона по количеству функций, подлежащих расчету: на каждой итерации в методе секущих необходимо рассчитать только значение f(x^{(k)}), так как величина f(x^{(k-1)}) уже подсчитана на предыдущей итерации.

2. Метод секущих может применяться и для решения сеточных уравнений. Для сеточной функции производные в методе секущих определяются так же, но для определения f(x^{(k)}) в промежуточных точках осуществляется аппроксимация (как правило, интерполяция) функции f(x_i) (рис. 3.16). На этом рисунке штриховой линией показана аппроксимационная кривая.

3. Для всех описанных модификаций скорость сходимости p по сравнению с методом касательных снижается: p&lt;2. Однако для некоторых из них (метод секущих) значение p&gt;1 и может достигать p=1,!5.

Пример 3.16. Методом секущих найти корень уравнения x^3-x+1=0 с точностью varepsilon=0,!001.

Решение

1. Зададим начальное приближение x^{(0)}=-2(см. пример 3.12).

2. Для вычисления f'(x^{(0)}) зададим delta=0,!1. Тогда

f'(x^{(0)})cong frac{f(-2)-f(-2,!1)}{0,!1}= frac{-5-(-6,!161)}{0,!1}= 11,!61.

Отсюда x^{(1)}= x^{(0)}-frac{f(x^{(0)})}{f'(x^{(0)})}=-2-frac{-5}{11,!61}=-1,!36934.

Дальнейшие расчеты выполняются по формуле (3.21):

begin{aligned}x^{(2)}&=x^{(1)}-frac{f(x^{(1)})}{f(x^{(1)})-f(x^{(0)})}cdot bigl(x^{(1)}-x^{(0)}bigr)=-1,!56934-frac{-1,!29567}{3,!704325}cdot0,!43066=-1,!41871;\[2pt] x^{(3)}&=x^{(2)}-frac{f(x^{(2)})}{f(x^{(2)})-f(x^{(1)})}cdot bigl(x^{(2)}-x^{(1)}bigr)=-1,!41871-frac{-1,!43678}{0,!858893}cdot0,!15063=-1,!34211;\[2pt] x^{(4)}&=x^{(3)}-frac{f(x^{(3)})}{f(x^{(3)})-f(x^{(2)})}cdot bigl(x^{(3)}-x^{(2)}bigr)=-1,!34211-frac{-1,!07538}{0,!361404}cdot0,!0766=-1,!32613;\[2pt] x^{(5)}&=x^{(4)}-frac{f(x^{(4)})}{f(x^{(4)})-f(x^{(3)})}cdot bigl(x^{(4)}-x^{(3)}bigr)=-1,!32613-frac{-1,!00603}{0,!069348}cdot0,!01598=-1,!32474;\[2pt] x^{(6)}&=x^{(5)}-frac{f(x^{(5)})}{f(x^{(5)})-f(x^{(4)})}cdot bigl(x^{(5)}-x^{(4)}bigr)=-1,!32474-frac{-1,!000139}{0,!005936}cdot0,!00139=-1,!32472cong x_{ast}.\[2pt] end{aligned}

Результаты расчетов приведены в табл. 3.16.

begin{aligned} mathit{Table~3.16}~&\ begin{array}{|c|c|c|c|c|c|c|c|} hline k& 0& 1& 2& 3& 4& 5& 6\hline begin{matrix}{}\[-8pt]{}end{matrix} x^{(k)}&-2,!00000&-1,!56934&-1,!41871&-1,!34211&-1,!32613&-1,!32474&-1,!32472\hline begin{matrix}{}\[-8pt]{}end{matrix} bigl|x^{(k)}-x^{(k-1)}bigr|&-& 0,!43066& 0,!15063& 0,!07660& 0,!01598& 0,!00139& 0,!00002 \hline end{array}& end{aligned}

Очевидно, метод сходится чуть хуже метода Ньютона (см. пример 3.12), однако скорость сходимости выше линейной.

Математический форум (помощь с решением задач, обсуждение вопросов по математике).

Кнопка "Поделиться"

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

 

Пусть имеется уравнение вида

f(x)= 0

где f(x) — заданная алгебраическая или трансцендентная функция.

Решить уравнение — значит найти все его корни, то есть те значения x, которые обращают уравнение в тождество.
Если уравнение достаточно сложно, то задача точного определения корней является в некоторых случаях нерешаемой. Поэтому ставится задача найти такое приближенное значение корня xПP, которое отличается от точного значения корня x* на величину, по модулю не превышающую указанной точности (малой положительной величины) ε, то есть

│x* – xпр │< ε

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

Этапы приближенного решения нелинейных уравнений

Приближенное решение уравнения состоит из двух этапов:

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

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

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

Для примера рассмотрим задачу решения уравнения
Уравнение
где угол x задан в градусах. Указанное уравнение можно переписать в виде
f(x)=0
Для графического отсечения корней достаточно построить график функции
График функции
Из рисунка видно, что корень уравнения лежит в промежутке x∈(6;8).

Аналитическое отделение корней

Аналитическое отделение корней основано на следующих теоремах.
Теорема 1. Если непрерывная функция f(x) принимает на концах отрезка [a; b] значения разных знаков, т.е.
f(a)f(b)<0
то на этом отрезке содержится по крайней мере один корень уравнения.
Теорема 2. Если непрерывная на отрезке [a; b] функция f(x) принимает на концах отрезка значения разных знаков, а производная f'(x) сохраняет знак внутри указанного отрезка, то внутри отрезка существует единственный корень уравнения f(x) = 0.

Уточнение корней

Для уточнения корней может использоваться один из следующих методов:

  • Метод последовательных приближений (метод итераций)
  • Метод Ньютона (метод касательных)
  • Метод секущих (метод хорд)
  • Метод половинного деления (метод дихотомии)

Метод последовательных приближений (метод итераций)

Метод итерации — численный метод решения математических задач, используемый для приближённого решения алгебраических уравнений и систем. Суть метода заключается в нахождении по приближённому значению величины следующего приближения (являющегося более точным). Метод позволяет получить решение с заданной точностью в виде предела последовательности итераций. Характер сходимости и сам факт сходимости метода зависит от выбора начального приближения решения.
Функциональное уравнение может быть записано в виде
x=f(x)
Функцию f(x) называют сжимающим отображением.

Последовательность чисел x0, x1 ,…, xn называется итерационной, если для любого номера n>0 элемент xn выражается через элемент xn-1 по рекуррентной формуле
xn=f(xn-1)
а в качестве x0 взято любое число из области задания функции f(x).

Реализация на C++ для рассмотренного выше примера
Уравнение
Уравнение может быть записано в форме
x=1/sinx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
double find(double x, double eps)
{
  double rez; int iter = 0;
  cout << «x0= » << x << » «;
  do {
    rez = x;
    x = 1 / (sin(M_PI*x / 180));
    iter++;
  } while (fabs(rez — x) > eps && iter<20000);
  cout << iter << » iterations» << endl;
  return x;
}
int main() 
{
  cout << find(7, 0.00001);
  cin.get(); 
  return 0;
}

Результат выполнения
Результат метода последовательных приближений

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

Если известно начальное приближение x0 корня уравнения f(x)=0, то последовательные приближения находят по формуле
метод Ньютона
Графическая интерпретация метода касательных имеет вид
Метод касательных
Реализация на C++
Для заданного уравнения
метод Ньютона
производная будет иметь вид f'(x)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
double find(double x, double eps)
{
  double f, df; int iter = 0;
  cout << «x0= » << x << » «;
  do {
    f = sin(M_PI*x / 180) — 1 / x;
    df = M_PI / 180 * cos(M_PI*x / 180) + 1 / (x*x);
    x = x — f / df;
    iter++;
  } while (fabs(f) > eps && iter<20000);
  cout << iter << » iterations» << endl;
  return x;
}
int main() 
{
  cout << find(1, 0.00001);
  cin.get(); return 0;
}

Результат выполнения
Метод Ньютона

Метод секущих (метод хорд)

Если x0, x1 — приближенные значения корня уравнения f(x) = 0 и выполняется условие
f(a)f(b)
то последующие приближения находят по формуле
Метод хорд
Методом хорд называют также метод, при котором один из концов отрезка закреплен, т.е. вычисление приближения корня уравнения f(x) = 0 производят по формулам:
Метод секущих
Геометрическая интерпретация метода хорд:
Метод хорд
Реализация на C++
В отличие от двух рассмотренных выше методов, метод хорд предполагает наличие двух начальных приближений, представляющих собой концы отрезка, внутри которого располагается искомый корень.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
double find(double x0, double x1, double eps)
{
  double rez = x1, f0, f;
  int iter = 0;
  cout << «x0= » << x0 << » x1= » << x1 << » «;
  do {
    f = sin(M_PI*rez / 180) — 1 / rez;
    f0 = sin(M_PI*x0 / 180) — 1 / x0;
    rez = rez — f / (f — f0)*(rez — x0);
    iter++;
  } while (fabs(f) > eps && iter<20000);
  cout << iter << » iterations» << endl;
  return rez;
}
int main() 
{
  cout << find(1.0, 10.0, 0.000001);
  cin.get(); return 0;
}

Результат выполнения
Реализация метода хорд

Метод половинного деления (метод дихотомии)

Если x0, x1 — приближенные значения корня уравнения f(x) = 0 и выполняется условие
Метод половинного деления
то последующие приближения находятся по формуле
Метод дихотомии
и вычисляется f(xi). Если f(xi)=0, то корень найден. В противном случае из отрезков выбирается тот, на концах которого f(x) принимает значения разных знаков, и проделывается аналогичная операция. Процесс продолжается до получения требуемой точности.

Геометрическая интерпретация метода дихотомии
Метод дихотомии
Реализация на C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>
using namespace std;
double func(double x)
{
  return (sin(M_PI*x / 180) — 1 / x);
}
double find(double x0, double x1, double eps)
{
  double left = x0, right = x1, x, fl, fr, f;
  int iter = 0;
  cout << «x0= » << x0 << » x1= » << x1 << » «;
  do {
    x = (left + right) / 2;
    f = func(x);
    if (f > 0) right = x;
    else left = x;
    iter++;
  } while (fabs(f) > eps && iter<20000);
  cout << iter << » iterations» << endl;
  return x;
}
int main() 
{
  cout << find(1.0, 10.0, 0.000001);
  cin.get(); return 0;
}

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

Назад: Алгоритмизация

1. Приближенное решение нелинейных алгебраических уравнений

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

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

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

Метод хорд

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

Дано
нелинейное алгебраическое уравнение

f(x)=0 (1)

Нелинейность уравнения означает,
что график функции не есть прямая линия, т.е. в f(x) входит x в
некоторой степени или под знаком функции.

Решить
уравнение – это найти такое x* ∈ R: f(x*)=0. Значение x*
называют корнем уравнения. Нелинейное уравнение может иметь
несколько корней. Геометрическая интерпретация корней уравнения представлена на
рис. 1. Корнями уравнения (1) являются точки x1*, x2*,
x3*, в которых функция f(x) пересекает ось x.

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

В приближенных
методах процесс нахождения решения, вообще говоря, бесконечен. Решение
получается в виде бесконечной последовательности {xn},
такой, что . По
определению предела, для любого (сколь угодно малого)
ε,
найдется такое
N, что при n>N,
|
xn x*|<
ε. Члены этой последовательности xn называются последовательными приближениями
к решению, или итерациями. Наперёд заданное число
ε называют точностью метода, а N это количество
итераций, которое необходимо выполнить, чтобы получить решение с точностью
ε.

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

Наиболее часто используется следующий критерий остановки итерационного
процесса: |xn+1xn|<ε, т.е. разница между соседними итерациями
становится малой. Также для окончания итерационного процесса используется условие
|f(xn)|<ε , где f(xn)
невязка метода.

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

Необходимое условие существования корня уравнения
на отрезке
[a,b]: Пусть
f(x) непрерывна и f(a)f(b)<0
(т.е., на концах интервала функция имеет разные знаки). Тогда внутри отрезка [a, b]
существует хотя бы один корень уравнения f(x)=0.

Достаточное
условие единственности
корня на отрезке [a,b]:

Корень будет
единственным, если f(a)f(b)<0 и
f /(x) не меняет знак на
отрезке [a, b], т.е. f(x) –
монотонная функция, в этом случае отрезок [a,b]
будет интервалом изоляции.

Если корней несколько, то для каждого нужно найти интервал изоляции.

Существуют различные способы исследования функции: аналитический,
табличный, графический
.

Аналитический способ состоит в нахождении экстремумов
функции f(x),
исследование ее поведения при и нахождение участков возрастания и убывания
функции.

Графический способ – это построение графика функции f(x) и определение числа
корней по количеству пересечений графика с осью x.

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

Пример.

Решить
уравнение x3‑ 6x2+3x+11=0, т.е. f(x)= x3‑ 6x2+3x+11.

Найдем
производную f/(x)=3x2-12x+3.

Найдем нули
производной f/(x)=3x2-12x+3=0; D=144-4*3*3=108;

X1== 0.268;

X2== 3.732;

Так как f/()>0, то f/(x)>0 при , f/(x)<0 при и f/(x)>0 при . Кроме того, f()=<0, f()=>0. Следовательно, на
интервале
возрастает от до f(x1)= 3x12-12x1+3=11.39;
на интервале
убывает до f(x2)= 3x22-12x2+3=-9.39 и на интервале возрастает до , т.е. уравнение
имеет три корня.

Найдем интервалы изоляции для каждого из корней.

Рассмотрим для первого корня отрезок [-2, -1]:

f(-2)= -27<0, f(-1)= 1>0, f/(x)>0 при т.е. этот отрезок является интервалом изоляции
корня.

Рассмотрим для второго корня отрезок [1, 3]:

f(1)= 9>0, f(3)= -7<0, f/(x)<0 при т.е. этот отрезок является интервалом
изоляции корня.

Рассмотрим для третьего корня отрезок [4, 5]:

f(4)= -9<0, f(5)=1>0, f/(x)>0 при т.е. этот отрезок является интервалом
изоляции корня.

Табличный
способ:

x

-3

-2

-1

0

1

2

3

4

5

6

7

f(x)

-79

-27

1

11

9

1

-7

-9

1

29

81

Графический
способ

Приближенные (Итерационные) методы.

Пусть интервалы изоляции
корней известны. Познакомимся с несколькими итерационными методами,
позволяющими найти корень на известном интервале изоляции [a, b].

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

Идея метода:

Найдем середину отрезка [a, b]:
c=(a+b)/2. Корень остался на одной из частей:
[a, c] или [c, b]. Если f(a) * f(с)<0,
то корень попал на отрезок [a, c], тогда деление отрезка можно повторить, приняв в
качестве нового правого конца точку c, т.е. b=c. В противном
случае корень попал на половину [c, b], и необходимо изменить значение левого конца
отрезка: a=c. Поскольку корень всегда заключен внутри отрезка,
итерационный процесс можно останавливать, если длина отрезка станет меньше
заданной точности: |b – a|< ε
Найдем первый корень уравнения f(x)=x3
6x2+3x+11=0 с точностью

Вычисления оформляются в виде
таблицы

k

a

b

c

f(a)

f(c)

|b-a|

0

-2

-1

-1.5

-27

-10.375

1

1

-1.5

-1

-1.25

-10.375

-4.07813

0.5

2

-1.25

-1

-1.125

-4.07813

-1.39258

0.25

3

-1.125

-1

-1.0625

-1.39258

-0.1604

0.125

4

-1.0625

-1

-1.03125

-0.1604

0.42868

0.0625

5

-1.0625

-1.03125

-1.04688

-0.1604

0.136372

0.03125

6

……….

7

8

9

10

-1.05469

-1.05371

-1.0542

-0.01146

-0.00218

0.000977

где a0 , b0 — начальные границы
интервала изоляции корня;

В результате
расчета приближенное значение первого корня: при точности и х=-1.0542 при точности .

Графическая иллюстрация метода:

Метод дихотомии

Этот пример в Excel: dich.xls (20 Кб)

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

С помощью эквивалентных преобразований приведем исходное уравнение f(x) к виду, удобному для применения
метода простой итерации: x=φ(x).
Выберем начальное приближение x0∈[a, b]. Следующие
итерации находим по формуле: xk+1=φ(xk),
т.е.
x1=φ(x0),
x2=φ(x1)
и т.д.. Итерационный процесс заканчивается, если |xk+1xk|<ε. Представить
исходное уравнение в эквивалентном виде x=φ(x)
можно бесконечным числом способов. Из всевозможных таких представлений выбирают
тот, который дает сходящуюся к корню последовательность вычислений. Очевидно,
что .

Достаточное условие сходимости: пусть φ(x)
имеет производную на отрезке
[a,b], и для всех x из отрезка
[a,b], тогда итерационный
процесс сходится к корню уравнения т.е. .

Доказательство
следует из следующих оценок:

Первое неравенство следует из теоремы Лагранжа о среднем и того, что .

Остальные по
инерции.

Так как .

Геометрический смысл метода простой итерации.

Сходящийся метод
простой итерации

Расходящийся
метод простой итерации

В качестве
начального приближения обычно берут середину отрезка [a,b]: .

На практике часто в качестве берут функцию , где с – некоторая постоянная.
Постоянную c выбирают таким образом, чтобы для всех x∈[a, b].

При таком выборе функции метод простой итерации называют методом
релаксации.

Получим
условия на выбор с:

Таким образом, если f/(x)<0, то 2/f/(x)<c<0. Если же f/(x)>0, то 2/f/(x)>c>0.

Видно, что знак у с совпадает со знаком f/(x).
Часто с берут в виде: .

Убедимся, что
такое c удовлетворяет условию сходимости:

Пусть f/(x)>0. Тогда M>0 и m>0 -> c>0 и
. Следовательно, 2/f/(x)>c>0.

Пусть f/(x)<0. Тогда M<0 и m<0-> c<0 и

Следовательно,
2/f/(x)<c<0.

Найдем, второй корень нашего исходного уравнения x3
6x2+3x+11=0, который лежит на интервале [1, 3] с точностью .

Сначала
найдем функцию .
В нашем случае f(x)= x3
6x2+3x+11.

Для нахождения c необходимо найти максимальное
и минимальное значения f/(x)
на отрезке [1, 3]. Для этого необходимо найти значения f/(x) на концах интервала и в точках, где f//(x)=0, т.е. в точках экстремума, если такие точки для
рассматриваемого интервала существуют. И выбрать среди этих значений f/(x) максимальное и
минимальное значения.

f/(1)=3x2-12x+3=-6, f/(3)=-6, f//(x)=6x-12=0
при x=2 , f/(2)=-8.

Следовательно,

Таким
образом, .

Вычисления
оформим в виде таблицы:

k

x

|xk+1-xk|

|f(xk)|

0

2

1

1

2.142857

0.142857

0.282799

2

2.102457

0.0404

0.07896

3

2.113737

0.01128

0.022164

4

2.110571

0.003166

0.006213

5

2.111459

0.000888

0.001742

6

2.11121

0.000249

0.000489

Здесь x0=(1+3)/2=2, , и т.д.

Условием
окончания итерационного процесса является условие: |xk+1xk|<ε или |f(xk)|<ε.

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

Напомним, что
мы решаем уравнение f(x)=0.

Метод
определяется формулой

Геометрическая интерпретация такова:
участок кривой y=f(x) при , если , или , если , заменяется отрезком касательной, проведённой
из точки xk.

Уравнение касательной имеет вид . Найдем точку пересечения, которую обозначим xk+1, касательной с осью y=0: .

Откуда .

Можно
показать, что |xk+1x*| < q * |xkx*|2,
т.е. метод сходится со вторым порядком.

Метод Ньютона можно трактовать как метод простой итерации при .

Замечание. Если известен интервал изоляции корня уравнения, в котором f//(x) не меняет знак, то
в качестве начального приближения берут тот конец интервала изоляции, для
которого знаки f(x) и f//(x) совпадают.

Найдем, третий корень методом Ньютона нашего исходного уравнения x3
6x2+3x+11=0, который лежит на интервале [4, 5] с точностью . Сначала убедимся, что f//(x) не меняет знака на
этом отрезке.

f//(x)=6x-12.
f//(x)>0 при x>2, т.е. f//(x)>0 на интервале [4,5]. Так как f(5)=1>0,
то x0=5.

Вычисления
оформим в виде таблицы:

k

xk

|xk+1-xk|

f(xk)

f/(xk)

0

5

1

18

1

4.944444

0.055556

0.027606

17.00926

2

4.942821

0.001623

2.33E-05

16.98059

3

4.94282

1.37E-06

1.66E-11

16.98057

Здесь f(xk)=xk3‑ 6xk2+3xk+11, f/(xk)=3xk-12xk+3, .

В качестве корня можно взять
значение: x=4.943. Видно, что процесс сошелся уже на
второй итерации.

Для сравнения найдем
первый корень нашего уравнения x3‑ 6x2+3x+11=0 на
отрезке [-2,-1] методом Ньютона:

Так как f//(x)=6x-12,
то f//(x)<0 на
интервале [-2,-1], а так как f(-2)=-27>0, то x0=-2.

k

xk

|xk+1-xk|

f(xk)

f/(xk)

0

-2

-27

39

1

-1.30769

0.692308

-5.41966

23.82249

2

-1.08019

0.227502

-0.50182

19.46272

3

-1.05441

0.025783

-0.00613

18.9882

4

-1.05408

0.000323

-9.5E-07

18.98229

5

-1.05408

5.02E-08

-2.3E-14

18.98229

Напомним, что методом дихотомии
мы достигли данной точности 0.001 на 10-ой итерации.

Вычислим второй корень нашего
уравнения на отрезке [1,3]. Заметим, что f//(x)=6x-12 меняет знак на отрезке при
х=2. Уменьшим интервал изоляции так, чтобы f//(x) не меняла знака. Рассмотрим интервал [2.1; 3]. f//(2.1)=6*2.1-12=0.6>0 b f(2.1)=0.101>0.
Следовательно, x0=2.1.

k

xk

|xk+1-xk|

f(xk)

f/(xk)

0

2.1

0.101

-8.97

1

2.11126

0.01126

3.95E-05

-8.96286

2

2.111264

4.4E-06

6.47E-12

-8.96286

3

2.111264

7.22E-13

0

-8.96286

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

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

Упрощенный
метод Ньютона
. Эта модификация метода Ньютона используется, если
производная f /(x) представляет
собой сложную функцию, и для ее вычисления на каждой итерации используется
много времени. Зададим x0 – начальное
приближение и вычислим производную z=f /(x0). На следующих итерациях
используется вычисленное значение производной: . Это упрощение
несколько замедляет процесс сходимости к решению, однако сокращает время
каждого итерационного цикла.

Метод хорд

В этом методе
кривая f(x) заменяется прямой линией – хордой, стягивающей точки (a, f(a)) и (b,
f(b)). В зависимости от знака выражения f(a) f //(a)
метод хорд имеет два варианта, изображенных на рис. 2 а, б.

Рис. 2. Метод хорд
для F(a)F //(a)>0 (а) и F(a)F //(a)<0
(б)

Пусть f(a)f //(a)>0 (рис. 2 а). Тогда x0=b,
точка a будет оставаться неподвижной. Следующее приближение x1
находим как точку пересечения хорды, соединяющей точки (a, f(a)) и (x0, f(x0))
с осью x. Уравнение хорды: . Тогда точка пересечения
хорды с осью x: .

Пусть теперь f(a)f //(a)<0 (рис. 2). Тогда x0=a,
точка b неподвижна. Проведем хорду, соединяющую точки (b, f(b)) и (x0, f(x0)):. Вычисляем точку пересечения
хорды с осью x: .

На следующей
итерации в качестве x0 надо взять вычисленное значение x1.

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

Если f(a) f //(a)>0, то x0=b и .

Если же f(a) f //(a)<0, то x0=a и .

Окончание
итерационного цикла в этом методе происходит по условию малости невязки
уравнения: |f(x1)| < ε или .

Задание. Найти первый и третий
корень уравнения x3‑ 6x2+3x+11=0 методом хорд.

Для первого
корня a=-2, b=-1. , тогда расчет ведется по
первым формулам: x0=b
и .

k

xk

|xk+1-xk|

f(xk)

0

-1

1

1

-1.03571

0.035714

0.345618

2

-1.0479

0.012187

0.117007

3

-1.05201

0.004108

0.039334

4

-1.05339

0.001379

0.013192

5

-1.05385

0.000462

0.004421

Для последнего корня: a=4, b=5, , тогда расчет ведется по вторым
формулам: x0=a и .

k

xk

|xk+1-xk|

f(xk)

0

4

-9

1

4.9

0.9

-0.711

2

4.941555

0.041555

-0.02147

3

4.942783

0.001229

-0.00062

4

4.942819

3.57E-05

-1.8E-05

Рейтинг@Mail.ru

Hosted by uCoz

Понравилась статья? Поделить с друзьями:
  • Как найти валентность p2o5
  • Как найти работника на автомойку
  • Как найти скрытые фотки в галерее
  • Рабочая программа как составить 2016
  • Как найти относительную атомную массу металла