Задание на курсовую работу по дисциплине «Информатика»


Скачать 85.88 Kb.
НазваниеЗадание на курсовую работу по дисциплине «Информатика»
Дата публикации07.03.2013
Размер85.88 Kb.
ТипДокументы
userdocs.ru > Математика > Документы
Задание на курсовую работу по дисциплине «Информатика»
Цели курсовой работы

  1. Изучить этапы разработки программного обеспечения.

  2. Получить навыки программирования в среде MatLab.

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


Задание на курсовую работу

Разработать алгоритм и программную реализацию заданного математического метода в виде функции на языке программирования M (среда MatLab). Разработанная функция должна быть снабжена графическим интерфейсом пользователя. Для недопустимых значений входных данных, при которых невозможно провести вычисления, должно отображаться сообщение об ошибке. Провести сравнение разработанной функции со встроенными функциями MatLab, решающими те же задачи.

Реализуемый математический метод определяется в соответствии вариантом. Варианты назначаются преподавателем.
Порядок выполнения курсовой работы

  1. построить алгоритм для указанного в задании математического метода и реализовать его в виде пользовательской функции в среде MatLab (см. примечание 1 ниже);

  2. реализовать указанный в задании математический метод с использованием встроенных математических функций MatLab (см. примечание 2 ниже);

  3. спроектировать и реализовать графический интерфейс для упрощения взаимодействия конечного пользователя с разработанной функцией;

  4. сравнить работу пользовательских функций, полученных в результате выполнения пунктов 1 и 2.

Примечание 1: при выполнении пункта 1 задания запрещается использовать все математические и другие функции пакета MatLab. Алгоритм необходимо реализовать с помощью базовых языковых конструкций, таких как for, while, if-else и т.п.

Примечание 2: при выполнении пункта 2 задания, в случае, если в пакете MatLab нет встроенной функции, реализующей указанный в задании математический метод, необходимо подобрать функцию MatLab, наиболее близкую по смыслу решаемой ею задачи. Например, в MatLab не реализована интерполяция многочленами Лагранжа или по формуле Ньютона, однако связка функций polyfit и polyval решает задачу интерполяции многочленами методом наименьших квадратов. Следовательно, вместо интерполяции многочленами по Лагранжу или по Ньютону, при выполнении пункта 2 задания можно использовать функции polyfit и polyval.
Варианты заданий
Блок «интерполяция и экстраполяция»

  1. Интерполяция функции по формулам Лагранжа при равномерном расположении узлов ([1], с. 79).

  2. Интерполяция функции по методу Эйткена ([1], с. 80).

  3. Интерполяция функции полиномом Лагранжа при произвольном расположении узлов ([1], с. 80).

  4. Интерполяция функции методом Ньютона при произвольном расположении узлов ([1], с. 82).

  5. Интерполяция функции на множестве интервалов при равномерном расположении узлов с помощью кусочно-линейной функции ([1], с. 82).

  6. Интерполяция функции на множестве интервалов с помощью квадратичной функции ([1], с. 82).

  7. Интерполяция функции сплайнами (сплайн-интерполяция) ([1], с. 83).

  8. Интерполяция функции двух переменных ([1], с. 84).

  9. Многоинтервальная квадратичная интерполяция-аппроксимация функции двух переменных ([1], с. 85).

  10. Метод обратной интерполяции-экстраполяции ([1], с. 82, 90).

  11. Методом обратной квадратичной интерполяции-экстраполяции ([1], с. 90).


Блок «нелинейные и трансцендентные уравнения»

  1. Решение нелинейных и трансцендентных уравнений методом Ньютона ([1], с. 86).

  2. Решение нелинейных и трансцендентных уравнений методом простых итераций ([1], с. 86, 87).

  3. Решение нелинейных и трансцендентных уравнений методом Рыбакова ([1], с. 88).

  4. Решение нелинейных и трансцендентных уравнений методом поразрядного приближения ([1], с. 88).

  5. Решение нелинейных и трансцендентных уравнений методом подекадного приближения ([1], с. 89).

  6. Решение нелинейных и трансцендентных уравнений методом хорд ([1], с. 89).

  7. Решение нелинейных и трансцендентных уравнений методом секущих ([1], с. 89).

  8. Решение нелинейных и трансцендентных уравнений комбинированным методом секущих-хорд ([1], с. 89).

  9. Решение нелинейных и трансцендентных уравнений методом Эйтекена-Стеффенсона ([1], с. 90).

  10. Решение нелинейных и трансцендентных уравнений модифицированным методом Ньютона ([1], с. 87).


Блок «многомерная оптимизация»

  1. Минимизация функции N переменных методом координатного спуска ([1], с. 99).

  2. Минимизация функции N переменных методом спирального координатного спуска ([1], с. 99, 100).

  3. Минимизация функции N переменных методом квадратичной интерполяции-экстраполяции ([1], с. 99, 100).


