Показать сообщение отдельно
Старый 13.11.2010, 13:10   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Veina Посмотреть сообщение
Здравствуйте. Помогите, пожалуйста разобраться с программой. Дано уравнение f(x)=1+sin(x)-1.14*exp(-x). Найти наименьший корень уравнения с точностью е=0.00005, используя метод Ньютона. И вывести х0, х1, х2,...,хn. То есть вывести эти приближенные корни, которая прога считает в процессе и мне выдает окончательный результат. Прога считает неправильно. Не пойму в чем дело. Ответ должен быть примерно 0.0666.
Да нет, правильно, это и выдает. Если, конечно, исправить несколько ошибок:
1. Уберите в теле функции Newton повторное введение файловой переменной t - она должна остаться ТОЛЬКО в списке глобальных переменных.
2. В той же функции знак неравенства в условии выхода из цикла должен быть обратным тому, что у Вас, т.е. цикл прерывается, когда разность становится МЕНЬШЕ е.
3. Из тела того же цикла в той же процедуре уберите экранный вывод - только мешает и путает.
4. Исходное значение следует брать близким к искомому корню, например 0.1, ну можно 0.2. Если взять сильно отличающееся, то программа найдет другой корень или вовсе пойдет в разнос.
Вроде всё.
Удачи!
Vladimir_S вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070