- •Решение типовых задач вычислительной математики с помощью инструментальных средств vb и ms excel
- •Содержание
- •Введение
- •1. Решения задач численными методами в системе Visual Basic
- •Решение нелинейных уравнений
- •1.1.1. Теоретическая часть
- •1.1.2. Практическая часть
- •1.1.3. Варианты заданий
- •1.1.4. Контрольные вопросы
- •1.2. Вычисление определенных интегралов
- •1.2.1. Теоретическая часть
- •1.2.2. Практическая часть
- •1.2.3. Варианты заданий
- •1.2.4. Контрольные вопросы
- •1.3. Вычисление несобственных интегралов
- •1.3.1. Теоретическая часть
- •1.3.2. Практическая часть
- •1.3.3. Варианты заданий
- •1.3.4. Контрольные вопросы
- •1.4. Решение дифференциальных уравнений
- •1.4.1. Теоретическая часть
- •1.4.2. Практическая часть
- •1.4.3. Варианты заданий
- •1.4.4. Контрольные вопросы
- •1.5. Решение систем нелинейных уравнений
- •1.5.1. Теоретическая часть
- •1.5.2. Практическая часть
- •1.5.3. Варианты заданий
- •1.5.4. Контрольные вопросы
- •1.6. Создание Windows-приложений в системе Visual Basic
- •1.6.1. Теоретические основы проектирования меню
- •1.6.2. Программа-шаблон для курсовой работы
- •1.6.3. Контрольные вопросы
- •2. Примеры решения задач в табличном процессоре Excel
- •2.1. Теоретическая часть
- •2.2. Практическая часть
- •2.3. Создание меню пользователя
- •2.4. Варианты заданий
- •2.5. Контрольные вопросы
- •3. Примеры решения задач в субд Access
- •3.1. Теоретическая часть
- •3.2. Практическая часть
- •3.2.1. Создание файла базы данных и таблиц.
- •3.2.2. Поиск, замена и фильтрация данных
- •Отбор записей с помощью фильтра
- •3.2.3. Запросы
- •3.2.4. Формы
- •3.2.4.1. Создание однотабличной формы
- •3.2.4.2. Создание многотабличной формы
- •3.2.4.3. Создание кнопок управления с помощью мастера
- •3.2.4.4. Кнопочная форма
- •3.2.4.5. Запуск приложения
- •3.2.5. Макросы
- •3.2.6. Отчеты
- •3.3. Варианты заданий
- •3.4. Контрольные вопросы
- •Список литературы
- •Примеры решения некоторых задач для курсовых работ
- •Примеры решения некоторых задач для курсовых работ
Введение
Методические указания ориентируют студентов на современную технологию решения задач на ЭВМ с использование визуального и объектного программирования в системе Visual Basic и пакетах MS Excel и Access. Выполнение заданий предусматривает разработку интерфейса приложения. Рассматриваются, широко применяемые в инженерной практике, численные методы решения типовых математических задач, таких, как решение нелинейных алгебраических уравнений и систем, вычисление интегралов, решения дифференциальных уравнений. Студентам предлагается теоретический материал и программа шаблон для практической реализации создания простых Windows-приложений с использованием меню и других элементов управления, как в проектах системы Visual Basic (VB), так и офисных приложениях.
1. Решения задач численными методами в системе Visual Basic
Решение нелинейных уравнений
Цель работы: изучение методов численного решения нелинейных уравнений и приобретение практических навыков по реализации их на ЭВМ.
1.1.1. Теоретическая часть
Алгоритм численного решение нелинейного уравнения f(x)=0 на отрезке [a,b] методом деления этого отрезка пополам состоит в следующем.
Вычисляются значения функций f(a) и f(b) соответственно для левой и правой границ интервала и делится интервал пополам (для определения точки х).
После определения половины текущего интервала, содержащей корень, переменным a или b присваиваем значение х, которое определяем из условия, заданного в условном операторе IF f(a)*f(x)>0 then a=x Else b=x.
Процесс повторяется с начала, пока не будет достигнута заданная точность . Условием окончания цикла является истинное значение логического выражения (Abs(b-a)<=) and (Abs(f(x))<=).
Алгоритм решение нелинейного уравнения f(x)=0 на отрезке [a,b] методом Ньютона (касательных) состоит в следующем.
Корень уравнения на отрезке [a, b] получаем как предел последовательности: .
Уточняем корень с точностью до тех пор, пока не будет выполняться условие . Для сходимости метода достаточно, чтобы отрезок [a, b] содержал единственный корень, а функция f(x) имела на этом отрезке непрерывные производные f(x), f(x) отличные от нуля.
Начальное приближение x0 выбирается так, чтобы выполнялось условие f(x0)*f(x0)>0 или |f(x0)*f(x0)|<|f(x0)|2.
Алгоритм решение нелинейного уравнения f(x)=0 на отрезке [a,b] методом простой итерации состоит в следующем.
Уравнения f(x)=0 преобразуем к виду x=(x), и корень определяем как предел последовательности: .
Уточняем корень с точностью до тех пор, пока не выполнится условие . Условием сходимости процесса итераций является неравенство для всех х в интервале определения корня.
1.1.2. Практическая часть
Постановка задачи. Решить уравнение f(x)=x2 - 8x+15=0 на заданном отрезке [a, b] с точностью методами: деления отрезка пополам, касательных – Ньютона и простой итерации. Допускается, что отрезок [a, b] содержит единственный корень.
Программный код решения нелинейного уравнения методом деления отрезка пополам.
Function f(x As Single) As Single
f = x * x - 8 * x + 15
End Function
Private Sub Form_Load()
Dim ss As String
Caption = "Метод деления отрезка пополам"
e! = InputBox("введите погрешность",,0.00001)
Do
a! = InputBox("введите левую границу аргумента" ,, 1)
b! = InputBox("введите правую границу аргумента" ,, 4)
If f(a)*f(b) > 0 Then
MsgBox "На отрезке корны нет", , "Введите новые значения"
End If
Loop Until f(a) * f(b) < 0
Do
x! = (a + b) / 2
If f(a) * f(x) > 0 Then
a = x
Else
b = x
End If
ss = ss & Format(x, "#0.0000000") & vbCrLf
Loop Until Abs(b - a) <= e And Abs(f(x)) <= e
Text1 = ss & vbCrLf & "Корень=" & Format(x, "#0.000") & _
" Функция в корне = " & Format(f(x), "#0.0000000")
End Sub
Рис.1
Программный код решения нелинейного уравнения методом Ньютона (касательных).
Function f(x As Single) As Single
f = x * x - 8 * x + 15
End Function
Function df(x As Single) As Single
df = 2 * x - 8
End Function
Function d2f(x As Single) As Single
d2f = 2
End Function
Private Sub Form_Load()
Dim ss As String, t1 As Boolean, t2 As Boolean
Caption = "Метод касательных"
e! = InputBox("введите погрешность",,0.00001)
Do
a! = InputBox("введите левую границу аргумента",,1)
b! = InputBox("введите правую границу аргумента",,4)
t1 = f(a) * d2f(a) > 0
t2 = f(b) * d2f(b) > 0
If t1 Then x! = a
If t2 And Not t1 Then x! = b
Loop Until t1 Or t2
Do
d! = f(x) / df(x)
x = x - d
ss = ss & Format(x, "#0.000") & vbCrLf
Loop Until Abs(d) < e
Text1 = ss & vbCrLf & "Корень=" & Format(x, "#0.000") & _
" Функция в корне = " &_ Format(f(x), "#0.000")
End Sub
Рис.2
Программный код решения нелинейного уравнения методом простой итерации.
Function f(x As Single) As Single
f = x * x - 8 * x + 15
End Function
Function fi(x As Single) As Single
fi = (x * x + 15) / 8
End Function
Function dfi(x As Single) As Single
dfi = x / 4
End Function
Private Sub Form_Load()
Dim ss As String, x1 As Single
Caption = "Метод итераций"
e! = InputBox("введите погрешность", , 0.00001)
Do
x! = InputBox("введите нач. приближение корня, например",,4)
If Abs(dfi(x)) > 1 Then
MsgBox "Измените начальное приближение"
End If
Loop Until Abs(dfi(x)) <= 1
Do
x1 = x
x = fi(x1)
ss = ss & Format(x, "#0.000000") & vbCrLf
Loop Until Abs(x1 - x) < e
Text1 = ss & vbCrLf & "Корень=" & Format(x, "#0.000") & _
" Функция в корне = " &_ Format(f(x), "#0.000")
End Sub
Рис.3