Chu11

Тука сложи заглавие


страницата се нуждае от дописване/преглеждане


Числено решаване на нелинейни уравнения

Ще разгледаме едно уравнение от степен 5.

Задача

$f(x) = 0, f(x) = x^5 - 3x^4 - 8x^2 + 7$
а) Да се определи горна граница за положителните му корени, използвайки правилото на Лагранж.
б) Да се определи броят на положителните и отрицателните му корени, като се използва теорремата на Декарт.
в) Да се локализират реалните му корени в интервали с дължина 1.
г) Да се построят сходящи итерационни процеси за намиране на всеки от реалните корени.

Решение:
а)
Правилото на Лагранж: Даден е f(x) - алгебричен полином с реални коефициенти, $f(x) = a_0x^n + ... + a_n, {a_i}_0^n$ -
реални, a_0 > 0. Ако x_0 е положителен корен на f(x) = 0, то x_0 < 1 + root{k}(\frac A {a_0}), където
k - най-малкият индекс на отрицателен коефициент
A - модулът на най-малкия отрицателен коефициент

В случая k = 1, A = 8
1 + root{1}(8) = 9 - (груба) горна граница за положителните корени.

б) Теоремата на Лагранж: Z(f; (0,\Infty)) \le S^-(a_0, …, a_n) (С ДУМИ)
В случая редицата е (1, -3, 0, -8, 0, 7). Смени на знака имаме между (1, -3) и (-8, 0, 7) (напомняме: Силни смени:
смени на знака между различни от 0 числа).

Z(f; (0, \Infty) \le S^- (1, -3, 0, -8, 0, 7) = 2 => 0 или 2 положителни корена в (0, \Infty).
f(0) = 7, f(1) = -3, следователно имаме поне един положителен корен, следователно са 2. И, също така, имаме корен в (0, 1).
Отрицателните корени на f(x) са положителнни корени на f(-x).
f(-x) = -x^5 -3x^4 - 8x^2 + 7.
S^- = (-1, -3, 0, -8, 0, 2) = 1 => един отрицателен корен на f(x).

в) От б) имаме: положителен корен в (0, 1).
f(1) = -3 ; f(3) = -65 - отново надясно от тройката имаме корен
f(4) = 135 => имаме положителен корен между 3 и 4. Забелязваме колко далече оттук е 9, което получихме в а) .
f(0) = 7 ; f(-1) = -5
Та, имаме корени в (-1, 0), (0, 1), (3, 4) .

г) Търсим корена от първия интервал: Числуно пресмятане на \xi \in (-1, 0).
На лекцията разгледахме три метода: на хордите, секущите и допирателните (последният още се нарича метод на Нютон).
Искаме функцията да е изпъкнала или вдлъбната. За целта ще изследваме знаците на производните.

f'(x) = 5x^4 - 12x^3 - 16x \gt 0 в интервала (-1, 0). За да избегнем "съмненията" около метода, свиваме интервала:
f(\frac {-1} 2) = \frac {153} {32} - следователно коренът е в (-1, \frac {-1} 2). Тогава можем да напишем, че f'(x) е
строго положително в този интервал - функцията е монотонно растяща в него.

f''(x) = 20x^3 - 36x^2 - 16 < 0 в (-1, -\frac 1 2). Функцията е монотонно растяща и вдлъбната [КАРТИНКА].

Метод на хордите

Последователно строим хорди, единият край на които е фиксиран (неподвижна точка). Първата хорда свързва
f(a) и f(b) - краищата на интервала. Неподвижната точка е този от краищата на интервала, в който f.f'' > 0. Тъй като
втората производна е отрицателна, то искаме f(x) < 0 - избираме f(-1) за неподвижна точка.
$x_0 = \frac -1 2$. Хордата $(f(-1), f(-\frac 1 2))$ пресича абсцисата в точка x_1, лежаща между неподвижната точка -1 и x_0.
Строим хордата (f(-1), f(x_1)). Тя пресича абсцисата в x_2, лежаща между -1 и x_1. Повтаряме. Така получаваме редица
от стойности, приближаваща се към търсения интервал.

$x_0 = -\frac 1 2$
$x_{n+1} = x_n - \cfrac {f(x_n)} {f(x_n) + f(-1)}(x_n + 1) = x_n - \cfrac {f(x_n)} {f(x_n) + 5} (x_n + 1)$

Реализираме метода в Mathematica:

f[x_] := x^5 - 3 x^4 - 8 x^2 + 7;
x = - 0.5;
(* Важно е да напишем -0.5, а не -1/2, защото сметките стават \
мноооого бавни. *)

Do[x = x - f[x] * (x + 1)/(f[x] + 5), {n, 1, 30}];
(* По някаква причина се изписват малко цифри. Но го изкопирайте \
някъде другаде - така ще видите всичките 16 цифри - \
-0.8151398737568615 *)
Print[N[x, 16]]

Метод на Нютон

Отново имаме неподвижна точка - в нея f.f'' > 0. В случая x_0 = -1 .
Строим допирателната в x_0, която пресича абсцисата в x_1. Повтаряме.

