Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
158
Добавлен:
12.04.2015
Размер:
1.09 Mб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 1

Вычисление определённого интеграла

Цель работы: уяснить сущность метода численного решения задачи и овладеть первичными навыками составления, ввода, трансляции, отладки, исполнения и оформления программного модуля.

Время на выполнение работы - 4 часа.

Содержание работы:

  1. Для заданного варианта интегрируемой функции (номер варианта соответствует порядковому номеру в списке группы) составить и ввести программный код подпрограммы-функции. Пример: Function f(ByVal x As Single) As Single f = (Заданное выражение функции) End Function

  2. Объявить (описать) переменные, используемые в модуле программы. Пример: Dim a As Single

  3. Составить и ввести программные коды для ввода исходных данных с клавиатуры. Пример программного кода: Do Do prom=InputBox("Введите начальную границу отрезка a=") If Not Isnumeric(prom) then MsgBox("Повторите ввод") Loop Until Isnumeric(prom) a=prom Do prom=InputBox("Введите конечную границу отрезка b=") If Not Isnumeric(prom) then MsgBox("Повторите ввод") Loop Until Isnumeric(prom) b=prom If a >= b then MsgBox("Повторите ввод") Loop until a<B< strong> Do prom=InputBox("Введите погрешность вычисления e =") If Not Isnumeric(prom) then MsgBox("Повторите ввод") Loop Until Isnumeric(prom) e=prom WorkSheets("Лист5").Activate 'Из семейства рабочих листов выбрать "Лист5" и сделать его активным. Cells.Clear 'Очистить все ячейки активного рабочего листа. ActiveSheet.ChartObjects.Delete 'С активного рабочего листа удалить все графические объекты.

  4. Результат решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений: Range("d1") ="Лабораторная работа № 1" Range("c2")="Вычисление определённого интеграла y = f(x)" (интегрируемая функция должна соответствовать заданию) Range("e3")="Исходные данные" Range("d4")="Нижний предел интегрирования a = "&Csng(a) Range("d5")="Верхний предел интегрирования b = "&Csng(b) Range("d6")="Погрешность вычисления e = "&Csng(e)

  5. Используя алгоритм решения задачи, составить и ввести программный код вычисления определённого интеграла.

  6. Вывести на рабочий лист результат вычисления: Cells(8,4).Value="Значение интеграла S = "&Csng(s) Все эти сообщения должны располагаться на рабочем листе в центре каждой строки видимой части рабочего листа.

  7. С помощью макрорекодера записать макрос, в котором отформатировать результаты на рабочем листе:

  • для первой строки текста задать: шрифт Times New Roman, размер 16, полужирный;

  • для второй строки текста задать: шрифт Times New Roman, размер 14, полужирный;

  • для третьей и последующих строк задать: шрифт Times New Roman, размер 12, полужирный.

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

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

    Запись макроса

    Для записи макроса необходимо:

    1. В режиме открытой рабочей книги MS Excel и активного рабочего листа книги, на котором выведены результаты вычисления интеграла, раскрыть меню Сервис и выполнить щелчок мышкой по строке Макрос.

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

    3. Начать форматирование текста. После окончания форматирования выполнить щелчок мышкой по кнопке Остановить запись.

    Вывод программного кода макроса в окно редактора Visual Basic

    Для вывода программного кода макроса в окно редактора Visual Basic необходимо:

    1. В режиме открытой рабочей книги MS Excel и активного рабочего листа книги, на котором выведены результаты вычисления интеграла, раскрыть меню Сервис и выполнить щелчок мышкой по строке Макрос.

    2. В меню Макрос выполнить щелчок мышкой по строке Редактор Visual Basic.

    3. В окне Project - VBAProject выполнить щелчок мышкой по крестику слева от папки Modules, а затем выполнить двойной щелчок мышкой по ярлыку Module1. Если создано несколько макросов, то выбирается нужный номер макроса.

    Методы вычисления определённого интеграла

    Численное решение рассматриваемой задачи в режиме программирования может быть выполнено рядом методов. Среди них можно отметить следующие методы: метод прямоугольников, метод трапеций и метод Симпсона (метод парабол). Эти методы с точки зрения программной реализации отличаются только методом вычисления площади фигуры, ограниченной отрезками функции в точках нижнего и верхнего пределов интегрирования [a, b], линией графика функции и отрезком оси X в границах [a, b]. Методы могут отличаться точностью результатов вычислений, если задачу решать без достижения требуемой точности, а также скоростью решения. Однако, если задачу решать, добиваясь требуемой точности результата, то указанные различия могут быть только в скорости решения. Различия в скорости решения можно определить по величине числа N, которое зависит от количества повторений (итераций) внешнего цикла в алгоритме задачи. Поэтому остановимся только на методе прямоугольников как наиболее простом.

    Алгоритм вычисления определённого интеграла методом прямоугольников

    Варианты задания к лабораторной работе № 1

    п/п

    Функция f(x)

    a

    b

    п/п

    Функция f(x)

    a

    b

    1

    0

    2

    15

    0,5

    2

    2

    0

    2

    16

    -1

    1

    3

    0

    2

    17

    0

    2

    4

    0,5

    1,5

    18

    -1

    1

    5

    0

    3

    19

    0

    2

    6

    0

    2

    20

    0,5

    1,5

    7

    0

    1

    21

    0,5

    1,5

    8

    1

    2

    22

    0

    2

    9

    0,5

    2

    23

    1

    3

    10

    0

    1,5

    24

    0

    1

    11

    0

    1

    25

    0

    1

    12

    0

    2

    26

    0

    2

    13

    0

    2

    27

    1

    2

    14

    1

    2

    28

    0

    1

    ЛАБОРАТОРНАЯ РАБОТА № 2

    Поиск экстремумов функции одной переменной

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

    Время на выполнение работы - 4 часа.

    Содержание работы:

    1. Для заданного варианта функции составить и ввести программный код подпрограммы-функции.

    2. Объявить (описать) переменные, используемые в модуле программы.

    3. Составить и ввести программные коды для ввода исходных данных с клавиатуры.

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

    5. Результат решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений:

    • "Лабораторная работа № 2";

    • "Поиск экстремумов функции y = Cos(x) - Cos(3x)";

    • (функция должна соответствовать заданию);

    • "Исходные данные";

    • "Начальная граница функции a = " + значение;

    • "Конечная граница функции b = " + значение;

    • "Погрешность вычисления e = " +значение;

    • "Максимум (минимум) функции f(x) = " + значение; "при значении x = " + значение.

    Все эти сообщения должны располагаться на рабочем листе в центре каждой строки видимой части рабочего листа.

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

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

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

    Методы поиска экстремумов функции одной переменной

    Поиск экстремумов (наибольшего и наименьшего значений) унимодальной (обладающей единственным максимумом или минимумом) функции f(x) в некотором интервале её области определения можно осуществить достаточно эффективными методами: табулирование до точки перевала, золотое сечение и другие. Однако по ряду преимуществ с точки зрения программной реализации предпочтительным является метод золотого сечения.

    Алгоритм поиска экстремумов методом золотого сечения

    Представленный алгоритм обеспечивает поиск максимального значения функции. Для поиска минимального значения необходимо логическое выражение f(x1) < f(x2) заменить выражением f(x1) > f(x2).

    Для любознательных и увлечённых рекомендуется составить программный модуль, в котором обеспечивался бы поиск максимального и минимального значений функции. Здесь можно рекомендовать применение подпрограммы-процедуры и оператора Select Case. В этом случае процедур должно быть две: одна для поиска максимума, другая для поиска минимума. Такую задачу можно выполнить и другим способом.

    Варианты заданий к лабораторной работе № 2

    п/п

    Функция f(x)

    a

    b

    п/п

    Функция f(x)

    a

    b

    1

    6

    8

    18

    1

    3

    2

    7

    9

    19

    3

    5

    3

    9

    11

    20

    1

    3

    4

    7

    9

    21

    1

    3

    5

    2

    3

    22

    0

    1

    6

    0

    2

    23

    7

    9

    7

    4

    6

    24

    0

    2

    8

    2

    3

    25

    1

    2

    9

    7

    9

    26

    1

    3

    10

    2

    4

    27

    2

    3

    11

    4

    5

    28

    2

    4

    12

    0

    2

    29

    1

    2

    13

    1

    3

    30

    5

    7

    14

    1

    3

    31

    0

    2

    15

    5

    6

    32

    1

    2

    16

    0

    2

    33

    1,5

    2,5

    17

    0

    1

    34

    1

    3

    ЛАБОРАТОРНАЯ РАБОТА № 3

    Решение нелинейных уравнений

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

    Время на выполнение работы - 4 часа.

    Содержание работы:

    1. Заданный вариант уравнения привести к нормальному виду (перенести все составляющие в левую часть и приравнять нулю, максимально упростить выражение левой части уравнения, если это возможно, и в последующем использовать это выражение в качестве функции).

    2. Для полученного выражения функции составить и ввести программный код подпрограммы-функции.

    3. Объявить (описать) переменные, используемые в модуле программы.

    4. Составить и ввести программные коды для ввода исходных данных с клавиатуры.

    5. Используя алгоритм решения задачи, составить и ввести программный код поиска корня уравнения.

    6. Результат решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений:

    • "Лабораторная работа № 3";

    • "Решение нелинейного уравнения Ln(x) = 1/x" (уравнение должно соответствовать заданию);

    • (функция должна соответствовать заданию);

    • "Исходные данные";

    • "Начальная граница функции a = " + значение;

    • "Конечная граница функции b = " + значение;

    • "Погрешность вычисления e = " +значение;

    • "Корень уравнения x = " + значение;

    • "Значениe функции f(x) = " + значение.

    Все эти сообщения должны располагаться на рабочем листе в центре каждой строки видимой части рабочего листа.

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

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

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

    Методы решения нелинейных уравнений

    Аналитический способ решения в основном доступен и применим для решения линейных, квадратных, простейших тригонометрических и логарифмических уравнений. Однако вещественное решение многих алгебраических или трансцендентных уравнений аналитическим способом оказывается сложным или даже невозможным. Решение таких уравнений возможно численными методами с применением ЭВМ. Таких методов существует множество. Например, к ним относятся методы: хорд, касательных (Ньютона), простой итерации, дихотомии (деления отрезка пополам), Рыбакова и другие. Простейшим из этих методов является метод дихотомии (половинного деления). Несмотря на исключительную простоту, этот метод в случае, когда в заданном интервале отрезка функции есть корень (точка пересечения графика функции с осью абсцисс), работает весьма эффективно. Поэтому предпочтение отдадим этому методу.

    Алгоритм решения нелинейного уравнения методом дихотомии

    Варианты заданий к лабораторной работе № 3

    п/п

    Функция f(x)

    a

    b

    п/п

    Функция f(x)

    a

    b

    1

    1

    2

    17

    0

    /2

    2

    1

    3

    18

    0

    2

    3

    0

    /2

    19

    1

    3

    4

    /2

    20

    0

    /2

    5

    2

    5

    21

    0

    /2

    6

    0

    /2

    22

    7

    9

    7

    0

    /2

    23

    0

    2

    8

    4

    6

    24

    0,1

    2

    9

    0

    /2

    25

    0,1

    1

    10

    /2

    26

    0,1

    1

    11

    0

    1

    27

    0

    /2

    12

    1

    2

    28

    0

    /2

    13

    1

    2

    39

    0

    1

    14

    1

    2

    30

    1

    2

    15

    0

    1

    31

    0

    0,5

    16

    1

    2

    32

    1

    3

    ЛАБОРАТОРНАЯ РАБОТА № 4

    Табулирование функции одной переменной

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

    Время на выполнение работы - 6 часов.

    Содержание работы:

    1. Проанализировать заданную функцию на предмет выявления возможных неопределённостей и результаты анализа реализовать при составлении программного модуля. Алгоритм вычисления функции должен обеспечивать исключение вычисления функции в точках неопределённостей и выдавать сообщение о наличии таковых. Эту задачу можно реализовать либо в основном программном модуле, либо в подпрограмме-функции.

    2. Для выражения функции составить и ввести программный код подпрограммы-функции.

    3. Объявить (описать) переменные, используемые в модуле программы.

    4. Составить и ввести программные коды для ввода исходных данных с клавиатуры.

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

    6. Результаты решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений:

    • "Лабораторная работа № 4";

    • "Табулирование функции y = xLn(x) - 1" (функция должна соответствовать заданию);

    • "Исходные данные";

    • "Начальная граница функции a = " + значение;

    • "Конечная граница функции b = " + значение;

    • "Количество шагов табулирования n = " + значение;"

    • "Величина шага табулирования h = " + значение;

    • "Результаты вычислений" - заголовок таблицы;

    • "№ п/п" - имя первой колонки таблицы;

    • "x" - имя второй колонки таблицы;

    • "y" - имя третьей колонки таблицы.

  • Тщательно рассчитать адреса ячеек рабочего листа для всех выводимых на лист результатов.

  • С помощью макрорекодера записать макрос, в котором оформить рамку таблицы, отформатировать содержание таблицы и все другие результаты на рабочем листе аналогично лабораторной работе № 1, создать диаграмму-график и оформить её.

  • Из модуля макроса выделить блоки кода, соответствующие форматируемому тексту, скопировать и вставить в текст основного программного кода согласно их предназначению, а также блок кода, создающего диаграмму-график функции.

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

  • Отформатировать диаграмму-график и разместить на рабочем листе MS Excel так же, как в подобной работе предыдущего семестра.

    Алгоритм табулирования функции

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

    Варианты заданий к лабораторной работе № 4

    п/п

    Функция f(x)

    п/п

    Функция f(x)

    1

    16

    2

    17

    3

    18

    4

    19

    5

    20

    6

    21

    7

    22

    8

    23

    9

    24

    10

    25

    11

    26

    12

    27

    13

    28

    14

    29

    15

    30

    Вычисление значения функции arcSin(x), отсутствующей в языке программирования VBA, можно свести к элементарным тригонометрическим преобразованиям:

    Возведение в степень xy (если возникают проблемы, которые возможны при отрицательном x или при нецелочисленном y) можно свести к эквивалентному представлению для неотрицательного x:

    • при x > 0 xy =

    • при x = 0, y = 0 xy = 1;

    • при x = 0, y > 0 xy = 0;

    • если x < 0, а значение y целое и чётное, тогда xy = ;

    • если x < 0, а значение y целое и нечётное, тогда xy = - ;

    Примечание: оформление результатов выполнения работы осуществить по аналогии с лабораторной работой № 3 предыдущего семестра.

    ЛАБОРАТОРНАЯ РАБОТА № 5

    Решение обыкновенных дифференциальных уравнений

    Цель работы:уяснить сущность задачи и метода её решения, структуру и порядок выполнения подпрограммы-процедуры с параметрами, совершенствовать навыки составления, ввода, отладки, исполнения и оформления программного модуля по заданному алгоритму.

    Время на выполнение работы - 6 часов.

    Содержание работы:

    1. 1. Для заданной функции двух переменных (z = f(x,y)) составить и ввести программный код подпрограммы-функции. Примерный вариант программного кода такой функции: Function fdu(ByVal x As Single, ByVal y As Single) As Single fdu = (x + y)/x (вводить заданную функцию) End Function

    2. 2. Ввести программный код подпрограммы-процедуры, содержащей метод Рунге - Кутта решения обыкновенного дифференциального уравнения. Программный код подпрограммы-процедуры метода Рунге-Кутта: Sub durk(ByVal h As Single, ByVal x As Single, ByVal y As Single, ByRef y1 As Single) Dim k1 As Single Dim k2 As Single Dim k3 As Single Dim k4 As Single k1 = h*fdu(x,y) k2 = h*fdu(x + h/2, y + k1/2) k3 = h*fdu(x + h/2, y + k2/2) k4 = h*fdu(x + h, y + k3) y1 = 1/6*(k1 + 2*k2 + 2*k3 + k4) End Sub

    3. Объявить (описать) переменные, используемые в модуле программы.

    4. Составить и ввести программные коды для ввода исходных данных с клавиатуры.

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

    6. Результат решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений: - "Лабораторная работа № 5"; - "Решение дифференциального уравнения z = (x + y)/x" (функция должна соответствовать заданию); - "Исходные данные"; - "Начальная граница функции a = " + значение; - "Конечная граница функции b = " + значение; - "Погрешность вычисления e = " + значение; - "Результаты вычислений" - заголовок таблицы; - "№ п/п" - имя первой колонки таблицы; - "x" - имя второй колонки таблицы; - "y" - имя третьей колонки таблицы.

    7. Тщательно рассчитать адреса ячеек рабочего листа для всех выводимых на лист результатов.

    8. С помощью макрорекодера записать макрос, в котором оформить рамку таблицы, отформатировать содержание таблицы и все другие результаты на рабочем листе аналогично лабораторной работе № 4, создать диаграмму-график и оформить её.

    9. Из модуля макроса выделить блоки кода, соответствующие форматируемому тексту, скопировать и вставить в текст основного программного кода согласно их предназначению, а также блок кода, создающего диаграмму-график функции.

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

    11. Отформатировать диаграмму-график и разместить на рабочем листе MS Excel так же, как в подобной работе предыдущего семестра.

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

    13. Через строку ниже таблицы ввести текст: "Выражение искомой функции имеет вид: y = (содержание полученной функции)".