С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/19: Рейтинг темы: голосов - 19, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 18.10.2014
Сообщений: 16

Решение уравнения методом простой итерации

27.03.2015, 18:11. Показов 3616. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый.
Мне необходимо решить уравнение x-10cos(x)=0 разным методами и с методом простой итерации возникла проблема.
Однако мой код постоянно выводит наименьший корень уравнения при x0>0, т.к. судя по всему ещё на первой итерации, независимо от введённого приближённого значения x становится меньше самого малого корня (и соответственно дальнейшее увеличение точности происходит по направлению к корню -9.678... И непонятно что при x0<0.

Сам код блока:
C++
1
2
3
4
5
6
7
8
double F2(double x)
{
    return (x - 10 * cos(x));
}
double F2_j(double x)
{
    return (10 * cos(x));
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
n = 0;
cout << "\nМетод простой итерации: " << "\nВведите начальное приближённое значение x0: ";
cin >> c;
c = F(c);
x = F_j(c);
do
    {
    x = F_j(x);
    n++;
    } while (abs(x - c) > eps && n <10000);
cout << "\nВычисленное значение: " << setprecision(10) << x << "\nКоличество итераций: " << n;
}
Чего не хватает в этом коде для нормальной работы метода. Пытался найти старые ответы, но нужного так и не увидел. Заранее благодарен.

Добавлено через 2 часа 36 минут
Неужели никто не поможет? =(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2015, 18:11
Ответы с готовыми решениями:

Решение нелинейного уравнения методом простой итерации
Помогите, пожалуйста! Нужно разработать программу для решения нелинейного уравнения методом простой итерации. Я код написала, но корни...

Найти корень уравнения методом простой итерации
Циклический вычислительный процесс: Найти корень уравнения х3+х2-6х=0 в интервале от -0,3 до 0,3 с точностью 0,01 методом простой ...

Решение нелинейных уравнений методом простой итерации
Реализовать заданный алгоритм для уравнения x^3+x^2-1=0, решив уравнение с заданной пользователем точностью на с++. Помогите пожалуйста не...

7
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
27.03.2015, 18:13
C++
1
2
3
4
5
do
{
   с=x;
    x = F_j(c);
....
0
1 / 1 / 0
Регистрация: 18.10.2014
Сообщений: 16
27.03.2015, 18:58  [ТС]
Это вообще ничего не меняет в алгоритме.
0
1 / 1 / 0
Регистрация: 18.10.2014
Сообщений: 16
03.04.2015, 06:35  [ТС]
Т.е. да, это код меняло, но всёравно для этого уравнения метод работает не очень хорошо.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
03.04.2015, 10:31
Цитата Сообщение от lAtlanticl Посмотреть сообщение
метод работает не очень хорошо
Метод может либо сходиться либо расходится.
Условие сходимости |f''(x)|<1.
Так что на каждом шаге итерации Вам следует вставить проверку, что
(10 * cos(x))'=10*fabs(sin(x))<1

Навскидку придется переписать уравнение в виде cos(x)=x/10
отсюда x=acos(x/10)
C++
1
2
3
4
double F2_j(double x)
{
    return acos(x/10.);
}
0
1 / 1 / 0
Регистрация: 18.10.2014
Сообщений: 16
03.04.2015, 21:36  [ТС]
Не совсем понял

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
x = F(c);
do
{
    if (fabs(1 + 10*sin(x)) < 1) {
    c = x;
    x = F_j(c);
    n++;
    }
else
    {
    x =  F_j(x);
    }
} while (abs(x - c && n<1000) > eps) ;
Я изменил францию F_j
но проверка на то, что она сходящаяся - там же вроде вторая производная? тогда там будет просто 10*cos(x), а даже если первая - то всёравно 1+10sin(x).
С изменением x если условие не выполнено тоже не уверен.
0
Модератор
Эксперт С++
 Аватар для zss
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
03.04.2015, 21:42
Цитата Сообщение от lAtlanticl Посмотреть сообщение
всёравно 1+10sin(x).
А 1 откуда?
Не путайте. Уравнение приводите к виду x=F(x) и именно эту F(x) дифференцируете.
0
1 / 1 / 0
Регистрация: 18.10.2014
Сообщений: 16
03.04.2015, 21:44  [ТС]
Зацикливается
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2015, 21:44
Помогаю со студенческими работами здесь

Решение нелинейных уравнений методом простой итерации
Решение нелинейных уравнений методом простой итерации. Реализовать заданный алгоритм для уравнения , решив уравнение с заданной...

Найти корень уравнения sin*x-х+0,16=0 в интервале от 0,5 до 1,2 с точностью 0,01 методом простой итерации
Помогите пожалуйста написать программу на c++ Такое задание: Найти корень уравнения sin*x-х+0,16=0 в интервале от 0,5 до 1,2 с точностью...

Найти корень заданного уравнения методом простой итерации с заданной точностью
Добрый день форумчане! Не могли бы вы помочь написать программу для решения данной задачи с использованием рекурсии. (№8.23)

Решение нелинейного уравнения методом итерации
Написал программу решение нелинейного уравнения методом итерации: //Метод итерации #include &lt;iostream&gt;//for cout and cin ...

Составить программу нахождения корней нелинейного уравнения методом простой итерации с точностью вычисления E
Помогите Составить программу нахождения корней нелинейного уравнения методом простой итерации с точностью вычисления E = 10-4 x3 - 3 x2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru