Образец выполнения лабораторной работы №4
⇐ ПредыдущаяСтр 9 из 9 1. Постановка задачи для конкретного варианта. Предварительно локализовав отрезок, содержащий первый положительный корень нелинейного уравнения e- x - x =0, разработать проект VBA, позволяющий уточнить его с заданной точностью, используя: а) метод половинного деления; Выбор метода решения нелинейного уравнения осуществить с помощью элементов управления OptionButton, помещённых на пользовательскую форму (UserForm).Элементы управления OptionButton сгруппировать с помощью элемента управления Frame. Для каждого из перечисленных выше численных методов спроектировать отдельную пользовательскую форму (UserForm) на которой разместить необходимые объекты (элементы управления Label – для подписи на форме комментариев для пользователя; элементы управления TextBox – для ввода точности, и вывода найденного корня и числа итераций, за которое удалось найти требуемое значение корня с заданной точностью; элементы управления CommandButton – для выхода, вычисления корня и перехода на следующую и предыдущую формы). Необходимые вычисления оформить процедурами функциями. 2. Описание процесса отделения отрезка, содержащего первый положительный корень для конкретной функции из своего варианта. Этот пункт проделать самостоятельно (см. лаб. раб. №1). Мы воспользуемся результатами предыдущих лабораторных работ (2 и 3). Имеем: f (x)= e- x - x, начало отрезка a=0, конец отрезка b=1. 3. Обоснование сходимости (применимости метода) каждого из перечисленных в условии итерационных процессов в применении к конкретной функции и найденному отрезку. (Этот пункт также проделать самостоятельно (см. лаб. раб. №2).) 4. Эскизы всех пользовательских форм (UserForm) с подписанными именами нанесённых на них элементов управления.
а) UserForm1
б) UserForm2
в) UserForm3, UserForm4, UserForm5 спроектируйте аналогично UserForm2. (Все элементы управления и их имена аналогичны тем, что размещены на UserForm2. Поменять только свойство Caption соответствующих форм на название того метода который в данный момент реализуется.) 5. Тексты программ и блок-схемы всех необходимых процедур с указанием названия модуля в которых они сохранены. Ниже приводятся тексты всех необходимых процедур. Блок-схемы тех процедур, в которых реализуются тот или иной численный метод решения нелинейных уравнений приводятся в прил 1-4. Естественно, что они требуют адаптации под написанные ниже тексты программ. Недостающие блок-схемы оформить самостоятельно. а) Модуль UserForm1 Private Sub CommandButton1_Click() UserForm1.Hide End Sub Private Sub CommandButton2_Click() UserForm1.Hide If OptionButton1.Value = True Then UserForm2.Show ElseIf OptionButton2.Value = True Then UserForm3.Show ElseIf OptionButton3.Value = True Then UserForm4.Show ElseIf OptionButton4.Value = True Then UserForm5.Show End If End Sub Private Sub UserForm_Initialize() OptionButton1.Value = True End Sub б) Модуль UserForm2 Private Sub CommandButton1_Click() UserForm2.Hide UserForm1.Show End Sub Private Sub CommandButton3_Click() UserForm2.Hide UserForm3.Show End Sub Private Sub CommandButton2_Click() Dim c As Single Dim n As Integer a = 0 b = 1 eps = Val(TextBox1.Text) n = 0 Do While (b - a)>= eps xn = (a + b) / 2 n = n + 1 If f(a)*f(xn)<= 0 Then b = xn Else a = xn Loop TextBox2.Text = xn TextBox3.Text = n End Sub Private Sub UserForm_Initialize() TextBox2.Enabled = False TextBox3.Enabled = False End Sub в) Модуль UserForm3 Процедуры обработки событий для CommandButton1 и 3, а также пользовательской формы (Initialize) написать самостоятельно. Private Sub CommandButton2_Click() a = 0 xn=1 eps = Val(TextBox1.Text) n = 0 Do xn = xn - f(xn) * (xn - a) / (f(xn) - f(a)) n = n + 1 Loop While Abs(f(xn)) >= eps TextBox2.Value = xn TextBox3.Value = n End Sub г) Модуль UserForm4 Процедуры обработки событий для CommandButton1 и 3, а также пользовательской формы (Initialize) написать самостоятельно.
Private Sub CommandButton2_Click() xn=0 eps = Val(TextBox1.Text) n = 0 Do Until Abs(f(xn)) < eps xn = xn - f(xn) / производная_f(xn) n = n + 1 Loop TextBox2.Value = xn TextBox3.Value = n End Sub д) Модуль UserForm5 Процедуры обработки событий для CommandButton1 и 3, а также пользовательской формы (Initialize) написать самостоятельно. Private Sub CommandButton2_Click() a=0 b=1 eps = Val(TextBox1.Text) xn = (a + b) / 2 n = 0 Do xn = fi(xn) n = n + 1 Loop Until Abs(f(xn))< eps TextBox2.Value = xn TextBox3.Value = n End Sub е) Module1 Public Function f(ByVal x As Single) As Single f = Exp(-x) - x End Function Public Function производная_f(ByVal x As Single) As Single производная_f = -Exp(-x) - 1 End Function Public Function fi(ByVal x As Single) As Single fi = Exp(-x) End Function 6. Результаты работы для каждого из методов решения нелинейных уравнений выписать в следующем виде:
7. Расписать структуру полученного проекта. 8. Отразить на схеме взаимосвязь имеющихся модулей. 9. Проанализировать полученные результаты и сравнить с результатами предыдущих лабораторных работ.
Таблица 3 ВАРИАНТЫ ЗАДАНИЙ для лабораторных работ №2, №3, №4
Таблица 4 Ответы к лабораторной работе №1
Таблица 5
Ответы к лабораторным работам №2, №3, №4*
*Корень уравнения, приведенный в качестве ответа, найден при помощи метода половинного деления с заданной точностью
Использованная литература
1. Костомаров Д.П., Корухова Л.С., Манжелей С.Г. Программирование и численные методы. – М.: МГУ, 2001. – 224 с. 2. Беляев Б.А., Власков Г.А., Медведева Т.А., Цвиль М.М. Численные методы с программированием на Паскале. – Ростов н/Д: РГСУ, 1995. 3. Воробьёва Г.Н., Данилова А.Н. Практикум по вычислительной математике: учеб. пособие для техникумов. 2-е изд., перераб. и доп. – М.: Высш. школа, 1990. – 208 с. 4. Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах. - СПб.: БХВ-Петербург, 2001. 5. Белявский Г.И., Павлов И.В. Теория пределов и дифференциальное исчисление (курс лекций и контрольное задание №2 по высшей математике для студентов всех форм обучения). – Ростов н/Д: РГСУ, 2003. 6. Шамраева В.В., Зиньковская Н.П. Объектно-ориентированное программирование для Microsoft Excel. – Ростов н/Д: РГСУ, 2006. – 100 с.
Приложение 1
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|