Методические указания к лабораторным работам 3, 4 по курсу «Метрология, стандартизация и сертификация», страница 2

Формула метода: .

Точка  x0  –  начальное  приближение  –  выбирается  из  условия: f(x0f ¢¢(x) > 0. В качестве x0 выбирается, как правило, один из концов отрезка [a, b]:

если f(af ¢¢ (x) > 0, то x0 = a;

если f(bf ¢¢ (x) > 0, то x0 = b.

Для метода Ньютона известны несколько условий остановки итерационного процесса. Одно из них: , где  . При выполнении этого условия xn+1 является приближенным значением корня уравнения  на отрезке [a, b], найденным методом Ньютона с точностью e.

При программной реализации метода Ньютона, как правило, для остановки итерационного процесса требуется выполнение одновременно двух условий: и .

·  Откройте двойным щелчком мыши по файлу TT.dsp проект приложения.

При этом загрузится VisualC++ и появится панель TrueTime               

·  Выберите в левой панели на странице FileView  SourseFiles®TTDlg.cpp (см. рис. 1). 

TTDlg.cpp – это файл окна диалога, в котором написан код нажатия кнопки  (т.е. команды, которые необходимо выполнить программе после того, как пользователь нажал на определенную кнопку).

·  Просмотрите функцию обработки нажатия кнопки «RunMethod» - voidCTTDlg: :OnBt1(), которая реализует метод Ньютона.

В рассматриваемой программе находится корень из числа 13. Т.к. нам необходимо найти , то нахождение корня из числа сводится к решению уравнения .

·  Запустите приложение, выбрав меню Build -> Execute (Ctrl+F5).

При этом ваша программа будет откомпилирована, создан исполняемый файл ТТ.ехе и запущен. Если вы измените текст программы, то VisualC++ покажет вам список измененных файлов проекта и «спросит» принять ли эти изменения перед запуском программы (рекомендуется отвечать – «да»).

Замечание. Если вы увидите сообщение «ThreadIDoutofrangeforMach5, Pleaseconsultreadmeforadvice», то это значит, что номер потока вашего приложения больше значения принятого по умолчанию. Можно просто каждый раз нажимать OK, а можно это исправить и сообщение больше появляться не будет. Для этого в системном реестре Windows в ветви HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ mach5 \ Parameters нужно создать ключ ThreadDatabaseSize типа dword и присвоить ему значение 65535, или просто запустить файл Mach5.reg. Он автоматически сделает данные изменения.

На экране появится окно диалога (см. рис. 2).

·  Посмотрите результаты вычислений (нажав на кнопку Runmethod).

·  Закройте приложение, нажав на кнопку EXIT.

·  Просмотрите код функции voidCTTDlg::OnBt1() снова.

 


Рис. 2

В трех последних строках, реализующих вывод сообщения с результатом, имеется надпись rem. Это значит, что данные строки необходимо сделать комментариями. Данный шаг необходим для профилирования. Если мы не закомментируем эти строки, то они займут большую часть времени выполнения функции OnBt1(), тем самым вводя нас в заблуждение. Для того чтобы сделать строку программы комментарием необходимо перед строкой поставить «//» (пример: // charmess[10];).

·  После этого изменения откомпилируйте приложение (Ctrl+F7).

·  Затем на панели TrueTime нажмите кнопку RebuildAllwithTrueTime(перекомпилировать все, используя TrueTime).

Таким образом, все приложение будет перекомпилировано, а TrueTime вставит в программу свои функции вызова.

·  Нажмите на панели TrueTime кнопку RunwithTrueTime(запустить, используя TrueTime).

Запустится True Time и Ваше приложение.

·  Нажмите на кнопку RunMethod и затем EXIT.

Таким образом, вы выполнили функцию нахождения корня из числа, и вышли из программы. Напоминаем, что сообщение с результатом работы программы вы не увидите, так как соответствующие строки были вами закомментированы.