Основни понятия за числено решаване на уравнения

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

Така че ще приемем, че уравнението

където функцията f(x) е непрекъсната на сегмента [a; b] и диференцируеми на интервала (a; b).

Необходимо е да се реши уравнение (1), т.е. намерете множеството от всички негови реални корени с дадена точност

числено
> 0.

Универсалните изчислителни алгоритми се основават на започване от някакво първоначално приближениеx0на един от корените, което след това се подобрява (усъвършенства) до необходимата точност.

Както е известно, приблизителното намиране на корените на нелинейното уравнениеf(x)=0обикновено се състои от два етапа:

а)разделяне на корените на уравнението- намиране на достатъчно малки сегменти, принадлежащи към областта на дефиниране на f(x), всеки от които съдържа един и само един корен на уравнението (1).

б)уточняване на приближени корени– изчисляване на корени с предварително зададена точност, ако някои от първоначалните му приближения са известни в интервал, който не съдържа други корени.

Съгласно теоремата на Болцано-Коши [17], ако непрекъсната функция f(x) поеме краищата на сегмента [a; b] стойности с различни знаци, т.е. f(a) f(b) 0 е коренът x* на уравнението F(x) = 0, където F(x) е непрекъсната функция в интервала [a, b]. Приема се, че функцията удовлетворява условието F(a)*F(b)

използване на пространство от имена std;

двойно f(двойно x);

двойна нула (двойно, двойно, двойно);

а=1,2; b=1,5; setlocale(NULL, ".1251");

ако (f(a)*f(c) 0, където F(x) е непрекъсната функция върху [a, b]. Предполага се, че F(a)*F(b) 1, тогава итеративният процес се отклонява.

За конкретен резултатстойността на M (която определя скоростта на конвергенция: колкото по-малко е M, толкова по-бързо е конвергенцията), най-лесният начин е да използвате формулата:

където максимумът е взет за изолационния сегмент на корена [a; b].

Оценявайки φ'(x) за горните четири еквивалентни уравнения, съответстващи на уравнението x³–9x+3=0 (като се има предвид, че коренът на уравнението лежи в интервала [0, 1]), заключаваме, че само второто и четвъртото уравнения са подходящи за прилагане на итерационния метод към тях; за останалите уравнения, итеративният процес ще бъде различен.

Процесът на итерация обикновено продължава до условието

числено
,

където

числено
е необходимата точност на изчислението, aM= max φ'(x) , x
числено
[a; b]

Ако изчисляването на производната φ'(x) и нейната оценка са трудни, тогава е възможно да се ограничи броят на повторенията до определен брой, например n ≤ 500.

Тук представяме две решения на проблема. Първият (опростен) вариант не използва оценката на производната φ'(x). В контролния пример (вижте текста на функцията fi(x)) един от корените на уравнението x - e x + 2 = 0 върху сегмента [-2, 0], а именно x1*  -1.841402, т.е. този корен на сегмента [a, b], където (x) = e x

<inta,b; // наглост, разбира се, но прототипът ще отговаря на типовете