Методы решения нелинейных уравнений. Тема 7

Содержание

Слайд 2

Решение нелинейных уравнений Математической моделью многих процессов является функциональная зависимость y

Решение нелинейных уравнений
Математической моделью многих процессов является функциональная зависимость y =

f(x).
Одной из задач исследования таких зависи-мостей является нахождение значений x, при которых функция f (x) обращается в ноль, т.е. за-дача решения уравнения:
f(x) = 0. (1)
Точное решение данного уравнения будем обозначать x, а приближенное x*.
Слайд 3

Методы решения делятся на прямые и числен-ные (итерационные). Прямой метод –

Методы решения делятся на прямые и числен-ные (итерационные).
Прямой метод – существует

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

Решение уравнения f(x) = 0 осуществляется в два этапа: 1) приближенное

Решение уравнения f(x) = 0 осуществляется в два этапа:
1) приближенное определение

местоположе-ния и вид интересующего нас корня – этап отделения корней (нахождение грубых корней);
2) вычисление выбранного корня с заданной точностью (погрешностью) ε.
Слайд 5

Первая задача может быть решена: 1) на заданном отрезке [a, b]

Первая задача может быть решена:
1) на заданном отрезке [a, b] вычисляется

таблица значений функции с некоторым шагом h и определяются интервалы (αi , βi) длиной h, на которых функция меняет знак (график функции пересекает ось Х), т.е. где находятся корни;
2) графическим методом: по построенной в п.1 таблице строится график и аналогично определя-ются интервалы, на которых находятся корни.
Слайд 6

Виды корней: а) х*1 – кратный корень; б) х*2 – простой

Виды корней:
а) х*1 – кратный корень;
б) х*2 – простой корень;


в) х*3 – вырожденный корень.
Слайд 7

Для кратного корня (а) : Для простого корня (б) : Для

Для кратного корня (а) :

Для простого корня (б) :

Для

вырожденного корня (в) :

не существует,

Слайд 8

Как видно из рисунка 2.1, в случаях a) и в) значение

Как видно из рисунка 2.1, в случаях a) и в) значение

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

Метод простой итерации Уравнение f(x) = 0 (1) записывают в разрешен-ном

Метод простой итерации
Уравнение f(x) = 0 (1) записывают в разрешен-ном

относительно x виде:
x = ϕ (x) . (2)
Переход от (1) к эквивалентной записи (2) мо-жно сделать многими способами, например,
ϕ (x) = x + ψ (x) ⋅ f (x) , (3)
где ψ(x) − произвольная, непрерывная, знако-постоянная функция (часто достаточно выбрать ψ = const из диапазона ±0.1 − 0.9).
В этом случае корни уравнения (2) являются также корнями (1), и наоборот.
Слайд 10

Исходя из (2) члены рекуррентной последо-вательности вычисляются по формуле xk =

Исходя из (2) члены рекуррентной последо-вательности вычисляются по формуле
xk = ϕ

(xk − 1) , k = 1, 2, … (4)
Вычисления xk продолжаем до тех пор, пока
| xk − xk − 1 | > ε;
где ε − заданная точность решения.
Метод одношаговый, т.к. последователь-ность x0, x1, …, xk−1 имеет первый порядок (m=1) и для начала вычислений достаточно знать одно начальное приближение: x0 = α, или x0 = β, или x0 = (α + β) / 2.
Слайд 11

Геометрическая иллюстрация сходимости и расходимости метода простой итерации предста-влена на рисунке,

Геометрическая иллюстрация сходимости и расходимости метода простой итерации предста-влена на рисунке,

из которого видно, что метод не всегда сходится к точному решению.
Слайд 12

Условия сходимости метода простой итера-ции: 1) ϕ (x) − дифференцируема; 2)

Условия сходимости метода простой итера-ции:
1) ϕ (x) − дифференцируема;
2) выполняется

неравенство
| ϕ'(ξ) | < 1,
для любого ξ ∈ (α, β); x* ∈ (α, β). (5)
Максимальный интервал (α, β), для которого выполняется (5), называется областью сходимо-сти.
При выполнении условия (5) метод сходится, если начальное приближение x0 выбрано из обла-сти сходимости.
Слайд 13

x0 – начальное приближение, е – точность, k – число итераций,

x0 – начальное приближение, е – точность, k – число итераций,

x1 – очередное приближение, fi − правая часть (4), т.е. вычислительная формула.
Число итераций рекомендуется ограничить.

Схема алгоритма метода простой итерации:

Слайд 14

Метод Ньютона Этот метод − модификация метода простой итерации. Если f(x)

Метод Ньютона
Этот метод − модификация метода простой итерации. Если f(x) имеет

непрерывную произво-дную и f(x) − дважды непрерывно дифференци-руемая функция, то, выбрав
ψ (x) = 1 / f '(x) ,
получаем эквивалентное уравнение
x = x − f(x) / f '(x) = ϕ(x) .
Расчетная формула метода Ньютона

(6)

Слайд 15

Метод одношаговый (m = 1), т.к. для начала вычислений требуется задать

