Применение информационных технологий во все сферах человеческой деятельности является характерной чертой современного общества, и образовательная деятельность не является исключением.
Важной составляющей образовательной программы являют дисциплины математического и естественнонаучного цикла. Выполнение сложных вычислительных процедур, свойственных для математических дисциплин, затруднено, а порой невозможно без использования информационных технологий. Рассмотрим возможности информационных технологий для выполнения вычислительных экспериментов по дисциплине «Численные методы».
Задачами изучения дисциплины «Численные методы» является:
- Формирование фундаментальных понятий о методах решения прикладных задач с помощью ЭВМ;
- Умение разрабатывать вычислительные алгоритмы и реализовывать их на ЭВМ;
- Развитие навыков реализации вычислительных задач на ЭВМ, интерпретация результатов;
- Формирование общего представления о роли вычислительной математики и численных методов, реализуемых на ЭВМ, в современной жизни.
Таким образом, каждая из задач дисциплины предполагает использование информационных технологий. Рассмотрим возможность использования языком программирования Visual Basic for Application (VBA) для автоматизации расчетов по дисциплине «Численные методы»
Visual Basic for Applications (VBA) — это встроенный язык программирования, предназначенный для создания и выполнения программ (макросов) в среде приложений Microsoft Office. VBA использует среду приложения и встроенный редактор Visual Basic [3].
Язык VBA реализуется в виде визуального программирования, т. е. позволяет работать с графической оболочкой разработанной программы.
В рамках изучения темы «Решение нелинейных уравнений» рассматриваются методы половинного деления, метод касательных, метод хорд, и др.
Рассмотрим алгоритм решения нелинейного уравнения методом половинного деления:
- Расчет количества итераций по формуле , где a,b – концы отрезка; E – требуемая точность вычислений;
- Нахождение значений функции F(x) в точках a и b (функция дана студентам в задании);
- Поиск середины текущего интервала неопределенности [a;b] по формуле (k — номер итерации);
- Нахождение значения функции F(x) в точке Ск;
- Выбор следующего интервала неопределенности; из 2 возможных выбирается тот интервал, на концах которого функция имеет разные знаки;
- Расчет полученной точности по формуле, где a,b – значения интервала неопределенности на k — итерации;
- Повторение пунктов 2-6 число раз, рассчитанных в пункте 1 (число итераций).
Реализация рассмотренного алгоритма на языке программирования VBA подразумевает использование встроенных функций табличного процессора MS Excel. Для удобства работы разработан графический интерфейс программы, представленный на рис.1.

В форме в поле «F(x)» вводится нелинейное уравнение, в поле «интервал» указываются концы отрезка и в поле «точность Е=» — точность решения нелинейного уравнения. Результаты решения располагаются на отдельном листе для удобного представления.
Результат применение метода половинного показан на рис. 2:

Фрагмент кода программы реализующий алгоритм нахождения корня уравнения методом половинного деления, представлен ниже:
Sub полов_деление()
Dim i, N As Single
Sheets("ПолДел").Select
Range("A1:O20").Clear
Range("A1") = "метод половинного деления"
Range("A2") = "интервал"
Range("B2").FormulaR1C1 = "=Лист1!R[2]C[2]"
Range("C2").FormulaR1C1 = "=Лист1!R[2]C[2]"
Range("A3") = "Е="
Range("B3").FormulaR1C1 = "=Лист1!R[3]C[1]"
Range("A4") = "кол-во итераций"
Range("C4").FormulaR1C1 = "=ROUNDUP(LOG(ABS(R[-2]C[-1]-R[-2]C)/R[-1]C[-1],2),0)"
Range("A6") = "k"
Range("B6") = "Ak"
Range("C6") = "Bk"
Range("D6") = "F(Ak)"
Range("E6") = "F(Bk)"
Range("F6") = "Ck"
Range("G6") = "F(Ck)"
Range("H6") = "Bk-Ak"
N = Range("C4").Value
For i = 0 To N
Cells(i + 7, 1) = i
Range("B7").Value = Range("B2").Value
Range("C7").Value = Range("C2").Value
Next i
StrText = Worksheets("Лист1").Range("B2")
StrText = Replace(StrText, "x", "B7")
Cells(7, 4) = "=" + StrText
StrText = Replace(StrText, "B7", "C7")
Cells(7, 5) = "=" + StrText
StrText = Replace(StrText, "C7", "F7")
Cells(7, 7) = "=" + StrText
Range("F7").Formula = "=(C7+B7)/2"
Range("H7").Formula = "=ABS(C7-B7)"
Range("B8").FormulaR1C1 = _
"=IF(R[-1]C[2]*R[-1]C[5]<0,R[-1]C,IF(R[-1]C[5]*R[-1]C[3]<0,R[-1]C[4]))"
Range("C8").FormulaR1C1 = _
"=IF(R[-1]C[1]*R[-1]C[4]<0,R[-1]C[3],IF(R[-1]C[4]*R[-1]C[2]<0,R[-1]C))"
Разработка программ с использованием языка программирования VBA в рамках дисциплины «Численные методы» позволяет существенно ускорить вычислительный процесс, особенно при больших входных интервалах и сложных функциях.