ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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