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

Если Вы еще раз посмотрите вкладку Sourse для функции OnBt1() (см. рис. 8), то увидите, что неэффективной строкой осталась строка, содержащая условия выполнения метода, которую уже невозможно оптимизировать.

Рис. 8

 


Рис. 9

Второе изменение.

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

Теоретические сведения по комбинированному методу

хорд и касательных

Условия применения метода те же, что и для метода Ньютона.

Возможны два случая:

·  если f (a)×f ¢¢ (x) > 0, то слева применяем метод Ньютона, а справа метод хорд.

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

·  если f (b)× f ¢¢ (x) > 0, то слева применяем метод хорд, а справа метод Ньютона.

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

В качестве точек начального приближения выбираются: x0  = a.

Условие остановки итерационного процесса: , при выполнении этого условия любую точку из отрезка   можно принять за корень уравнения с точностью e. Чаще всего принимают: .

Вы можете сказать, что этот метод более громоздкий по сравнению с методом Ньютона. Давайте все-таки посмотрим.

·  Закройте True Time.

На панели FileView имеется файл «методы.txt».

·  Выберите двойным щелчком указанный файл.

В данном файле приводятся коды метода Ньютона и комбинированного метода хорд и касательных.

·  Вставьте код комбинированного метода хорд и касательных в функцию OnBt1() вместо старого кода.

·  Выполните компилирование программы (необходимо выбрать в меню VisualStudioBuild| Rebuildall), запустите программу на выполнение (Ctrl+F5) и посмотрите результаты.

·  Теперь снова сделайте ремаркой последние три строки, откомпилируйте с TrueTime и запустите с TrueTime. Нажмите кнопку RunMethod и затем Exit.

Полученная статистика показана на  рис. 10.

Время работы функции OnBt1() и общее время работы приложения еще немного уменьшилось.

·  Посмотрите подробно выполнение функции OnBt1() (перейдите на вкладку Source [TTDlg.cpp]).

Основные формулы метода вызывались два раза. Таким образом, комбинированный метод хорд и касательных более эффективен, чем метод Ньютона.

В результате выполненных двух изменений время выполнения функции OnBt1() было уменьшено с 6.40 микросекунд до 3.29, общее время работы приложения уменьшено с 3 секунд до 1.4.

Используя TrueTime мы увеличили эффективность программы, а эффективность – один из важных показателей качества программы.

 


Рис. 10

Меню программы True Time

Меню Файл:

o  Open – открыть файл проекта, файл сессии или исполняемый файл;

o  Close – закрыть файл активной сессии;

o  Close Project – закрыть файл активного проекта;

o  Save – сохранить все данные активной сессии в файл (для возможности повторного просмотра);

o  Save As – сохранить файл активной сессии под новым именем;

o  Save All – сохранить все файлы;

o  Export Function List – сохранить текущее содержание вкладки Function в файл с расширением .CSV (файл открывается при помощи Microsoft Excel);

o  Print – распечатать текущую вкладку активной сессии;

o  Print Preview – предварительный просмотр файла активной сессии перед печатью;

o  Print Setup – выбор установок и опций печати.

МенюEdit:

o  Copy – копировать выбранный текст в буфер обмена;

o  Select All – выбрать весь текст в активной вкладке;

o  Clear – очистить окно вывода;

o  Find – найти указанный для поиска текст по указанному критерию;