Блок «поиск экстремальных значений»

  1. Поиск экстремумов функции методом равномерного поиска ([1], с. 96). Модифицировать алгоритм для поиска всех экстремумов на интервале с заданной погрешностью (шириной шага приращения) .

  2. Поиск экстремумов функции методом поразрядного приближения ([1], с. 96, 97).

  3. Поиск экстремумов функции методом дихотомии (деления пополам) ([1], с. 97).

  4. Поиск экстремумов функции методом "золотого сечения" ([1], с. 97).

  5. Поиск экстремумов функции методом квадратичной интерполяции-экстраполяции ([1], с. 97, 98).


Блок «численное интегрирование»

  1. Численное интегрирование функций методом Уэдля ([1], с. 106, 107).

  2. Численное интегрирование функций методом Ньютона-Котеса ([1], с. 105 107).

  3. Численное интегрирование функций методом Чебышева ([1], с. 106, 107).

  4. Численное интегрирование функций методом Гаусса ([1], с. 106, 107).

  5. Численное интегрирование функций методом Гаусса с заданной точностью ([1], с. 106, 108).

  6. Численное интегрирование функций методом парабол (Симпсона) ([1], с. 108, 109).

  7. Вычисление несобственного интеграла методом Гаусса ([1], с. 108, 109)

  8. Численное интегрирование функций методом Монте-Карло ([2], раздел «Методы Монте-Карло»).

  9. Численное интегрирование функций методом прямоугольников (правых) ([2], раздел «Метод прямоугольников»; [3]).

  10. Численное интегрирование функций методом прямоугольников (левых) ([2], раздел «Метод прямоугольников» ; [3]).

  11. Вычисление двойного интеграла по простой формуле Симпсона ([1], с. 108, 109).

  12. Вычисление двойного интеграла по простой формуле Гаусса ([1], с. 110).

  13. Вычисление двойного интеграла по сложной формуле Гаусса ([1], с. 110).


Справка по функциям MatLab

Функции MatLab, реализующие различные алгоритмы интерполяции: polyfit, polyval, interp1, interp2, spline, pchip, ppval.

Функции MatLab для решения нелинейных уравнений: fzero, fsolve.

Функции MatLab для оптимизации (поиска экстремумов) функций одной и нескольких переменных: fminbnd, fminsearch.

Функции численного интегрирования в MatLab: trapz, quad, quadgk, quad2d, dblquad.
Требования к входным и выходным данным разрабатываемой функции

Для блока заданий посвященных интерполяции на вход разрабатываемой функции должен поступать вектор значений независимой переменной X (или несколько векторов X1, ..., Xn для функции нескольких переменных), вектор значений зависимой переменной Y и вектор X0 (или n векторов X01, …, X0n для функции n переменных) значений независимой переменной, для которых необходимо найти интерполированное значение функции. Ввод векторов должен осуществляться через графический интерфейс, с последующим преобразованием из строки в массив чисел. На выходе функция должна выдавать вектор интерполированных значений зависимой переменной Y0 в точках, указанных во входном векторе X0. Выходные значения функции должны отображаться на графическом интерфейсе.

Для блока заданий по решению нелинейных и трансцендентных уравнений на вход разрабатываемой функции должно подаваться имя функции (указатель на функцию, т.н. Function Handle в MatLab), осуществляющей вычисление левой части уравнения при заданном значении переменной , а также интервал , на котором ищется корень, и погрешность . Сама функция вводится в графическом интерфейсе в виде строки, например такой: ' x^2'. Преобразование из строки в функцию MatLab может осуществляться с помощью функции inline, например, так: f=inline('x – x^2'). Вызов f(2) теперь вернет -2, а f(5) будет равно -20. Именно функция f и передается в качестве входных данных разрабатываемой функции. Выходным значением разрабатываемой функции должно быть найденное значение корня. Выходное значение должно отображаться на графическом интерфейсе.

Для заданий на поиск экстремума и многомерную оптимизацию на вход разрабатываемой функции в обязательном порядке должно подаваться имя функции (указатель на нее), осуществляющей вычисление целевой функции или (см. выше комментарий для заданий по решению нелинейных и трансцендентных уравнений). Остальные входные параметры определяются в зависимости от конкретного алгоритма и могут включать: интервал , на котором будет производиться поиск экстремумов; начальное значение , с которого начнется поиск экстремума; шаг поиска ; погрешность результата ; число переменных . В случае поиска экстремума, на выходе разрабатываемой функции должно быть число или вектор, содержащий значения , при которых функция имеет экстремум. В случае минимизации функции нескольких переменных на выходе разрабатываемой функции должен быть вектор размерности , содержащий значения абсцисс найденного экстремума. Ввод и вывод всех данных должен осуществляться через графический интерфейс с использованием промежуточных преобразований из строки в число, из строки в inline-функцию и т.п.

