ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


С.В. Вакуленко, Е.И. Демидова

С.В. Вакуленко, Е.И. Демидова

Е.А. Литвинова

 

 

Задания к лабораторным работам
с методическими указаниями

ЧАСТЬ 1. «МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ»

 

Донецк-2013


 

Задания к лабораторным работам с методическими указаниями. Часть 1. «Математическое моделирование» / Сост.: С.В. Вакуленко, Е.И. Демидова, Е.А. Литвинова.

 

 

В данном пособии представлены задания для лабораторных работ с методическими указаниями по теме «МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ». В состав пособия входят примеры решения лабораторных работ с заданиями. В работах охвачена часть математических методов, численное решение которых реализовано в среде Visual Basic for Application.

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

 

© Донецкий институт железнодорожного

транспорта, 2013

© Вакуленко С.В., Демидова Е.И.,

Литвинова Е.А.

 

 



СОДЕРЖАНИЕ

 

ЛАБОРАТОРНАЯ РАБОТА № 1 Тема: «Программирование математических формул и функций в среде VBA». 4

ЛАБОРАТОРНАЯ РАБОТА № 2 Тема: «Организация интерфейса для решения задач с массивами в среде VBA». 11

ЛАБОРАТОРНАЯ РАБОТА № 3 Тема: «Реализация метода наименьших квадратов в среде VBA». 27

ЛАБОРАТОРНАЯ РАБОТА № 4 Тема: «Реализация метода Лагранжа в среде VBA» 39

ЛАБОРАТОРНАЯ РАБОТА № 5 Тема: «Численное решение нелинейных уравнений в среде VBA». 48

ЛАБОРАТОРНАЯ РАБОТА № 6 Тема: «Методы вычисления определенных интегралов в среде VBA». 59

ПРИЛОЖЕНИЕ I. 70

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ...................................................71

 


ЛАБОРАТОРНАЯ РАБОТА № 1
Тема: «Программирование математических формул и функций в среде VBA»

 

Цель: Научиться создавать пользовательские процедуры с доступом к значениям ячеек на листе в VBA.

Ход работы

1. Ознакомиться с теорией для выполнения лабораторной работы.

2. В среде VBA построить три функции: функцию одной переменной, функцию нескольких переменных и функцию с одним оператором условного перехода, согласно варианту.

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

4. Используя функцию пользователя, протабулировать каждую функцию в MS Excel на некотором интервале (выбирается студентом самостоятельно). Построить диаграмму для функции одной переменной и функции с одним оператором условного перехода.

Пример решения задания (теория)

Рассмотрим простейшую задачу, которую можно решить с помощью VBA, создание функции пользователя, имеющей имя f. Функция пользователя, после создания, заносится в библиотеку функций. С созданными пользователем функциями можно работать с помощью мастера функций точно так же, как и со встроенными функциями рабочего листа. Функцией рабочего листа, определенной пользователем, является процедура Function, которую можно указать в формуле, хранящейся в ячейке. Создадим, например, функцию пользователя, математически определенную следующим образом

Функция пользователя разрабатывается точно так же, как и любая функция VBA. Она хранится в модуле и описывается с помощью ключевого слова Public.Параметром функции является значение или ссылка на ячейку. По умолчанию Excel присваивает модулям имена: Модуль1, Модуль2 (Module1, Module2)и т. д. Для создания модуля необходимо:

1. Выполнить команду:

§ Разработчик à Макросы(для Microsoft Word 2007 или 2010);

§ Сервис à Макрос à Макросы(для более ранних версий).

2. Ввести имя макроса, например f.

3. Нажать кнопку Создать.

В результате откроется приложение VBA, в котором будет открыт уже существующий модуль (или создан новый), например Модуль1.На экране будут выведены строки:

Sub f()

 

End Sub

4. Заменить эти строки на листе модуля следующим кодом (рис. 1.1).

Рис 1.1. Окно редактора VBA.

Примечание. Функция Pi() в VBA возвращает значение постоянной (в Excel - функция ПИ()), Заметим, что поскольку функция Pi() не является внутренней функцией VBA, то ее необходимо записать в форме Application.Pi().

Произведем теперь вычисления какой-либо функции с использованием только что созданного макроса. Пусть в ячейку А1 записано число 0,2 и вам нужно вычислить в ячейке В1 значение функции f при х = 0,2. Для этого достаточно в ячейку В1 ввести формулу" =f(A1)" (рис. 1.2).

Рис 1.2. Окно Excel. Использование пользовательских функций.

Это можно сделать и с помощью мастера функций, который будет содержать функцию f наряду с другими встроенными функциями Excel. Для этого необходимо:

1. Выполнить команду Формулы à Вставить функцию (для ранних версий Вставка à Функция).При этом откроется окно Мастер функций - шаг 1 из 2.

