
- •Санкт-Петербургский государственный университет аэрокосмического приборостроения
- •Учебно-вычислительная практика
- •5.1 Требования к входным и выходным данным разрабатываемой функции
- •5.2 Справка по некоторым функциям языка MatLab
- •5.3 Этапы разработки программного обеспечения
- •5.3.1 Постановка задачи
- •5.3.2 Анализ, формальная постановка и выбор метода решения
- •5.3.3 Разработка алгоритмов решения задачи
- •5.3.4 Реализация
- •5.3.5 Тестирование разработанных программных модулей
- •5.3.6 Пример разработки алгоритма
- •5.3.7 Примеры программ, реализующих рассмотренный алгоритм
5.1 Требования к входным и выходным данным разрабатываемой функции
Для
блока заданий, посвященных решению
систем линейных алгебраических уравнений,
на вход разрабатываемой функции должны
поступать матрица коэффициентов системы
и вектор значений правых частей (свободных
членов)
.
Ввод матрицы и вектора должен осуществляться
через интерфейс пользователя. На выходе
функция должна выдавать вектор значений
– решение системы уравнений.
Для
блока заданий, посвященных интерполяции,
на вход разрабатываемой функции должен
поступать вектор значений независимой
переменной
,
вектор значений зависимой переменной
и вектор
значений независимой переменной, для
которых необходимо найти интерполированное
значение функции. Ввод векторов должен
осуществляться через интерфейс
пользователя, с последующим преобразованием
из строки в массив чисел. На выходе
функция должна выдавать вектор
интерполированных значений зависимой
переменной
в точках, указанных во входном векторе
.
Для
блока заданий по решению нелинейных и
трансцендентных уравнений
на вход разрабатываемой функции должно
подаваться имя функции (указатель на
функцию, т.н. Function
Handle
в MatLab),
осуществляющей вычисление левой части
уравнения
при заданном значении переменной
,
а также интервал
,
на котором ищется корень, и погрешность
.
Сама функция
вводится через интерфейс пользователя
в виде строки, например такой:'x – x^2'.
Преобразование из строки в функцию
MatLab
может осуществляться с помощью функции
inline,
например, так: f=inline('x – x^2').
Вызов f(2)
теперь вернет -2,
а f(5)
будет равно -20.
Именно функция f
и передается в качестве входных данных
разрабатываемой функции. Выходным
значением разрабатываемой функции
должно быть найденное значение корня.
Выходное значение должно выводиться
пользователю.
Применительно
к численным
методам интегрирования
на вход разрабатываемой функции должен
поступать указатель на интегрируемую
функцию
(см. выше комментарий для заданий по
решению нелинейных и трансцендентных
уравнений) и интервал интегрирования
.
Остальные входные параметры выбираются
в зависимости от конкретного алгоритма.
На выходе функция должна возвращать
значение интеграла, вычисленное заданным
численным методом. Ввод и вывод данных
должен осуществляться через разработанный
интерфейс пользователя.
5.2 Справка по некоторым функциям языка MatLab
Функции, реализующие различные алгоритмы интерполяции: polyfit, polyval, interp1, interp2, spline, pchip, ppval. Среды MatLab и GNU Octave поддерживают все эти функции.
Функции для решения нелинейных уравнений: fzero, fsolve.
Функции численного интегрирования: trapz, quad, quadgk, quad2d, dblquad.
5.3 Этапы разработки программного обеспечения
В процессе разработки программ с использованием процедурного подхода можно выделить следующие этапы:
• постановка задачи - определение требований к программному продукту;
• анализ - осуществление формальной постановки задачи и определение методов ее решения;
• проектирование - разработка структуры программного продукта, выбор структур для хранения данных, построение и оценка алгоритмов подпрограмм и определение особенностей взаимодействия программы с вычислительной средой (другими программами, операционной системой и техническими средствами);
• реализация - составление программы на выбранном языке программирования, ее тестирование и отладка.