Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Как проводить метод простых итераций?

Обычнонеобычный Человекозверь Мастер (1575), закрыт 2 месяца назад
Мне нужно решить методом итераций: f(x)=ln(x)+0.55x
Можете объяснить?
Лучший ответ
Amaxar 777 Гений (95014) 2 месяца назад
Возьмём уравнение:
ln(x) + 0.55 x = 0
и сотворим с ним такую гадость:
0.55 x + ln(x) = 0
0.55 x = - ln(x)
1 + 0.55 x = 1 - ln(x)
x (1 + 0.55 x) = x (1 - ln(x))
x = x (1 - ln(x)) / (1 + 0.55 x)
Уродскую правую часть обзовём как-нибудь:
Ф(x) = x (1 - ln(x)) / (1 + 0.55 x)
Теперь уравнение выглядит красиво:
x = Ф(x)
и вместо исходного уравнения можно решать это. Нашей задачей было: преобразовать уравнение так, чтобы с одной стороны равенства был x, а сдругой все остальное (это можно сделать бесконечным числом способов и получить различные функции Ф). Если мы подставим в функцию Ф число x[0], то получим какое-то другое число, назовем его x[1]:
x[1] = Ф(x[0])
Полученное число x[1] снова подставим в функцию Ф, получим новое число x[2]:
x[2] = Ф(x[1])
Продолжим итерации (в данном контексте итерация - это одна такая подстановка и получение нового числа):
x[3] = Ф(x[2])
x[4] = Ф(x[3])
x[5] = Ф(x[4])
и так далее... Получили итерационный процесс:
x[k+1] = Ф(x[k])
Если нам повезло, и мы хорошо выбрали функцию Ф(x), и хорошо выбрали "начальное приближение" (так называют число x[0], с которого начинается итерационный процесс), то этот процесс приведет нас к тому, что какое-то очередное число x[k] не будет отличаться (с опредёленной точностью) от предыдущего числа x[k-1]. Если такое произошло, окажутся верными сразу два равенства:
x[k] = x[k-1]
x[k] = Ф(x[k-1])
Если исключить из этих равенств x[k-1], то получим:
x[k] = Ф(x[k])
А это значит, что x[k] стал равным решению уравнения (говорят, что итерационный процесс сошёлся к решению).
В целом этого достаточно, чтобы бездумно применить метод простых итераций. Если нам повезет, то он у нас сойдется к корню и все. Но, по-хорошему, нужно ставить вопрос о том, как выбирать функцию Ф(x). И иногда приходится несколько раз "поугадывать" хорошее начальное приближение x[0]. Если посмотреть на исходное уравнение, видно следующее:
x > 0 (ОДЗ)
0.55 x > 0
0.55 x = - ln(x) > 0
ln(x) < 0
x < 1
Выходит, мы поняли, в какой области находится решение:
0 < x < 1
Просто возьмем теперь начальное приближение x[0] прямо в середине этого промежутка и начнём итерации:
x[0] = 0.5
x[1] = 0.663979
x[2] = 0.685533
x[3] = 0.685789
x[4] = 0.685789
В точности 10^-6, с которой выведены числа, x[k] перестали меняться. Значит мы нашли корень с точностью 10^-6.
Усё.
Хулиганов ИосифИскусственный Интеллект (262481) 1 месяц назад
Хитрый какой! ))
Это таки не простой метод итерации. Подозрительно быстро сходится...)
Amaxar 777 Гений (95014) Ну дык и так простыня текста получилась (настроение было такое... ченить простенькое поковырять для отдыха). Неужто мне тут надо было еще добавить выяснение условий сходимости и объяснение метода Ньютона?))
Остальные ответы
Хулиганов Иосиф Искусственный Интеллект (262481) 1 месяц назад
А что нужно решать методом итераций?
Это метод для численного решения уравнений (или систем уравнений). А где твое уравнение?
Похожие вопросы