2. Выбрать в левом списке Категориипункт Полный алфавитный перечень,а затем в правом списке – пункт f.

3. Нажать кнопку ОК. Откроется окно Мастер функций - шаг 2 из 2.

4. Ввести в поле ввода адрес ячейки А1. (рис. 1.3)

Рис. 1.3. Ввод функции в ячейку с помощью мастера функций

5. Нажать кнопку ОК.

Пример решения задания (теория)

Рассмотрим пример функции пользователя, вычисляющей значение следующей функции с двумя условиями:

Функцию g можно вычислить с помощью следующей функции пользователя:

Public Function g(y)

If y <= 0 Then

g = (1 + y ^ 2) / (Sqr(1 + y ^ 2))

Else

g = 2 * y + Sin(y) ^ 2 / (2 + y)

End If

End Function

ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ

Вариант 1 1) ; 2) ; 3) . Вариант 2 1) ; 2) ; 3) .
Вариант 3 1) ; 2) ; 3) . Вариант 4 1) ; 2) ; 3) .
Вариант 5 1) ; 2) ; 3) . Вариант 6 1) ; 2) ; 3) .
Вариант 7 1) ; 2) ; 3) . Вариант 8 1) ; 2) ; 3) .
Вариант 9 1) ; 2) ; 3) . Вариант 10 1) ; 2) ; 3) .
Вариант 11 1) ; 2) ; 3) . Вариант 12 1) ; 2) ; 3) 3.
Вариант 13 1) ; 2) ; 3) . Вариант 14 1) ; 2) ; 3) .
Вариант 15 1) ; 2) ; 3) . Вариант 16 1) ; 2) ; 3) .
Вариант 17 1) ; 2) ; 3) . Вариант 18 1) ; 2) ; 3) .
Вариант 19 1) ; 2) ; 3) . Вариант 20 1) ; 2) ; 3) .
Вариант 21 1) ; 2) ; 3) . Вариант 22 1) ; 2) ; 3) .
Вариант 23 1) ; 2) ; 3) . Вариант 24 1) ; 2) ; 3) .
Вариант 25 1) ; 2) ; 3) . Вариант 26 1) ; 2) ; 3) .
Вариант 27 1) ; 2) ; 3) . Вариант 28 1) ; 2) ; 3) .
Вариант 29 1) ; 2) ; 3) . Вариант 30 1) ; 2) ; 3) .
Вариант 31 1) 2) ; 3) .   Вариант 32 1) ; 2) ; 3) .

ЛАБОРАТОРНАЯ РАБОТА № 2
Тема: «Организация интерфейса для решения задач с массивами в среде VBA»

 

Цель: Получение навыков составления математических моделей и реализации поставленной задачи с использованием пользовательских форм в среде VBA.

Ход работы.

1. Составить математическую модель решаемой задачи.

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

2. Ввод исходных данных реализовать с листа MS Excel (элементы массива) и через элементы упра

f) листинг рабочего листа с исходными данными.

Теоретическая часть

Для описания одномерных массивов в Visual Basic используется конструкция Dim. Например, для описания массива целых чисел необходимо ввести код

Dim A(1 To 10) As Integerили Dim A(10) As Integer

Для ввода значений в программу с листа Microsoft Excel необходимо использовать функцию Cells. Синтаксис функции

Cells(номер строки,номер столбца)

Например, x = Cells(3,4) вводит значение переменной x в ячейку D3

Для реализации разветвляющегося процесса используется оператор условного перехода (условный оператор) If. Условный оператор If имеет три формы.

Формы оператора if
Краткая форма If … Then
Полная форма If … Then … Else
Проверка множественных условий If … Then … ElseIf

 

b=b+a
a > 5
+
Краткая форма

If a>5 Then b = b+a

 

Полная форма

 

b=b+a
a > 5
b=b-a
+
If a > 5 Then

b = b + a

Else

b = b - a

End If

 

Проверка множественных условий

 

b=b+a
a > 5
+
b=b-a
a < 2
b=b*a
+
If a > 5 Then

b = b + a

ElseIf a<2 Then

b = b - a

Else

b = b * a

End If

Для реализации циклического процесса с известным количеством повторений (блок итераций), постусловием, используется оператор For…Next. Данный оператор сначала выполняет операторы цикла, а потом проверяет условие выхода из цикла, если оно выполняется, то происходит выход из цикла. Таким образом, данный цикл всегда выполняется хотя бы один раз. Синтаксис оператора:

For Счетчик=НачЗначение То КонЗначение [Step Приращение]

<оператор 1>

<оператор 2>

. . .

<оператор n>

Next [Счетчик]

 

Пример решения задания

Задание

Все нулевые элементы одномерного массива исключить или заменить на 1, полученный новый массив записать на текущий или новый лист.

 

