Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RGZ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
78.43 Кб
Скачать

Комитет РФ по рыбному хозяйству

Мурманский Государственный Технический Университет

Оценка: _____________

“___” __________201__ г.

Кафедра

Высшей Математики и

Программного

Обеспечения ЭВМ

Расчетно-графическое задание

по дисциплине «ПРОГРАММИРОВАНИЕ»

Выполнил:

студентка группы ИВТ(б)-111

Хабарова А.Д.

Проверил:

ст. преподаватель

кафедры ВМ и ПО ЭВМ

Скрябин А.В.

Мурманск

2012

Введение

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

  1. Описание решения

    1. Постановка задачи

Дана функция , где – параметр. Найти точку экстремума с точностью .

      1. Название задачи

Дана функция , где – параметр. Найти точку экстремума с точностью .

Название программного комплекса: «Нахождение точки экстремума функции »

Система программирования:

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

      1. Описание

Рассмотрим различные значения, принимаемые параметром p:

  1. Если

В этом случае функция принимает вид:

Найдем производную этой функции:

Рассмотрим необходимое условие экстремумов:

Достаточные условия экстремумов:

  • При точки экстремума: .

  1. Если

В этом случае функция принимает вид:

ООФ:

Для нахождения экстремума функции необходимо вычислить первую производную функции:

Далее рассматриваем необходимое условие экстремумов.

ООФ

Рассмотрим график следующей системы:

Из данного графика видно, что графики этих функций имеют 1 точку пересечения

имеет один корень

при исходная функция будет иметь одну стационарную точку, подозрительную на экстремум.

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

Чтобы проверить достаточные условия экстремумов, необходимо определить знаки на каждом из получившихся промежутков(рис.1).

рис.1

Точка является экстремумом, в случае, если при переходе через нее производная меняет свой знак:

  • с «плюса»(т.е. ) на «минус»(т.е. ), значит - точка максимума;

  • с «минуса» на «плюс», значит - точка минимума.

  1. Если

В этом случае производная функции принимает вид:

ООФ:

Для нахождения экстремума функции необходимо вычислить первую производную функции:

Далее рассматриваем необходимое условие экстремумов.

ООФ

Рассмотрим график следующей системы:

Т.к. ООФ: , а первая производная функции обращается в ноль при .

при точек экстремума нет.

      1. Управление режимами работы Пользователь программы может:

  • вводить исходные данные вручную;

  • пользоваться справкой;

  • выходить из программы.

Осуществление этих действий производится посредством выбора пунктов главного меню программы.

При запуске программы на экране появляется меню, состоящие из двух пунктов:

  1. Calculate extremum

  2. Exit

Чтобы выбрать пункт Calculate extremum, необходимо ввести с клавиатуры цифру 1, и подтвердить свой выбор, нажатием клавиши <Enter>. Далее на экран выводится функция и запрос ввода параметра p, для подтверждения введенного значения необходимо нажать клавишу <Enter>. В зависимости от введенного значения параметра p на экран выводится, либо вычисленная точка экстремума, либо сообщение об отсутствии точки при введенном значении параметра. Чтобы выйти в главное меню, необходимо нажать клавишу <Enter>.

Чтобы выбрать пункт Exit, необходимо ввести с клавиатуры цифру 2 и нажать клавишу <Enter>. На экран выводится запрос о подтверждении выхода.

      1. Входные данные

Значения параметра p могут быть в диапазоне от 1.7E-308 до 1.7E+308, в том числе и равным нулю. Формат чисел: 99.9 (не 99,9, то есть десятичная часть числа отделяется точкой, а не запятой), между знаком «минус» и числом пробел не ставится.

      1. Выходные данные

Выходными данными являются точки экстремума функции. Их значение выводится на экран в виде равенства (например: x=5), помимо самих точек экстремума выводится введенное пользователем значение параметра p.

      1. Ошибки

При работе с программой пользователь может допустить следующие ошибки:

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

Пользователь выбирает пункт «Calculate extremum». На экране появляется функция и запрос ввода параметра p. Пользователь вводит «-4.56» и нажимает <Enter>. На экран выводится сообщение об отсутствии в заданной функции точек экстремума «Extremum point is not». Пользователь нажимает <Enter>, на экран выводится главное меню.

    1. Проектирование программы

Общая структура программного комплекса:

    1. Кодирование

  1. Функция int main() содержит основную программу.

Функция short select() организовывает вывод на экран главного меню программы и присваивает переменной menu номер выбранного пункта, то есть равна:

  • 1, если выбран пункт меню Calculate extremum;

  • 2, если выбран пункт меню Help;

  • 3, если выбран пункт меню Exit.

  1. Модуль математических вычислений.

Включает математические и логические функции и процедуры, включая процедуры по вычислению искомых параметров задачи.

Функция 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(), или выводит сообщение на экран.

  1. Модуль дополнительных пунктов меню

Процедура help() организует вывод на экран краткой справки.

Процедура exit() организует запрос о подтверждении выхода из программы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]