Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 семестр / Решение уравнений.pdf
Скачиваний:
38
Добавлен:
09.04.2015
Размер:
369.21 Кб
Скачать

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