
Комитет РФ по рыбному хозяйству
Мурманский Государственный Технический Университет
-
Оценка: _____________
“___” __________201__ г.
Кафедра
Высшей Математики и
Программного
Обеспечения ЭВМ
Расчетно-графическое задание
по дисциплине «ПРОГРАММИРОВАНИЕ»
Выполнил:
студентка группы ИВТ(б)-111
Хабарова А.Д.
Проверил:
ст. преподаватель
кафедры ВМ и ПО ЭВМ
Скрябин А.В.
Мурманск
2012
Введение
Целью
работы является развитие и закрепление
практических навыков разработки программ
с использованием технологии структурного
программирования на примере решения
задачи нахождения экстремумов для
функции
.
Ее значение заключается в том, что
разработчик на основе своих знаний
разрабатывает и реализует программный
комплекс, демонстрируя знание и владение
системой программирования Си.
Описание решения
Постановка задачи
Дана
функция
,
где
– параметр. Найти точку экстремума с
точностью
.
Название задачи
Дана функция , где – параметр. Найти точку экстремума с точностью .
Название программного комплекса: «Нахождение точки экстремума функции »
Система программирования:
Требования к аппаратному обеспечению:
Описание
Рассмотрим различные значения, принимаемые параметром p:
Если
В этом случае функция принимает вид:
Найдем производную этой функции:
Рассмотрим необходимое условие экстремумов:
Достаточные условия экстремумов:
При точки экстремума:
.
Если
В этом случае функция принимает вид:
ООФ:
Для нахождения экстремума функции необходимо вычислить первую производную функции:
Далее рассматриваем необходимое условие экстремумов.
ООФ
Рассмотрим график следующей системы:
Из данного графика видно, что графики этих функций имеют 1 точку пересечения
⇒
имеет
один корень
при
исходная функция будет иметь одну
стационарную точку, подозрительную на
экстремум.
Находим
стационарную точку
,
решая уравнение
методом
бисекции.
Т.к. ООФ:
⇒
возьмем за начало промежутка, на котором
будет производиться поиск корня:
,
а за конец:
и погрешность
.
Чтобы
проверить достаточные
условия экстремумов,
необходимо определить знаки
на каждом из получившихся промежутков(рис.1).
рис.1
Точка
является экстремумом, в случае, если
при переходе через нее производная
меняет свой знак:
с «плюса»(т.е.
) на «минус»(т.е.
), значит - точка максимума;
с «минуса» на «плюс», значит - точка минимума.
Если
В этом случае производная функции принимает вид:
ООФ:
Для нахождения экстремума функции необходимо вычислить первую производную функции:
Далее рассматриваем необходимое условие экстремумов.
ООФ
Рассмотрим график следующей системы:
Т.к.
ООФ:
,
а первая производная функции обращается
в ноль при
.
при точек экстремума нет.
Управление режимами работы Пользователь программы может:
вводить исходные данные вручную;
пользоваться справкой;
выходить из программы.
Осуществление этих действий производится посредством выбора пунктов главного меню программы.
При запуске программы на экране появляется меню, состоящие из двух пунктов:
Calculate extremum
Exit
Чтобы выбрать пункт Calculate extremum, необходимо ввести с клавиатуры цифру 1, и подтвердить свой выбор, нажатием клавиши <Enter>. Далее на экран выводится функция и запрос ввода параметра p, для подтверждения введенного значения необходимо нажать клавишу <Enter>. В зависимости от введенного значения параметра p на экран выводится, либо вычисленная точка экстремума, либо сообщение об отсутствии точки при введенном значении параметра. Чтобы выйти в главное меню, необходимо нажать клавишу <Enter>.
Чтобы выбрать пункт Exit, необходимо ввести с клавиатуры цифру 2 и нажать клавишу <Enter>. На экран выводится запрос о подтверждении выхода.
Входные данные
Значения параметра p могут быть в диапазоне от 1.7E-308 до 1.7E+308, в том числе и равным нулю. Формат чисел: 99.9 (не 99,9, то есть десятичная часть числа отделяется точкой, а не запятой), между знаком «минус» и числом пробел не ставится.
Выходные данные
Выходными данными являются точки экстремума функции. Их значение выводится на экран в виде равенства (например: x=5), помимо самих точек экстремума выводится введенное пользователем значение параметра p.
Ошибки
При работе с программой пользователь может допустить следующие ошибки:
Пример работы программного комплекса
Пользователь выбирает пункт «Calculate extremum». На экране появляется функция и запрос ввода параметра p. Пользователь вводит «-4.56» и нажимает <Enter>. На экран выводится сообщение об отсутствии в заданной функции точек экстремума «Extremum point is not». Пользователь нажимает <Enter>, на экран выводится главное меню.
Проектирование программы
Общая структура программного комплекса:
Кодирование
Функция int main() содержит основную программу.
Функция short select() организовывает вывод на экран главного меню программы и присваивает переменной menu номер выбранного пункта, то есть равна:
1, если выбран пункт меню Calculate extremum;
2, если выбран пункт меню Help;
3, если выбран пункт меню Exit.
Модуль математических вычислений.
Включает математические и логические функции и процедуры, включая процедуры по вычислению искомых параметров задачи.
Функция der(double x) вычисляет значение первой производной в точке x (при p>0).
Функция der1(double i) вычисляет значение первой производной в точке i (при p=0).
Процедура m_bisec() методом бисекций вычисляет точку x0 подозрительную на экстремум(при p>0).
Процедура quad_eq() вычисляет две точки подозрительные на экстремум x1 и x2, решая квадратное уравнение через дискриминант(при p=0).
Процедура suff_cond_x0() проверяет достаточное условие экстремума для точки x0, т.е. вычисляет значение производной в точках x0+0.01 и x0-0.01 и затем проверяет, меняет ли первая производная знак при переходе через точку x0(p>0).
Процедура suff_cond_x12() проверяет достаточное условие экстремума для точек x1 и x2, т.е. вычисляет значение производной в точках x1+0.01 и x1-0.01(x2+0.01 и x2-0.01) и затем проверяет, меняет ли первая производная знак при переходе через точку x1 и x2(p=0).
Процедура check_p() в зависимости от введенного значения параметра p, выполняет процедуры m_bisec() или quad_eq(), или выводит сообщение на экран.
Модуль дополнительных пунктов меню
Процедура help() организует вывод на экран краткой справки.
Процедура exit() организует запрос о подтверждении выхода из программы.