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

28

Старков А.В., Федоров А.В.

М ОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра «Системный анализ и управление»

Старков А.В., Федоров А.В.

Лабораторный практикум

по дисциплине

«Современные методы программирования»

Утверждено на заседании кафедры

__________2012

Протокол №_______

Москва 2012

Содержание

  1. Цель практикума 3

  2. ЗАДАНИЕ №1. Решение систем линейных уравнений 4

  3. ЗАДАНИЕ №2. Аппроксимация функций 7

  4. ЗАДАНИЕ №3. Вычисление определенных интегралов 12

  5. ЗАДАНИЕ №4. Решение нелинейных уравнений 18

  6. ЗАДАНИЕ №5. Решение систем дифференциальных уравнений 25

  7. Литература 28

Цель практикума

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

Цель практикума – приобретение навыков применения современных методов программирования для использования в численном решении математических задач.

Задача практикума состоит в:

  • закреплении теоретического материала по вышеперечисленным курсам

  • разработке прикладных программ в среде операционной системы Windows 2000/XP с использованием системы программирования Delphi 6.0, библиотеки Simulate 1.0 [1].

Практикум состоит в решении пяти заданий (см. разделы 2-6) и выполняется индивидуально. По результатам каждой работы студент должен предоставить следующие материалы

  • Отчет, оформленный в соответствии с ГОСТ7.32-91.НТО.

  • Электронный вариант отчета по практике в виде файла-документа, подготовленного в редакторе MS Word, включающего в себя необходимые таблицы и графики.

  • Исходные и исполняемые файлы прикладных программ, выполненные студентом во время прохождения практики.

В отчет должны быть включены:

  • постановка задачи,

  • вариант исходных данных,

  • метод решения,

  • численные и графические результаты решения поставленной задачи, отражающие правильность ее выполнения

  • описание программы в виде руководства пользователя и руководства программиста с описанием интерфейса разработанных студентом модулей.

Комплексное задание №1 решение систем линейных уравнений

Цель работы:

  • Приобретение навыков численного решения систем линейных уравнений методом Гаусса.

  • Приобретение навыков объектно-ориентированного программирования

  • Приобретение навыков работы в среде визуального программирования

  • Приобретение навыков работы с библиотекой Simulate1

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

Имеется некоторая система линейных уравнений. Требуется

  • Создать объектно-ориентированное представление задачи нахождения решения систем линейных уравнений.

  • Выполнить программную реализацию метода Гаусса.

  • Создать интерфейсный модуль для ввода данных в диалоговом режиме и графической визуализации результатов

Требование к программе.

Работа выполняется индивидуально в среде визуального программирования Delphi. При выполнении задания допускается использование только программных модулей и компонент, разработанных самим студентом, стандартных компонент, предоставляемых средой визуального программирования Delphi, а также модулей uCommon и uVector библиотеки Simulate1.

Решение систем линейных уравнений. Метод Гаусса.

Рассматривается система линейных уравнений вида Ax=B. Наиболее известным и популярным способом решения систем линейных уравнений является метод Гаусса. Суть его проста - это последовательное исключение неизвестных. Будем поэтапно приводить систему линейных уравнений к треугольному виду, исключая последовательно сначала X1 из второго, третьего, ..., N--го уравнений, затем X2 из третьего, четвертого, … N-го уравнений преобразованной системы, и т.д. В результате треугольная структура полученной системы позволяет последовательно, одно за другим, вычислять значения неизвестных, начиная с последнего.

Объектно-ориентированное представление задачи

В данном разделе представлены только основные рекомендации по объектно-ориентированному представлению исходной задачи, на основе которых студент должен построить свою программу.

Для решения систем линейных уравнений предлагается создать базовый класс TLineEquation1, на базе которого затем будет создан класс TGauss, реализующий метод Гаусса. Примерный интерфейс класса TLineEquation имеет вид

Type

TLineEquation=class( TObject )

Private

FMatrix : TMatrix;

FVector,

FDecision : TVector;

Protected

Function GetDimension : integer; virtual;

Procedure SetDimension( aDimension : integer ); virtual;

Public

Constructor Create;

Destructor Destroy; override;

Procedure Run; virtual;

Procedure SaveToFile( const aFileName : string ); virtual

Procedure LoadFromFile( const aFileName : string ); virtual

Property Matrix : TMatrix read FTable;

Property Vector : TVector read FVector;

Property Decision : TVector read FDecision;

Property Dimension: Integer read GetDimension write SetDimension

End;

В конструкторе базового класса TLineEquation создаются матрица A (поле FMatrix) размерности NxN, вектор-столбец B (поле FVector) размерности Nx1 и вектор -столбец x (поле FDecision) размерности Nx1. Процедуры SaveToFile и LoadFromFile предназначены для сохранения и загрузки данных из внешнего текстового файла.

Примерный интерфейс класса, реализующего метод Гаусса, имеет вид

TGauss = class( TLineEquation )

Private

Protected

Public

Procedure Run; override;

End;

В методе Run непосредственно реализуется метод Гаусса.

Интерфейсный модуль для ввода данных и графической визуализации результатов.

Примерный вид интерфейса пользователя представлен ниже на рисунке

В разделе меню «файл» выполняются стандартные операции по работе с внешними файлами, а именно сохранение/считывание данных, а также выход из программы.

Вычисления производятся после нажатия элемента меню «Выполнить»

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