Применительно к численным методам интегрирования на вход разрабатываемой функции должен поступать указатель на интегрируемую функцию (см. выше комментарий для заданий по решению нелинейных и трансцендентных уравнений) и интервал интегрирования . Остальные входные параметры выбираются в зависимости от конкретного алгоритма. На выходе функция должна возвращать значение интеграла, вычисленное заданным численным методом. Ввод и вывод данных должен осуществляться через разработанный графический интерфейс пользователя.
Пример использования inline-функции
% Зададим функцию f в виде строки s

s = 'x.^2';

f = inline(s); % перевод строки в функцию

a = 0; % пределы интегрирования a и b

b = 2;

% вычисление значений функции на концах интервала

f1 = f(a);

f2 = f(b);

% вывод в консоль:

disp(['f(x) = ', s])

disp(['a = ', num2str(a), ', b = ', num2str(b)])

disp(['f(a) = ', num2str(f1), '; f(b) = ', num2str(f2)])
%% Численное интегрирование методом трапеций

%с использованием готовой функции MatLab

%(см. [1], с. 104-105)

step = 0.1; % шаг интегрирования

% шаг можно задать и по-другому:

%step = (b-a)/m, где m – число частей,

%на которые разбивается отрезок [a, b]

x = a:step:b; % делим отрезок [a, b] на части

y = f(x);

V1 = step*trapz(y); % метод трапеций

V2 = trapz(x,y); % значения x могут быть

%распределены неравномерно (с изменяемым шагом),

%тогда надо передавать параметр x в функцию trapz

% V1 равно V2 !

% вывод в консоль:

disp(['V1 = ', num2str(V1)])

disp(['V2 = ', num2str(V2)])
%% Проверка точности алгоритма

% Интеграл от функции x^2 на интервале от 0 до 2 равен 2,(6)

% Для проверки вычисляем интеграл аналитически в MatLab

syms z; % объявляем символьную переменную

V3 = int(z.^2, a, b); % интегрируем функцию z.^2 от a до b

disp(['V3 = ', char(V3), ' = ', num2str(double(V3))])
В результате работы этой программы в рабочую область MatLab будет выведен следующий текст:

f(x) = x.^2

a = 0, b = 2

f(a) = 0; f(b) = 4

V1 = 2.67

V2 = 2.67

V3 = 8/3 = 2.6667
Использованная литература

  1. Дьяконов В.П. Справочник по алгоритмам и программам для ПЭВМ. М.: Наука, 1987. 240 с. (издание 1989 г. – стереотипное)

  2. http://ru.wikipedia.org/wiki/Численное_интегрирование

  3. http://ru.wikipedia.org/wiki/Метод_прямоугольников

Похожие:

Задание на курсовую работу по дисциплине «Информатика» iconЗадание на курсовую работу

Задание на курсовую работу по дисциплине «Информатика» iconЗадание на курсовую работу
Построение статических механических характеристик асинхронного двигателя
Задание на курсовую работу по дисциплине «Информатика» iconРабочий план на 4 семестр
Задание на курсовую работу, вопросы к зачётам, экзаменам брать на кафедрах, в электронной библиотеке
Задание на курсовую работу по дисциплине «Информатика» iconТематика практических занятий по дисциплине
Телефонная нагрузка. Расчет межстанционных потоков на гтс и стс. Выдача задания на курсовую работу
Задание на курсовую работу по дисциплине «Информатика» iconРаскрыта не полностью (про финансовую реструктуризацию ничего не написано)
Предварительные результаты за курсовую работу по дисциплине «Теоретические основы финансового менеджмента»
Задание на курсовую работу по дисциплине «Информатика» iconОтзыв научного руководителя на курсовую работу по дисциплине
Анализ использования основных производственных фондов организации (на примере «Рубцовского филиала ОАО «Алтайвагон»)
Задание на курсовую работу по дисциплине «Информатика» iconЗадание на контрольную работу по дисциплине «Теория инноваций»
Задание. Приведите примеры инноваций различных видов, о которых Вы узнали в последнее время
Задание на курсовую работу по дисциплине «Информатика» iconМетодические указания по выполнению курсовой работы по дисциплине «Операции коммерческих банков»
Методические указания предназначены для студентов заочной и очно-заочной (вечерней) форм обучения, которые в соответствии с учебными...
Задание на курсовую работу по дисциплине «Информатика» iconМетодические указания по выполнению курсовой работы 2012
Согласно учебному плану, по дисциплине «Логистика снабжения», студенты 3 курса специальности 080506 «Логистика и управление цепями...
Задание на курсовую работу по дисциплине «Информатика» iconОрганизация производства и управление предприятием
С целью углубления теоретических знаний по данной дисциплине и приобретения практических навыков проведения экономических расчетов...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2020
контакты
userdocs.ru
Главная страница