Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Метод Ньютона зацикливается
СообщениеДобавлено: 25 апр 2020, 19:01 
Не в сети
Одарённый
Зарегистрирован:
20 апр 2019, 13:04
Сообщений: 128
Cпасибо сказано: 19
Спасибо получено:
3 раз в 3 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Здравствуйте,

существует метод Ньтона для решения нелинейных уравнений. При решении уравнения x*x*x - x = 0 при начальных приближениях x=1/sqrt(5) и x = -1/sqrt(5) он зацикливается, по крайней мере на моей реализации.

double f(double x) 
{
return x*x*x - x;
}

double df(double x)
{
return 3*x*x - 1;
}

double newton(double x, double eps)
{
int counter = 0;
double h = f(x) / df(x);
while (abs(h) >= eps)
{
h = f(x)/df(x);
// x(i+1) = x(i) - f(x) / f'(x)
x = x - h;
}
return x;
}


Однако на веб-сервисах этот метод реализован так, что корень обнаруживается, например тут: https://planetcalc.com/7748/

судя по логу промежуточных решений там происходит своего рода скачок на 17 итерации и метод сходится.

Кароче, как принято решать такие проблемы зацикливаний?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Метод Ньютона зацикливается
СообщениеДобавлено: 25 апр 2020, 19:29 
Не в сети
Light & Truth
Аватара пользователя
Зарегистрирован:
03 апр 2012, 19:13
Сообщений: 13534
Откуда: Москва
Cпасибо сказано: 1290
Спасибо получено:
3616 раз в 3175 сообщениях
Очков репутации: 678

Добавить очки репутацииУменьшить очки репутации
Все зависит от начального приближения.
1) начальное приближение

x=5
print x
for i=1 to 10
z=x-(x^3-x)/(3*x^2-1)
x=z
print x
next i

то в результате получим

5
3.37838
2.32001
1.64878
1.2528
1.06041
1.0048
1.00003
1
1
1

Корень x = 1

2) начальное приближение x=0.2
(первая строка проги)
получим
0.1
-0.00206186
1.75311e-08
-9.92617e-24
0
0
0
0
0
0
0

3) начальное приближение x=-5
получим
-5
-3.37838
-2.32001
-1.64878
-1.2528
-1.06041
-1.0048
-1.00003
-1
-1
-1

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Метод Ньютона зацикливается
СообщениеДобавлено: 25 апр 2020, 19:42 
Не в сети
Одарённый
Зарегистрирован:
20 апр 2019, 13:04
Сообщений: 128
Cпасибо сказано: 19
Спасибо получено:
3 раз в 3 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Avgust
да, мне известно, что метод не зацикливается на других начальных приближениях. Меня интересует что делать со случаем зацикливания. Вот я привел пример x=1/sqrt(5), метод зацикливается на моей реализации, однако онлайн калькуляторы как-то выкручиваются, например тот что я привел выше или альфа вольфрам.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Метод Ньютона зацикливается
СообщениеДобавлено: 25 апр 2020, 19:48 
Не в сети
Последняя инстанция
Зарегистрирован:
08 апр 2015, 12:21
Сообщений: 7565
Cпасибо сказано: 229
Спасибо получено:
2748 раз в 2536 сообщениях
Очков репутации: 472

Добавить очки репутацииУменьшить очки репутации
constantin01 писал(а):
Кароче, как принято решать такие проблемы зацикливаний?

Очень просто - ставьте счетчик числа итераций внутри цикла и добавьте ещё условие выхода: если число итераций превысило 10. Для ньютоновских алгоритмов характерна быстрая сходимость, которая укладывается в этот лимит. Неплохо ещё считать норму на каждой итерации - она должна быть меньше единицы, что гарантирует сходимость, если нет, то надо выбирать другое начальное приближение.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Метод Ньютона зацикливается
СообщениеДобавлено: 06 июл 2021, 14:12 
Не в сети
Одарённый
Зарегистрирован:
16 дек 2018, 08:36
Сообщений: 109
Cпасибо сказано: 37
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
constantin01 писал(а):
Меня интересует что делать со случаем зацикливания

- я делал так: снижал поправку на решение в несколько раз (3-10) для первых нескольких шагов, затем снижение убирал.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Метод Ньютона зацикливается
СообщениеДобавлено: 06 июл 2021, 14:15 
Не в сети
Одарённый
Зарегистрирован:
16 дек 2018, 08:36
Сообщений: 109
Cпасибо сказано: 37
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
michel писал(а):
считать норму на каждой итерации - она должна быть меньше единицы, что гарантирует сходимость

- где про это прочитать?

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему      Страница 1 из 1 [ Сообщений: 6 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Метод Ньютона

в форуме Численные методы

kivikivi_777

0

521

30 апр 2014, 10:28

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

в форуме Алгебра

Alexandr_ov

2

430

09 фев 2015, 15:36

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

в форуме Maple

Ciber15

0

390

15 окт 2018, 13:18

МЕТОД НЬЮТОНА

в форуме Численные методы

penguin267

3

277

07 ноя 2020, 08:40

Метод секущих(Ньютона)

в форуме Численные методы

Cathrine

3

404

09 июн 2016, 10:37

Метод Ньютона(касательных)

в форуме Численные методы

Isamy

14

649

16 мар 2023, 14:32

Метод Ньютона и матрица Гессе

в форуме Исследование операций и Задачи оптимизации

K1b0rg

0

223

22 фев 2020, 21:11

Метод Ньютона, найти ноль

в форуме Численные методы

K1b0rg

5

240

22 фев 2020, 19:39

Нахождение минимума функции. Метод Ньютона

в форуме Пределы числовых последовательностей и функций, Исследования функций

stylecolor

12

1452

17 окт 2015, 18:38

Как измерить метод Ньютона для нелинейных уравнений?

в форуме Численные методы

Hackgamn

4

571

06 мар 2018, 05:39


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2023 MathHelpPlanet.com. All rights reserved