|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
11.03.2014, 21:02 | #21 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Не, ну в самом деле: пусть, например, у нас есть функция, заданная на интервале [0.8, 1.8], фрагмент которой выглядит так: и мне нужно найти методом Ньютона ее корень. Так что же, по мнению многоуважаемых преподов, я должен непременно стартовать с правого конца, потому что на нём знак функции и производной совпадают? А с левого - низззззззззззз-зя?!! Так вот, на самом деле выбор конца интервала НЕ ИМЕЕТ ЗНАЧЕНИЯ. То есть абсолютно. И стартуя с левого конца, я благополучно приду (ну кто бы мог подумать!) к тому же корню. Зла прям не хватает! |
12.03.2014, 17:54 | #22 (permalink) |
Member
Регистрация: 18.10.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Проблема все та же, метод Ньютона, находит корень не в том промежутке что задан....
Вот сама программа, промежуток [1;2] а программа находит корень 0.62... uses crt; var x,a,b,e: real; function f1(x: real): real; begin f1:=ln(2-x)-cos(2*x); end; function f2(x:real): real; begin f2:=-1/(2-x)+2*sin(2*x); end; begin clrscr; a:=1; b:=2; e:=0.001; if f1(a)*f2(a)>0 then x:=a else x:=b; while abs(f1(x))>e do begin x:=x-f1(x)/f2(x); end; writeln ('x=',x,' f(x)=',f1(x)); end. |
12.03.2014, 20:41 | #23 (permalink) | ||
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
К сожалению, помочь Вам так, чтобы Вы, оставаясь в рамках идиотских преподских указуль, получили правильный ответ, я, при всём желании, не могу. Потому что вижу всё тот же тупой, бессмысленный, безграмотный дебилизм Цитата:
Теперь по задаче. Как ее грамотно решить? Как я уже неоднократно Вам объяснял, начать нужно с построения графика функции с целью определения приблизительного значения корня или корней и оптимального выбора исходной точки. В Вашем случае график выглядит так: Как видим, в интервале [0, 2] имеются два корня: один около х=0.6, другой в районе х=1.6. Вас интересует второй - прекрасно! Выбираем исходную точку х0=1.4 или х0=1.8 (совпадение знаков функции и производной в этих точках, вопреки мнению идиотов, которые "вас так учат", НЕ ТРЕБУЕТСЯ!!!). Любую из двух берите, запускайте программу и - вуаля! - вот он, Ваш искомый корень. Если же следовать "алгоритму", которому "вас учат", то следует взять в качестве исходной точки х=1. Но между этой точкой и искомым корнем, как видно из графика, находится экстремум с максимумом около х=1.2, и "перевалить" через этот горб алгоритм Ньютона, увы, НЕ МОЖЕТ. Как бы того ни хотелось придуркам, купившим дипломы в подземном переходе и объявившим себя "преподавателями". Уверяю Вас, я не призываю к бунту, конфликту или чему-то подобному, но и Вы поймите: нытьё типа "помогите решить задачу, но обязательно опираясь на неверный алгоритм" - бессмысленно. Всё равно, что "помогите научиться водить машину, но так, чтобы педалью газа тормозить, а педалью тормоза - газовать, потому что нас так учат". Извините за резкости, к Вам это не относится, просто когда я встречаюсь (а уже даже на этом форуме не впервые) с явной некомпетентностью преподавателей, то мысли возникают самые кровожадные. |
||
12.03.2014, 21:17 | #24 (permalink) |
Member
Регистрация: 18.10.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спсибо за содержательны ответ, будем пробывать)))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|