$x_0 = -1;$
$x_{n+1} = x_n - \cfrac {f(x_n)} {f'(x_n)}$
$n = 0, 1, \dots$

Оценка за $x_n : |x_n - \xi| \le \frac M {2m} (x_n - x_{n-1})^2$ , където
$M = max_{x \in [-1, -\frac 1 2} |f''(x)|$
$m = min_{x \in [-1, -\frac 1 2} |f'(x)|$

f'(x) е положителна и монотонно намаляваща В [-1, -\frac 1 2]
$m = |f'(-\frac 1 2)| = \frac {157} {16}$
f''(x) е отрицателна и монотонно растяща
$M = |f''(-1)| = 72$
$\frac M {2m} = \cfrac {72} {\frac {157} 8} = \frac {576} {157} < 4$

$|x_n - \xi| < 4(x_n - x_{n+1})^2$
Това число е нашият толеранс - достатъчно е дясната страна да е по-малка от искания от нас \eps

f[x_] := x^5 - 3 x^4 - 8 x^2 + 7;
Eps = 10^(-15); (* желаната точност *)
x = -1.; (* начално приближение. Точката е важна, за да накараме Mathematica да смята в реални дроби. *)
y = -1/2; (* x[n-1] - в началния момент друго нямаме, затова задаваме другия край на интервала за стойност *)
(* Тук y е в рационален вид, но точката горе след x е достатъчна, за да се ориентира програмата в какви числа да смята. *)
n = 0; (* брой итерации за постигане желаната точност *)

While [4(x - y)^2 > Eps, y = x; x = x - f[x]/f'[x]; n += 1];
Print[{N[x, 16], n}]

Метод на секущите

x_0, x_1, f.f'' > 0

x_{n+1} = x_n - \cfrac {f(x_n)} {f(x_n) - f(x_{n+1})} (x_n - x_{n+1})
n = 1, 2, \dots

Оценка за грешката: |x_n - \xi| \le \frac M {2m} |x_{n+1} - x_n| |x_n - x_{n-1}|

Eps = 10^(-15);
f[x_] := x^5 - 3 x^4 - 8 x^2 + 7;
x = -1; y = -0.9; z = 0; n = 0;
While[4Abs[(x-y)(x-z)] >= Eps, xn = x - f[x](x - y)/(f[x] - f[y]); z = y; y = x; x = xn;  n+= 1];
Print[{N[x, 16], n}]

Числено намиране на корена в [3, 4] по метода на свиващите уравнения

$f(x) = 0 \Leftrightarrow x = \phi(x)$

$\xi \in (a, b)$ - единствен корен на f в (a, b)
Ако $\phi: [a, b] \rightarrow [a, b]$ е свиващо с константа 0 < q < 1, тогава за всяко x_0 \in [a, b], редицата
${x_n}_{n=0}^\infty$, построена посредством $x_{n+1} = \phi(x_n)$, клони към \xi, и е изпълнено:
$|x_n - \xi| \le q^n (b-a) , \forall n$

$x^5 - 3x^4 - 8x^2 + 7 = 0$
$x^4(x - 3) = 8x^2 - 7$
$x - 3 = \cfrac {8x^2 - 7} {x^4}$
$x = 3 + \cfrac {8x^2 - 7} {x^4} = \phi(x)$

Трябва да проверим дали:
1) $\phi: [3, 4] \rightarrow [3, 4]$ ?
2) \phi е свиващо в [3, 4] ?

1) При $x \in [3, 4], 3 < \phi(x) < 3 + \frac 8 9 < 4$

2) За да бъде \phi свиващо, е достатъчно
$|\phi'(x)| \le q < 1 , \forall x \in [3, 4]$

$\phi'(x) = -\cfrac {16} {x^3} + \cfrac {28} {x^5} = \cfrac {28 - 16x^2} {x^5}$ - Вижда се, че е по-малко от 0 в [3, 4]
Интересуваме се от максимума на модула, затова гледаме и втора производна:
$\phi'(x) = \cfrac {48} {x^4} - \cfrac {140} {x^6} = \cfrac {48x^2 - 140} {x^6} > 0$ в [3, 4]

Първата производна е отрицателна в [3, 4] и е растяща, следователно
$max_{x \in [3, 4]}|\phi'(x)| = |\phi'(-3)| = \cfrac {16.3^2 - 28} {3^5} = \cfrac {116} {243} = q < 1$
Следователно изображението е свиващо.

$(x_n - \xi) \le (\cfrac {116} {243})^4 (4 - 3)$

n = 0; x = 3.; Eps = 10^(-15);
(* Няма значение какво залагаме за x0 *)
While[(116/243)^n >= Eps, x = 3 + 8/x^2 - 7/x^4; n += 1];
Print[{N[x, 16], n}]

Бонус

Ако е установено, че \phi е свиващо в [a, b] - \Exist q, 0 < q < 1, такова, че
|\phi(x) - \phi(y)| \le q |x - y| , \Forall x, y \in [a, b]
, проверката, че \phi изобразява [a, b] [a, n] е лесна в 2 случая:

1. Ако \phi'(x) \ge 0 в [a, b]
x_n - \xi = \phi(x_{n-1}) - \phi(\xi) = \phi'(\theta).(x_{n-1} - \xi) , \theta - между x_{n-1} и \xi
x_n - \xi и x_{n-1} - \xi са с еднакви знаци, x_n е в интервала между x_{n-1} и \xi .
Ако x_{n-1} \in [a, b] \rightarrow x\n \in [a, b]
\Rightarrow Ако x_0 \in [a, b] \rightarrow x\n \in [a, b] , \Forall n

2. Ако \phi'(x) \le 0 в [a, b]
Тук $x_n - \xi$ и $x_{n-1} - \xi$ са с противоположни знаци.
Ако $x_{n-1}$ и $x_n$ са от [a, b] $\rightarrow x_m \in [a, b], \forall m \ge n - 1$
$\rightarrow$ Ако, при $x_0 \in [a, b], x_1 \in [a, b] \rightarrow x_n \in [a, b], \forall n$

В дадения пример (онзи горе), \phi'(x) < 0, \phi - свиващо
$x_0 = 3, x_1 = 3 + \frac 8 9 - \frac 7 {81} = 3 \frac {65} {81}$

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License