АZ
Аkram Zaidov

Delfi !!!Найдите корни уравнения ех – 10х = 0 с точностью эпсилам методом простой итерации.

Найдите корни уравнения ех – 10х
= 0 с точностью e методом простой итерации.

Иван
Иван

Первый корень и так понятен: 0
А второй вот:

АК
Александр Комиссаров

Очень поучительная задача. Как известно, метод простой итерации применяется для решения уравнений вида x = Ф (x). При этом отображение Ф (x) должно быть сжимающим, т. е. , |Ф (x1)-Ф (x2)| < |x1-x2|

Прежде всего, нужно локализовать корни.
При x = 0 получаем exp(0) - 10*0 = 1 > 0
При x = 1 получаем exp(1) - 10 < 3 - 10 = -7 < 0
При x = 3 получаем exp(3) - 30 < 3^3 - 30 = -3 < 0
При x = 6 получаем exp(6) - 60 > 2^6 - 60 = 4 > 0
Получаем, что один корень следует искать в области (0, 1), а второй - в области (3, 6)

В данном случае в глаза бросаются два способа привести исходное уравнение к виду, допускающему применение метода сжимающих отображений:
а) x = exp(x) / 10
б) x = ln(10x)

Рассмотрим первый вариант: x = exp(x)/10. Здесь Ф (x) = exp(x)/10. Очевидно, при x < 1:
exp(x) = 1 + x + x^2/2 + x^3/6 + .
то есть,
exp(x) > 1 + x + x^2/2
exp(x) < 1 + x + x^2/2 + x^3/2
Следовательно:
|Ф (x1)-Ф (x2)| < |x1-x2|/10 + |(x1)^2-(x2)^2|/20 + |(x1)^3-(x2)^3|/20 <
|x1-x2| * (1/10 + (x1+x2)/20 + (x1^2 + x1 x2 + x2^2)/20)
Так как при любых x1, x2 < 1 второй множитель будет меньше 7/20, то оказывается, что на интервале (0, 1) это отображение является сжимающим. Для второго интервала локализации корней, 3 < x < 6, это отображение уже не подходит.

Другое дело второй вариант: x = ln(10x). Здесь Ф (x) = ln(10x). Получаем:
ln(10 x1) - ln(10 x2) = ln(x1) - ln(x2)
Если заменить x1 = exp(t1), x2 = exp(t2) (t1 > 1, t2 > 1), то получим:
|x1 - x2| = |exp(t1)-exp(t2)| > |t1-t2| * (1 + (t1+t2)/2) > 2 * |t1-t2| = 2 * |Ф (x1)-Ф (x2)|
Таким образом, для интервала 3 < x < 6 это отображение подходит.

Получаем программу:

PROGRAM iter;

CONST
eps = 1e-5;

FUNCTION F1(x:real) : real;
BEGIN
F1 := exp(x)/10;
END;

FUNCTION F2(x:real) : real;
BEGIN
F2 := ln(10*x);
END;

VAR
x0, x1 :real;

BEGIN

(* first root 😉
x0 := 0.5;
x1 := F1(x0);

WHILE abs(x1-x0) > eps DO
BEGIN
x0 := x1;
x1 := F1(x0);
END;

WriteLn(x1);

(* second root 😉
x0 := 4;
x1 := F2(x0);

WHILE abs(x1-x0) > eps DO
BEGIN
x0 := x1;
x1 := F2(x0);
END;

WriteLn(x1);

ReadLn;

END.

Похожие вопросы
правильно ли у меня метод итераций???
Как решить уравнение в Паскле методом итераций?
найдите корни уравнения. х4 -13х2 + 36=0
как решить уравнение 10х^+5х=0
как в паскале написать решение уравнения cos1,3x-2x методом итераций?
Найдите корни уравнения x2 + 7x-18 = 0.
решить нелинейное алгебраическое уравнение методом простой итерации 2-ln(x)-x=0
Найдите корни уравнения (2,5у -4)(6у+1,8) = 0. Найдите корни уравнения (2,5у -4)(6у+1,8) = 0
как решить нелинейное уравнение методом бисекций, и итерации?
Суть метода итераций