Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Метод квадратичной интерполяции – экстраполяции




 



Метод Пауэлла



Метод Давидона


Спецификация программы

Для написания программы была использована библиотека MFC (Microsoft Foundation Classes) и соответствующий мастер диалогового окна MFC AppWizard. Итоговая программа получилась благодаря созданию новых классов и функций, а также созданию ресурса основного диалогового окна с дружественным интерфейсом.

 

Программа состоит из восьми классов:

1. CEnterFunction - парсер

2. CMatrix          - класс матриц

3. CMETODI     - методы оптимизации

4. CMalgin_kursApp   - приложение

5. CMalgin_kursDlg    - диалоговое окно

 

Рассмотрим подробнее каждый из этих классов.

 

 

1. CEnterFunction – этот класс представляет собой интерпретатор формул. В качестве аргумента он получает строку с формулой и две переменных, в которые при ошибке возвращается номер ошибочной позиции и текст ошибки. После вычислений, при условии отсутствия ошибок в формуле, возвращается значение типа double. Для непосредственной работы с классом существует только один открытый метод – Calculation, посредством которого и осуществляются все вычисления. Остальные методы являются закрытыми и не представляют особого интереса при программировании.

 

2. CMatrix – один из основных классов программы. Посредством него появляется возможность работы с векторами и матрицами. Класс обладает широким набором различных методов и переопределённых операторов, что позволяет максимально удобно использовать его в прикладных задачах.

 

3. CMETODI – самый главный класс. Содержит различные методы поиска, представленные в виде отдельных членов класса. Кроме того, в него включены вспомогательные методы, такие, как, например, численное дифференцирование, получение значения функции, получение матрицы Гессе, получение обратной матрицы методом Гаусса-Жордана и т.д. При создании класса ему передаётся строка с формулой (не содержащая ошибок, т.е. заранее проверенная) и дальше можно пользоваться различными методами. Рассмотрим подробнее члены класса.

 

4. CMalgin_kursApp – стандартный класс приложения, который создаётся мастером. Особо интересной информации для нас не содержит, разве что вызов главного диалогового окна.

 

5. CMalgin_kursDlg – класс основного диалогового окна. Именно оно представляет собой весь интерфейс. Класс содержит все необходимые методы для работы с окном, а, также, вспомогательную функцию проверки правильности ввода данных GOTOVMOST(), которая возвращает true при отсутствии ошибок и false при их наличии. Пример объекта класса:

 

 


Описание логики работы программы.

 

Логика работы программы не представляет собою ничего сложного. Она основывается на простой последовательности действий и в ближайшем рассмотрении выглядит следующим образом: ввод данных – проверка корректности введённых данных – поиск минимума – вывод результатов поиска.

Более детальное представление о логике работы программы может дать следующая блок-схема:

 

 

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


 Результаты тестирования программы










Последнее изменение этой страницы: 2018-04-12; просмотров: 232.

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