Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФОРМАТИКА_1 / PDF_Inform_2курс / PDF_МЕТОДИЧКИ_2-й_семестр / Решение нелинейных уравнений_МУ и варианты.pdf
Скачиваний:
134
Добавлен:
29.03.2015
Размер:
622.27 Кб
Скачать

Для завершения вычислительного процесса выделяем ячейки 26-й строки от А26 до Н26 и протягиваем вниз по строкам до достижения решения.

На рис. 9 показан фрагмент таблицы и некоторые формулы, записываемые в её ячейки.

Рис. 9.

На рис. 10 показана полная таблица решения уравнения методом дихотомии. В строке 34 этой таблицы приведены результаты решения, полученные после применения функции, в которой метод дихотомии реализован на языке Visual Basic. Текст этой функции приведён ниже.

Рис. 10. Результаты уточнения корня методом дихотомии

Текст функции VBA, реализующей алгоритм метода дихотомии.

Function Dixotomia(a As Double, b As Double, delta As Double, alfa As Double, beta As Double)

Dim i As Integer ' i - счётчик числа итераций

Dim c As Double

If Fsin(alfa, beta, a) * Fsin(alfa, beta, b) > 0 Then MsgBox ("Интервал [a, b] выбран неправильно") Exit Function

End If i = 0 Do

c = (a + b) / 2

If Fsin(alfa, beta, a) * Fsin(alfa, beta, c) < 0 Then b = c Else a = c i = i + 1

Loop Until Abs(b - a) < delta

9

Dixotomia = (a + b) / 2

End Function

Метод хорд

Метод хорд [5] так же, как и метод дихотомии, предназначен для уточнения корня на интервале, определённом при проведении процедуры отделения корней. На концах этого интервала [a, b] исследуемая функция имеет значения F(a) и F(b) с разными знаками. Очередное приближение, определяемое в методе хорд, находится в точке пересечения оси абсцисс прямой, соединяющей точки F(a) и F(b).

Рис. 11. Диаграмма алгоритма метода хорд

Координата этой точки определяется из уравнения прямой, соединяющей точки F(a) и F(b). Определив уравнение прямой как функцию

Y(X) = kX+D,

координата точки пересечения прямой с осью абсцисс определяется из решения системы уравнений

F(a)=ka+D,

F(b)=kb+D.

Решая эту систему, определим значения параметров k и D

k =

F(b) F(a)

, D = F(a) ka

b a

 

 

При условии Y(c)= kc+D=0 определяем значение с:

 

b a

 

 

b a

 

(7)

с = a F (b) F (a) F(a)

или c =b

F (b) F(a) F(b)

 

Блок-схема алгоритма метода хорд приведена на рис. 12.

Результаты применения метода хорд для уточнения значения корня в выделенном интервале [2,00; 2,25] приведены на рис. 13 Решение получено после выполнения трёх итераций.

10

 

 

 

 

 

Function Horda(a,b,δ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод

 

 

 

 

 

 

 

 

 

 

 

 

 

 

параметров

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a, b,δ

 

 

 

 

 

 

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fa=F(a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fb=F(b)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

FaFb>0?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с = a

 

 

 

 

 

 

F(a)

 

 

 

 

 

 

F(b) F(a)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fc = F (c)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет

 

 

 

6

 

 

FaFc>0?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b:=c

 

 

 

 

 

 

 

 

a:=c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Fb:=Fc

 

 

 

 

 

 

 

 

 

 

 

 

 

Fa:=Fc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

| b-a | > δ

нет

10 Horda:=c

11

вывод с,F(с),dx

конец

4

Ошибка !

Exit

Рис. 12. Блок-схема алгоритма метода хорд

Ниже приводится текст функции VBA, реализующей алгоритм метода хорд.

11

Public Function Horda(a As Double, b As Double, delta As Double, alfa As Double, beta As Double)

Dim С As Double, Fa As Double, Fb As Double, Fс As Double Fa = Fsin(alfa, beta, a)

Fb = Fsin(alfa, beta, b) If Fa * Fb > 0 Then

MsgBox ("Интервал [a, b] выбран неправильно") Exit Function

End If Do

С = a - (b - a) / (Fb - Fa) * Fa Fс = Fsin(alfa, beta, С)

If Fс * Fa > 0 Then b = С: Fb = Fс Else a = С: Fa = Fс Loop Until Abs(b - a) < delta

Horda = С End Function

Рис. 13. Результаты применения метода хорд для уточнения корня функции

F(x)=5*sin(x+α)-β*x2

Метод простых итераций

Витерационных методах, которые иначе называют методами последовательных приближений, многократно повторяется - "итерируется" (от латинского "итерацио" - повторение) некоторый единообразный вычислительный процесс. В результате каждой итерации получаются всё более точные приближения к искомому решению.

Вобщем виде итерационная формула определяется приведением уравнения

(1) к равносильной форме

Х=φ(X).

(8)

После записи уравнения (1) в виде (8) определяется начальное значение Х0 - "нулевое приближение". Последующие приближения вычисляются по формулам Х1=φ(X0), Х2=φ(X1),…, или в общем виде

Хi+1 =φ(Xi ).

(9)

Возможны два варианта поведения итерационного процесса.

В первом случае итерационный процесс сходится, последовательные приближения Хi стремятся к некоторому конечному пределу, который и является решением уравнения (1). Во втором варианте процесс расходится, конечного предела приближений не существует. Из расходимости процесса

12