Дан массив b = (10, 5, 0, -3, -5, 2, 0, 0, 4, 5)
нулевые элементы(bi=0) заменить на 1
вывод на текущий лист (Лист 1)
с = (10, 5, -3, -5, 2, 4, 5)
с = (10, 5, 1 , -3, -5, 2, 1, 1, 4, 5)
вывод на новый лист (Лист 1)
нулевые элементы(bi=0) исключить

ЭТАП 1. Математичес кая постановка задачи

Решение поставленной задачи


Вариант 1

Записать положительные или отрицательные элементы массива подряд в массив .

Вариант 2

Записать элементы массива с четными или нечетными индексами подряд в массив .

 

Вариант 3

Записать четные или нечетные элементы массива подряд в массив .

 

Вариант 4

Переставить элементы массива в обратном порядке или поменять местами пары соседних элементов.

 

Вариант 5

Упорядочить элементы массива в порядке возрастания или убывания.

 

Вариант 6

Составить массив, состоящий из частного или сумм пар соседних элементов исходного массива.

 

Вариант 7

Составить массив, состоящий из удвоенных или разделенных на два элементов исходного массива.

 

Вариант 8

Составить массив, состоящий из элементов исходного массива, удовлетворяющих условию: больших 1 или меньших 1.

 

Вариант 9

Составить массив, состоящий из обратных элементов исходного массива или возведенных в квадрат.

 

Вариант 10

Составить массив, состоящий из возведенных в квадрат или в степень 1/2 положительных элементов исходного массива.

Вариант 11

Извлечь корень 3 степени или умножить на 3 каждый положительный элемент исходного массива, сформировать из них новый массив.

 

Вариант 12

Все отрицательные элементы массива заменить нулями или противоположными значениями, сформировать новый массив.

 

Вариант 13

Все нулевые элементы массива исключить или заменить на 1, сформировать новый массив.

 

Вариант 14

Записать элементы массива , которые делятся на 3 нацело или с остатком подряд в массив .

Вариант 15

Составить массив, состоящий из среднего арифметического или разности пар соседних элементов исходного массива.

 

Вариант 16

Записать четные или нечетные элементы массива подряд в массив , при этом четные прологарифмировать, а нечетные разделить на 2.

 

Вариант 17

Составить массив, состоящий из элементов исходного массива, которые принадлежат отрезку и тех, которые не принадлежат ему.

 

Вариант 18

Составить массив, состоящий из отрицательных элементов исходного массива или их модулей.

 

Вариант 19

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

 

Вариант 20

Составить массив , состоящий из элементов исходного массива , удовлетворяющих условию: или

Вариант 21

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

 

Вариант 22

Составить массив , состоящий из элементов исходного массива , удвоенных или уменьшенных в три раза.

 

Вариант 23

Заменить каждый положительный элемент массива на -1 или отрицательный на 1.

 

Вариант 24

Все положительные элементы массива заменить противоположными значениями или обратными величинами, сформировать новый массив.

 

Вариант 25

Записать корень квадратный из положительных или удвоенные отрицательные элементы массива подряд в массив .

 

Вариант 26

Записать квадрат четных или куб нечетных элементов массива подряд в массив .

Вариант 27

Записать элементы массива с четными или нечетными индексами в массив в порядке возрастания.

 

Вариант 28

Составить массив, состоящий из элементов исходного массива, которые не принадлежат отрезку и тех, которые принадлежат ему.

Вариант 29

Записать четные или нечетные элементы массива подряд в массив , при этом четные увеличить на 3, а нечетные уменьшить на 2.

 

 

Вариант 30

Составить массив, состоящий из элементов исходного массива больше 1 или меньше -1.

 

Вариант 31

Составить массив, состоящий из модулей отрицательных или положительных элементов исходного массива.

 

Вариант 32

Составить массив, состоящий из суммы или произведения пар соседних элементов исходного массива.

 

 

ЛАБОРАТОРНАЯ РАБОТА № 3
Тема: «Реализация метода наименьших квадратов в среде VBA»

 

Цель: Получение навыков экспериментальной обработки информации путем реализации МНК с применением языка программирования VBA.

Ход работы.

1. Создать форму пользователя в среде VBA для реализации метода наименьших квадратов. Исходные данные (результаты эксперимента) взять из условий задания.

2. Ввод исходных данных реализовать с листа MS Excel (результаты эксперимента) и через текстовое поле формы (количество измерений).

3. Результаты вычислений вывести в форму (текстовое поле или комментарий).

4. Найти абсолютную погрешность метода (чтобы найти абсолютную погрешность, необходимо взять любую точку y* на заданном отрезке экспериментальных данных и посчитать значение функции в точке y*; сравнить полученное значение функции со значением из таблицы экспериментальных данных по формуле ).

