Вычислить корень уравнения методом Ньютона

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
jora
Сообщения: 2
Зарегистрирован: 01 янв 2018, 23:18

01 янв 2018, 23:21

Добрый день!
Помогите пожалуйста вычислить корень уравнения f(x) = 0 для функции x*cos(x)=0 методом Ньютона

Формат выходных данных:
x* – решение уравнения;
f(x*) – значение функции в найденной точке x*;
n – число итераций
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

02 янв 2018, 00:29

Удивительная лень. Достаточно ведь было загуглить метод Ньютона. Первая же ссылка ведёт на страничку на Вики, где метод разжёван три раза и внизу даже даны примеры реализации, в том числе на C и C++. Оттуда можно прямо взять готовый код, подправив в двух местах (указав свою функцию и производную своей функции) и всё сразу заработает.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

02 янв 2018, 00:48

Romeo писал(а):Удивительная лень. Достаточно ведь было загуглить метод Ньютона. Первая же ссылка ведёт на страничку на Вики, где метод разжёван три раза и внизу даже даны примеры реализации, в том числе на C и C++. Оттуда можно прямо взять готовый код, подправив в двух местах (указав свою функцию и производную своей функции) и всё сразу заработает.

Я что-то не понял задание. x*cos(x) | x<-0 = 0*1 = 0. Само уравнение равно нулю во всех точках где x=0 или x = pi/2 + pi*n | ∀n ∈ ℤ . Что считать-то ему надо?
2B OR NOT(2B) = FF
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

02 янв 2018, 12:28

Это численный метод. В общем случае решения уравнения может не быть, но корень всё равно можно будет найти при условии, что функция непрерывно дифференцируема на промежутку, в котором будет работать метод. В данном случае метод Ньютона итерационно аппроксимирует x к одному из корней уравнения. К какому именно - зависит от первого приближения.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить