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


ЧАСТЬ 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. Математичес кая постановка задачи

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


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