Метод одношаговый (m = 1), т.к. для начала вычислений требуется задать

одно начальное приближение x0 из области сходимости x0 = α при f (α) f "(α) > 0, или x0 = β при f (β) f "(β) > 0.
Метод Ньютона получил название «метод касательных» благодаря геометрической иллю-страции его сходимости (рис. 2.4).
Основной его недостаток − малая область сходимости и необходимость вычисления про-изводной f '(x).
Слайд 16

Слайд 17

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

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

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

(7)

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

Слайд 18

Метод одношаговый (m = 1) и его условие сходимости при правильном

Метод одношаговый (m = 1) и его условие сходимости при правильном

выборе h такое же, как у метода Ньютона.
Начальное приближение выбирается сле-дующим образом:
если f (a) f "(х) < 0, то x0 = а;
если же f(b) f "(x) < 0, то x0 = b;
где значение x принадлежит интервалу с корнем.
Слайд 19

Метод Вегстейна Этот метод – модификация метода секущих. В нем при

Метод Вегстейна
Этот метод – модификация метода секущих. В нем при расчете

приближенного значения произ-водной используется вместо точки xk−1 – h в (7) точка xk−2 , полученная на предыдущей итерации (рис. 2.7).
Расчетная формула метода Вегстейна:
Слайд 20

Метод двухшаговый (m = 2), т. к. для начала вычислений требуется

Метод двухшаговый (m = 2), т. к. для начала вычислений требуется

задать 2 начальных при-ближения.
Обычно выбирают: x0 = α, x1 = β.
Метод Вегстейна сходится медленнее ме-тода секущих, однако, требует в 2 раза меньше вычислений f (x) и за счет этого оказывается бо-лее эффективным.
Слайд 21

Иллюстрация метода Вегстейна

Иллюстрация метода Вегстейна

Слайд 22

Метод деления отрезка пополам Его алгоритм основан на построении рекур-рентной последовательности

Метод деления отрезка пополам
Его алгоритм основан на построении рекур-рентной последовательности

по следующему правилу:
1) в качестве начального приближения выби-раются границы интервала, на котором точно находится один простой корень x0 = a, x1 = b;
2) находится его середина x2 = (x0 + x1) / 2;
3) очередная точка x3 выбирается как середина интервала [x0, x2] или [x2, x1], на котором находится корень.
Слайд 23

Алгоритм поиска всех простых корней 1. Начало цикла для x, изменяющегося

Алгоритм поиска всех простых корней
1. Начало цикла для x, изменяющегося от

a до b с шагом h (h > ε, например h = ε * 10).
2. Если условие f (x) ⋅ f (x + h) < 0 выполня-ется, то на отрезке [x, x + h] существует простой корень уравнения f (x).
3. Вызываем созданную функцию, реализу-ющую выбранный алгоритм, с параметрами: отре-зок [x, x + h], на котором существует корень, вид функции f (x) и заданная точность ε.
4. Выводим на экран полученное значение.
5. Конец цикла.
Слайд 24

Алгоритм поиска особых корней 1. Начало цикла для x, изменяющегося от

Алгоритм поиска особых корней
1. Начало цикла для x, изменяющегося от a

до b с шагом h (h ≤ ε).
2. Если f (x) < ε, то xn = x – начало отрезка, на котором вероятно существует особый корень ура-внения f (x), продолжаем цикл (continue;).
3. Если f (x) > ε, то xk = x – конец искомого отрезка. Выводим на экран полученный интервал [xn, xk] и либо продолжаем поиск другого корня, либо выходим из цикла (break;).
5. Конец цикла.
Слайд 25

Рассмотрим часть кода для поиска всех про-стых корней на отрезке [a,

Рассмотрим часть кода для поиска всех про-стых корней на отрезке [a,

b]:
. . .
for ( x = a; x <= b; x += h)
if ( fun (x) * fun (x + h) < 0) {
nom++;
y = Metod ( fun, x, x + h, eps );
// Вывод номера nom и приближенного корня y
cout << " Root " << nom
<< " = " << y << endl;
}
if (nom == 0)
// Вывод сообщения, что корней нет
Слайд 26

В предложенном коде объявляются: 1) тип указателя на функцию type_f, исполь-зующийся

В предложенном коде объявляются:
1) тип указателя на функцию type_f, исполь-зующийся в

функции Metod в качестве первого параметра:
typedef double ( *type_f ) ( double );
2) прототипы функций пользователя:
double fun (double);
double Metod ( type_f, double, double, double);
. . .
Определение заданной функции f (x):
double fun (double x) {
return «Вид функции»; // 4*x - 7*sin(x);
}
Слайд 27

Метод деления отрезка пополам Прототип функции имеет следующий вид: double Metod

Метод деления отрезка пополам
Прототип функции имеет следующий вид:
double Metod (type_f, double,

double, double);
первый параметр type_f – объявленный ранее операцией typedef, тип указателя на функцию;
три double параметра используются для передачи значений начала и конца отрезка, на котором существует корень, и для заданной точности ε.