1 / 1 / 0
Регистрация: 25.10.2014
Сообщений: 21
|
||||||
1 | ||||||
Нахождение корня нелинейного уравнения методом итерации06.01.2015, 11:00. Показов 6917. Ответов 11
Метки нет (Все метки)
Прошу помочь разобраться в ошибке. Есть рабочий код с++ для нахождения корня методом итерации уравнения (cosh(0.7*x)-9)/3.5. Но при подстановке иного уравнения pow(x,3)-0.2*pow(x,2)+0.5*x+1.5 (а именно оно и необходимо) выдает, что корень равен бесконечности. В чем соль метода? В чем разница? Код прилагается:
0
|
06.01.2015, 11:00 | |
Ответы с готовыми решениями:
11
Нахождение корня нелинейного уравнения на заданном участке Решение нелинейного уравнения методом итерации Решение нелинейного уравнения методом простой итерации Нахождение корня уравнения методами дихотомии и итерации |
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
|
|
06.01.2015, 12:12 | 2 |
Доброе утро!
1) читали ли вы хоть где-нибудь, что такое метод итерации? Если я правильно понимаю, тут (да и вообще на любом тематическом сайте) написано, что должно быть вместо вашего F: http://ru.m.wikipedia.org/wiki... й_итерации
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
|
|
06.01.2015, 12:43 | 3 |
1. Надо свести уравнение к виду x=f(x):
x=-2x3+0.4x2-3. 2. Условие сходимости fabs(f'(x))<1 f'(x)=-6x2+0.8x Т.е. x0=-2 не годится Можно начать с x0=0
1
|
1 / 1 / 0
Регистрация: 25.10.2014
Сообщений: 21
|
|
06.01.2015, 13:40 [ТС] | 4 |
Подскажите как дальше использовать в коде приведенное к нужному виду уравнение.
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
|
||||||
06.01.2015, 13:48 | 5 | |||||
Так, как Вы делали - заменить фунцию F:
0
|
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
|
|
06.01.2015, 14:50 | 6 |
Хм.. А там не должно еще прибавляться x? Ведь по сути когда f(x) станет примерно равным x, получится, что x не корень f(x), а принимает захначение примерно x.
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
|
|
06.01.2015, 14:56 | 7 |
Нам и нужно найти такое x, что f(x)=x
Еще раз: Вы запоминаете старое значение ( x0=xn; ) Вы вычисляете y=f(x); А xn присваиваете y ( xn=y; ) и повторяете до тех пор, пока старое и новое x не станут почти одинаковыми fabs(x0-xn)<eps
0
|
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
|
|
06.01.2015, 14:57 | 8 |
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
|
|
06.01.2015, 15:02 | 9 |
Как это не корень!!!!
Левая часть равна правой, значит, корень! Преобразуйте снова к x3-0.2x2+0.5x+1.5 и убедитесь, что это выражение равно нулю.
0
|
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
|
|
06.01.2015, 15:04 | 10 |
А, у вас f обозначает не то, что в условии у автора. Ладно, поставлю вопрос иначе. Откуда оно у вас такое вышло?
UPD: да, правильно ли я понимаю, что автор хочет решить такое уравнение: ? А то может я и условие не так понял? UPD2: я понял, что вы сделали, спасибо!
0
|
Модератор
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
|
|
06.01.2015, 15:09 | 11 |
1. Переносим 0.5x в правую часть
x3-0.2x2+1.5=-0.5x 2. Делим на -0.5 -2x3+0.4x2-3=x
0
|
122 / 24 / 6
Регистрация: 31.12.2014
Сообщений: 164
|
|
06.01.2015, 15:15 | 12 |
Да, уже понял, спасибо больше. Сначала думал, у вас f = что в условии, потому долго не понимал, как ЭТО может быть корнем. А потом стала неожиданной мысль о том, что x можно вот так взять и выразить. Никогда такого удачного примера(многочлена) не встречал, всегда в лучшем случае Ньютон получался.
Добавлено через 3 минуты И да, я всё равно не понял, как может работать тот рабочий код из 1 сообщения..
0
|
06.01.2015, 15:15 | |
06.01.2015, 15:15 | |
Помогаю со студенческими работами здесь
12
Приближённое значение корня уравнения методом деления отрезка пополам и методом итерации Расчёт корня нелинейного уравнения (Методом итераций) Вычисление корня нелинейного уравнения методом Золотого сечения. Составить программу нахождения корней нелинейного уравнения методом простой итерации с точностью вычисления E Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |