Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NMM_Manual_N10.doc
Скачиваний:
9
Добавлен:
27.10.2018
Размер:
637.95 Кб
Скачать

Пример выполнения лабораторного задания на языке c#

В имеющемся рабочем пространстве NMM_PetrovIS сгенерируем (добавим) новый проект LabTask_10с консольного приложения на языке программирования C#, которому зададим тип конфигурации – Release, и который сделаем стартовым проектом.

Включим в проект новый класс – Class_10, в который скопируем из класса Class_05 подпрограмму Method_Gaussa(). Внесем изменения в код подпрограммы, связанные с исключением из нее вычислений определителя. После этого переименуем подпрограмму, например, так – SLAEq():

Добавим в этот класс функцию, которую нам предстоит исследовать (скопируем ее код из проекта LabTask_03с и переименуем):

В пространстве имен LabTask_10с определим новый тип данных – Spline2.

После этого приступим к составлению аналога на C# основной программной единицы main_10 на Fortran. Код программы может иметь, напрмер, следующий вид:

Выполним вычисления для случаев N = 100, 200 и N = 300:

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

Контроль выполнения варианта лабораторного задания № 10

Для контроля правильности Вашего выполнения лабораторной работы № 10 воспользуйтесь приложением NMM_Labs.

Выберите требуемую лабораторную работу и свой вариант. После этого – нажмите на кнопку «Выполнить» – перед Вами появится основная форма.

Работа пользователя с управляющими элементами данной формы начинается после нажатия на кнопку «Генерировать таблицу исходных данных».

Предварительно Вы можете выбрать «Количество интервалов интерполирования», например 15, которое при начальной загрузке имеет минимальное значение – 10:

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

Таблица сплайнов будет построена сразу после нажатия на соответствующую кнопку:

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

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

При этом Вам будет не только предоставлено «Приближенное значение» функции, найденное посредством системы сплайнов, но и будет указан «Номер сплайна», непосредственно использованного при выполнении вычислений.

Следует помнить, что «Значение аргумента», задаваемое пользователем, должно удовлетворять основному условию интерполирования – оно не должно выходить за пределы «Границ интерполирования [a,b] », указанных в верхней части формы.

Основная задача лабораторной работы – исследование функции на экстремум – выполняется нажатием на соответствующую кнопку:

Данные из «Таблицы Экстремумов Функции» следует сравнить с аналогичными результатами, полученными при выполнении программ, непосредственно разработанных Вами (на Fortran и C#). Для этого необходимо задать соответствующее значение для параметра «Количество интервалов интерполирования», например – 100, и повторить все этапы вычислений.

В случае совпадения результатов (таблиц экстремумов функции) можно говорить об успешном завершении Вами данной лабораторной работы.

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

При малых значениях параметра «Количество интервалов интерполирования» пользователю доступна кнопка «Показать график функции». Нажатие на эту кнопку генерирует новую форму с двумя графиками:

Правый график – «График аппроксимируемой функции». Он представляет собой непрерывную кривую красного цвета и изображает «истинную функцию», аналитический вид которой Вы использовали для построения дискретной функции (таблицы исходных данных).

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

График слева – «График частичного сплайна». Здесь мы видим изображение квадратичного сплайна (кривая синего цвета), номер которого выбран на управляющем элементе.

Тонкая красная кривая – «истинная функция», аппроксимируемая данным сплайном на текущем интервале интерполирования. Здесь отчетливо видно качество интерполирования сплайном при выбранном количестве узлов таблицы исходных данных.

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

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

Составитель – ст. преп. Царенко А.П. 20 июня 2019 г.

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