- •Решение типовых задач вычислительной математики с помощью инструментальных средств 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. Контрольные вопросы
- •Список литературы
- •Примеры решения некоторых задач для курсовых работ
- •Примеры решения некоторых задач для курсовых работ
1.4.4. Контрольные вопросы
Можно ли методом Рунге-Кутта решить дифференциальные уравнения 4-порядка и, что при этом измениться?
Можно ли типы переменных, описанных в начале программы в области General определить в операторах присваивания внутри программы?
Что собой представляют переменные xmin, xmax, ymin, ymax и где они определяются?
Для чего необходим оператор присваивания Label1.Visible=False?
Поясните в программе, где и каким образом рисуются координатные оси, график, масштабная сетка и метки на рисунке.
1.5. Решение систем нелинейных уравнений
Цель работы: изучение методов численного решения систем нелинейных уравнений и приобретение практических навыков по их реализации на ЭВМ.
1.5.1. Теоретическая часть
Алгоритм решение системы нелинейных уравнений методом простой итерации.
Исходную систему преобразуем к виду .
Последовательные приближения к решению системы (определению корня) осуществляется по итерационным формулам: .
Решение уточняется до тех пор, пока не выполнится условие Abs(xn-xn-1)< and Abs(yn-yn-1)<. Условие сходимости итерационного процесса будет:
Другой метод решения системы нелинейных уравнений, когда трудно отыскать решение на заданном интервале, состоит в использовании дополнительных коэффициентов (шагов интегрирования) a и b, подбираемых путем изменения лишь знака. Значения этих коэффициентов должны находиться в диапазоне от 0.1 до 0.01. Слишком маленькие значения шагов (например, 0.001) приводят к переполнению памяти и затягиванию процесса вычисления (уменьшению быстродействия). Значения коэффициентов близкие к единице приводят к переполнению переменных x,y или к невозможности вычисления их значения из-за наличия логарифмических функций, входящих в уравнения f1 и f2. При этом, исходные уравнения должны быть представлены в следующем виде:
.
1.5.2. Практическая часть
Постановка задачи 1. Решить методом простой итерации систему нелинейных уравнений следующего вида:
.
Исходную систему преобразуем к виду .
Последовательные приближения к решению системы осуществляется по формулам
.
Для нахождения условия сходимости итерационного процесса определим производные: Условие сходимости выполняется для точек расположенных внутри области (0,5<x<; -0,7<y<0,7). Зададимся начальными значениями корня для последующего уточнения: x0 =0.9; y0 = -0.45.
Программный код решения системы нелинейных уравнений методом простой итерации.
Private Function f1(x As Double, y As Double) As Double
f1 = x ^ 2 + y ^ 2 - 1
End Function
Private Function f2(x As Double, y As Double) As Double
f2 = Log(x) + 2 * y + 1
End Function
Private Function fi1(x As Double, y As Double) As Double
fi1 = Sqr(1 - y * y)
End Function
Private Function fi2(x As Double, y As Double) As Double
fi2 = (1 + Log(x)) / 2
End Function
Private Sub Form_Load()
ss$ = ""
Caption = "Система нелинейных уравнений"
e# = InputBox("Введите точность вычисления",,0.000001)
x0# = InputBox("Начальное нач. приближение корня для Х",,2)
y0# = InputBox("Начальное нач. приближение корня для У",,0.1)
y# = y0
x# = x0
Do
ss = ss & "X = " & Format(x, "#0.00000000") & Space(5) & _
"Y = " & Format(y, "#0.00000000") & vbCrLf
x
Рис.9
y0 = fi2(x, y)
d1# = Abs(x - x0)
d2# = Abs(y - y0)
x = x0
y = y0
Loop Until d1 <= e And d2 <= e
ss = ss + "Решение системы " & vbCrLf
ss = ss & "Х = " & _
Format(x, "#0.00000000") &_Space(5) & _
"Y = " & Format(y, "#0.00000000")
Text1 = ss
End Sub
Постановка задачи 2. Решить систему нелинейных уравнений с помощью метода дополнительных коэффициентов a и b:
.
Программный код решения системы уравнений, используя метод дополнительных коэффициентов.
Private Const a = 0.01, b = 0.01
Private Function f1(x As Double, y As Double) As Double
f1 = x + 3 * Log(x) / Log(10) - y ^ 2
End Function
Private Function f2(x As Double, y As Double) As Double
f2 = 2 * x ^ 2 - y * x + 1 - 5 * x
End Function
Private Function f(x As Double, y As Double) As Double
f = x + a * f1(x, y)
End Function
Private Function p(x As Double, y As Double) As Double
p = y + b * f2(x, y)
End Function
Private Sub Form_Load()
ss$ = ""
Caption = "Система нелинейных уравнений"
e# = InputBox("Введите точность вычисления",,0.0000001)
x0# = InputBox("Начальное нач. приближение корня для Х",,4)
y0# = InputBox("Начальное нач. приближение корня для У",,3)
Do
y# = y0
x# = x0
ss = ss & "X = " & Format(x, "#0.00000000") & Space(5) & _
"Y=" & Format(y, "#0.00000000") & vbCrLf
x0 = f(x, y)
y0 = p(x, y)
d1# = Abs(x - x0)
d2# = Abs(y - y0)
x = x0
y = y0
Loop Until d1 <= e And d2 <= e
ss= ss +"Решение системы " & vbCrLf & " Х= " & _
Format(x, "#0.00000000") & Space(5) & "Функция F1(x,y)= "
ss = ss & Format(f1(x, y), "#0.00000000") & vbCrLf
ss = ss & "Y = " & Format(y, "#0.00000000") & Space(5) & _
"Функция F2(x,y)= " & Format(f2(x, y), "#0.00000000")
Text1 = ss
End Sub
Рис.10