ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 15.07.2025
Просмотров: 231
Скачиваний: 0
17
f ′(x) > 0 и f ′′(x) < 0 – функция f(x) возрастающая, график f(x) выпуклый;
f ′(x) < 0 и f ′′(x) > 0 –функция f(x) убывающая, график f(x) вогнутый. Следовательно, сужение интервала изоляции корня возможно изменением
только одной из его границ, а именно, если приближенное значение x корня ξ выполнено с недостатком, то принять a = x , иначе b = x .
Оценить погрешность результата можно, используя следующее соотноше-
ние: |
m |
||
|xn – xn–1| < |
ε, |
||
M − m |
|||
min |
max |
||
где m = x [ a ; b ] |f ′(x)|, M = x [ a ;b ] |f ′(x)|. |
|||
1.2.6.1Алгоритм метода хорд
1.Установить значения a, b, ε – границы отрезка отделения корня и принятую точность приближения.
2.Выполнить проверку применимости метода: если sgn f(a)= sgn f(b), то ме-
тод не применим, конец вычислений. Иначе 3. Установить вариант сужения интервала изоляции корня:
если sgn f '(a)= sgn f ''(a), то v = 1 – вариант с недостатком иначе v = 2 – вариант с избытком.
4. Вычислить m = |
min |
M = |
max |
x [ a ; b ] |f ′(x)|; |
x [ a ; b ] |f ′(x)|. |
5.Начать цикл уточнения корня.
5.1.Вычислить очередное приближение x = a –
f ( a )
f ( b ) − f ( a ) (b – a).
5.2. Вычислить оценку для приближения и выполнить сужение интервала изоляции корня:
если v = 1, то d = x – a; a = x, иначе d = b – x; b = x.
6. Конец цикла, если d < Mm m ε .
−
7.Вывод результата x.
8.Конец алгоритма.
1.2.7Комбинированный метод
Пусть на отрезке [a; b] отделен корень уравнения (1), функция f(x) дважды дифференцируема, а f ′(x) и f ′′(x) сохраняют постоянные знаки на указанном интервале.
Комбинированный метод соединяет в себе метод хорд и метод Ньютона и позволяет на каждом этапе находить значения по недостатку x1 и значения по избытку x2 точного корня ξ уравнения (1). Тогда сужение отрезка изоляции корня можно выполнять, принимая a = x1, b= x2 . Если:
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