5. В отчете представить:

a) графическое представление исходных данных;

b) аналитическую подготовку для реализации метода наименьших квадратов;

c) блок-схему алгоритма;

d) листинг всех процедур и функций;

e) заполненную исходной информацией и результатами расчетов форму пользователя с указанием всех задействованных элементов управления и их основных свойств: имени, заголовка, значения, начального значения и т.п.;

f) листинг рабочего листа с исходными данными.

Пример решения задания

Задание

В результате опытов был получен следующий набор значений:

x
y 9,8 12,1 12,9 14,0 16,0 17,9 18,3 21,2 24,0 25,3 26,1

Необходимо установить аналитическую зависимость между переменными x и y (метод наименьших квадратов). В качестве приближающей функции нужно выбрать линейную функцию вида .


Решение поставленной задачи

ЭТАП 1. Отделение корней

Для начала необходимо определить промежутки, на которых находиться только один корень, например средствами MS Excel для построения графика функции . Для этого на листе MS Excel необходимо построить таблицу значений и (рис. 5.1). Интервал значений выбирается произвольно исходя из характера графика.

1. Выделить ячейку внутри таблицы (например В6):

2. Выполнить:

§ Вставка à Точечнаяà Точечная с гладкими кривыми (для Microsoft Word 2007 или 2010);

§ Вставка à Диаграмма à Точечнаяà … (для более ранних версий).

 

Рис 5.1. Окно Excel. Построение графика функций.

Согласно построенному графику функция пересекает ось Ох несколько раз, соответственно уравнение будет иметь несколько корней. Например на отрезках: , , … , , , … . При этом следует отметить, что на отрезке возможно наличие двух корней или их отсутствие, т.к. построенный график не дает возможности однозначно утверждать об этом. Для ответа на этот вопрос необходимо рассмотреть значения функции на этом отрезке с меньшим шагом, например 0,2.

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


ПРИЛОЖЕНИЕ I.

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

Запись в математике Запись в программе Тип результата Назначение
x*y - Произведение чисел
x/y - Деление чисел
(x+a)/(y+b) - Сложная дробь
x*x - Квадрат числа
x*x*x - Куб числа
abs(x) real, integer Модуль аргумента
sin(x) real Синус, угол в радианах
cos(x) real Косинус, угол в радианах
arcsin(x) real Арксинус, значение в радианах
x^k real k степень x
sqr(x) real Корень квадратный
exp(x) real Экспонента
exp(x*log(a)) real Экспонента
exp(1/m*log(a)) real Корень m-ой степени
log(x) real Логарифм натуральный
pi real =3.141592653…

 

 


СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

 

1. А. Гарнаев Excel 2000 Разработка приложений, BHV, 2000г.

2. А. Гарнаев Excel, VBA, Internet в экономике , BHV, 2000г.

3. А. Гарнаев Visual Basic 6.0 Разработка приложений, BHV, 2001г.

4. Браун С. Visual Basic 6: учебный курс. – СПб.: Питер, 2002. – 576 с.: ил.

5. Васильев А., Андреев А. VBA в Jffice 2000: учебный курс.-СПб.: Питер, 2001. -432с.

6. Задания к лабораторным работам с методическими указаниями. Раздел. «БЛОК-СХЕМНОЕ ПРОГРАММИРОВАНИЕ. ПРОГРАММИРОВАНИЕ В СРЕДЕ TURBO PASCAL» / Сост.: С.В. Вакуленко, М.Р. Терованесов, Е.И. Демидова, Е.А. Литвинова. : Донецк, 2011. – 62 с.

7. Карпов Б. Visual Basic 6: специальный справочник. – СПб.: Питер, 2002. – 416 с.: ил.

8. Кузьменко В.Г. Программирование на VBA 2002. – М.: ООО «Бином-Пресс», 2003 г. – 880 с.; ил.

9. Подлин Ш. Программирование для Microsoft Excel, Вильямс, -М. 2000г.

10. Райтингер М., Муч Г. Visual Basic 6.0: пер. С нем. – К.: Издательская группа BHV, 2000. – 288 с. (Серия «Библиотека студента»)

11. Санна Пол и др. Visual Basic для приложений (версия5) в подлиннике: пер. с англ. – СПб.: BHV – Санкт-Петербург, 1998. – 704 с.

12. Хальворсон М. Visual Basic для профессионалов, ЭКОМ, - М. 2000г.

 

 


 

ДЕМИДОВА ЕЛЕНА ИВАНОВНА,

Задания к лабораторным работам

С методическими указаниями

С.В. Вакуленко, Е.И. Демидова

Е.А. Литвинова

 

 

Задания к лабораторным работам
с методическими указаниями

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти