- •ВВЕДЕНИЕ
- •1 ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ УРАВНЕНИЙ
- •1.1 Методы отделения корней
- •1.1.1 Постановка задачи
- •1.1.2 Табличный метод отделения корней
- •1.1.3 Графический метод отделения корней
- •1.1.4 Метод интервалов отделения корней
- •1.2.2 Оценка погрешности приближенного корня
- •1.2.3 Метод половинного деления
- •1.2.3.1 Алгоритм метода половинного деления
- •1.2.4 Метод итераций
- •1.2.4.1 Алгоритм метода итераций
- •1.2.5 Метод Ньютона
- •1.2.5.1 Алгоритм метода Ньютона
- •1.2.6 Метод хорд
- •1.2.6.1 Алгоритм метода хорд
- •1.2.7 Комбинированный метод
- •1.2.7.1 Алгоритм комбинированного метода
- •1.2.8 Пример решения уравнения
- •1.2.8.1 Метод половинного деления
- •1.2.8.2 Метод итераций
- •1.2.8.3 Метод Ньютона
- •1.2.8.4 Метод хорд
- •1.2.8.5 Комбинированный метод
- •1.2.9 Уточнение корней уравнений в Excel с помощью циклической ссылки
- •1.2.9.1 Метод половинного деления
- •1.2.9.2 Метод итераций
- •1.2.9.3 Метод Ньютона
- •1.2.9.4 Метод хорд
- •1.2.9.5 Комбинированный метод
- •1.2.10 Решение уравнений средствами MathCAD
- •ПРИЛОЖЕНИЕ
18
1) f ′(x) > 0 и f ′′(x) > 0 – функция f(x) возрастающая, график f(x) вогнутый или f ′(x) < 0 и f ′′(x) < 0 – функция f(x) убывающая, график f(x) выпуклый, то x1 вычисляется по методу хорд (20), а x2 – по методу Ньютона (18);
2) f ′(x) > 0 и f ′′(x) < 0 – функция f(x) возрастающая, график f(x) выпуклый или f ′(x) < 0 и f ′′(x) > 0 – функция f(x) убывающая, график f(x) вогнутый, то x1 вычисляется по методу Ньютона (18), а x2 – по методу хорд (20).
Погрешность комбинированного метода на n-ом шаге определяется неравенством
|ξ – x | < bn – an,
где x = 21 ( bn + an).
1.2.7.1 Алгоритм комбинированного метода
1.Установить значения a, b, ε – границы отрезка отделения корня и принятую точность приближения.
2.Выполнить проверку применимости метода: если sgn f(a)= sgn f(b), то ме-
тод не применим, конец вычислений. Иначе 3. Установить вариант расчета:
если sgn f ′(a)= sgn f ′′(a), то |
v = 1 |
иначе |
v = 2. |
4.Начать цикл уточнения корня.
4.1.Выполнить сужение интервала изоляции корня: если v = 1, то
a = a –
иначе
b = b –
|
f ( a ) |
|
(b – a); b = b – |
|
f ( b ) |
, |
|||
|
f ( b ) − f ( a ) |
|
|
f ' ( b ) |
|||||
|
f ( b ) |
(b – a); a = a – |
|
f ( a ) |
|
||||
|
|
|
. |
|
|||||
f ( b ) − f ( a ) |
|
|
f ' ( a ) |
|
5.Конец цикла, если b – a < ε .
6.Вывод результата x = a +2 b .
7.Конец алгоритма.
1.2.8Пример решения уравнения
Пример. Средствами электронной таблицы Excel графически определите приближенное место расположения корней уравнения 5 x − 6 x − 3 = 0 . Уточните в MS Excel корни уравнения 5 x − 6 x − 3 = 0 методом половинного деления, методом Ньютона, методом хорд, комбинированным методом и методом итераций с точностью ε = 10-7, используя язык программирования Visual Basic For Application (VBA), циклическую ссылку MS Excel, а также решите уравнение средствами MathCAD.
|
|
|
19 |
|
|
|
|
Решение: |
|
5 x − 6 x − 3 = 0 |
|
|
|
||
Отделяем корни уравнения |
графически, для этого строим в |
||||||
MS Excel график функции у = |
5 x − |
6 x − 3 . |
|
|
|
||
Данные для построения |
|
|
|
|
|
||
x |
y |
|
|
|
|
|
|
-3 |
15,008 |
|
|
|
|
|
|
-2,75 |
13,51196279 |
|
Отделяем корни уравнения 5X-6x-3=0 |
|
|||
-2,5 |
12,01788854 |
|
|
||||
|
|
графически |
|
|
|||
-2,25 |
10,52674961 |
|
|
|
|
||
|
|
|
|
|
|||
-2 |
9,04 |
|
|
120 |
|
|
|
-1,75 |
7,559813951 |
|
|
|
|
||
-1,5 |
6,089442719 |
|
|
100 |
|
|
|
-1,25 |
4,633748061 |
|
|
|
|
||
-1 |
3,2 |
|
|
80 |
|
|
|
-0,75 |
1,799069756 |
|
|
|
|
||
|
|
|
|
|
|||
-0,5 |
0,447213595 |
|
|
60 |
|
|
|
-0,25 |
-0,831259695 |
|
|
|
|
||
|
|
|
|
|
|||
0 |
-2 |
|
|
40 |
|
|
|
0,25 |
-3,004651219 |
|
|
|
|
||
|
|
|
|
|
|||
0,5 |
-3,763932023 |
|
|
20 |
|
|
|
0,75 |
-4,156298475 |
|
|
|
|
||
|
|
|
|
|
|||
1 |
-4 |
|
|
0 |
|
|
|
1,25 |
-3,023256094 |
|
|
|
|
||
-4 |
-2 |
-20 0 |
2 |
4 |
|||
1,5 |
-0,819660113 |
||||||
1,75 |
3,218507624 |
|
|
|
|
|
|
2 |
10 |
|
|
|
|
|
|
2,25 |
20,88371953 |
Из графика видно, что уравнение имеет 2 корня, |
|||||
2,5 |
37,90169944 |
лежащие соответственно в промежутках [-1; 0] и [1; 2]. |
|||||
2,75 |
64,09253812 |
||||||
|
|
|
|
|
|||
3 |
104 |
|
|
|
|
|
1.2.8.1 Метод половинного деления
Function f(x) ' вычисление функции f(x) f = 5 ^ x - 6 * x - 3
End Function
Sub pol_del() Const e = 0.0000001
Dim a As Double, b As Double, c As Double, d As Double, x As Double Dim sgna As Integer, sgnx As Integer
a = InputBox("Введите значение а") b = InputBox("Введите значение b") c = a
d = b
sgna = Sgn(f(a))
If sgna * Sgn(f(b)) < 0 Then Do
20
x = (a + b) / 2 sgnx = Sgn(f(x)) If sgnx = 0 Then Exit Do
Else
If sgna = sgnx Then a = x
Else b = x End If End If
Loop Until (b - a) < e
MsgBox x, , "Корень уравнения на отрезке[" & c & ", " & d & "]" Else
MsgBox "Метод половинного деления не применим" End If
End Sub
Результаты работы программы: 1
Исходные данные:
Результат:
2
Исходные данные:
21
Результат:
1.2.8.2 Метод итераций
Function f(x) |
' вычисление функции f(x) |
f = 5 ^ x - 6 * x – 3 |
|
End Function |
|
Function f1(x) |
' производная функции f(x) |
f1 = Log(5) * 5 ^ x - 6 |
|
End Function |
|
Sub itr() |
|
Const e = 0.0000001
Dim a As Double, b As Double, x As Double, M As Double Dim dx As Double, p As Double, x0 As Double, x1 As Double a = InputBox("Введите значение а")
b = InputBox("Введите значение b")
' Найти наибольшее значение модуля второй производной M = f1(a)
x = a
dx = 0.01 Do
x = x + dx p = f1(x)
If Abs(p) > Abs(M) Then M = p
End If
Loop Until x > b