Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Матан v.0.1.doc
Скачиваний:
15
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

1.2. Усовершенствованный метод последовательный приближений

Рис.1.6

Метод итераций для хn и xn+1 дает:

f(xn-1) = xn; f(xn) = xn+1.

Откуда получаем для Δх:

∆x = xn-1 – xn = f(xn) - xn,

xn+1 = xn + ∆x, лучше взять xn+1 = xn + d ∆x, d>1, чтобы быстрее попасть в точку а. Имеем tg = , что видно из рис.6

Рис.1.7

С другой стороны, по теореме о среднем

tg = , где xn -промежуточная точка .

f'( ) = . Вообщем, значение - неизвестно, но можно принять f'( .

Геометрический процесс отыскания следующего приближения xn-1 сводится к тому, что проводится хорда через точки (xn, f(xn)) и (xn-1, f(xn-1)) и определяется точка ее пересечения с прямой y = x.

Сходимость:

1) 0<f'(x)<1 1< <

поправки ∆x малы, но 1< < увеличит их и сходимость улучшится. 2) -1<f'(x)<0

п оправки велики, а их уменьшит и метод сходится быстрее: поправки уменьшаются на коэффициент между и 1.

3) Расходится (в «классическом» методе итераций), если f'(x)>1

Так как , то в усовершенствованном методе знаки поправок изменяются нужным образом, и граф поиска меняет направление.

4) Расходится (в «классическом») если f'(x)<-1, так как поправки велики. В данном случае - уменьшает поправки.

Рис.1.10

Каждая поправка умножается на коэффициент между 0 и и процесс расходится, медленнее. Описанная модификация метода итераций принадлежит Векштейну (1958 г).

1.3. Метод Ньютона-Рафсона

Уравнение имеет вид F(x) = 0. Запишем уравнение касательной к кривой F(x) в точке x0 из «геометнии» (рис. 11):

tg = F'(x0) =

y = F(x0) + F'(x0)(x-x0)

Пусть y = 0 0 = F(x0) + F'(x0)( x1- x0), откуда x1 = x0 - , x2=x1- ,

Продолжая процесс построения последовательности проводя касательную к графику F(x) в очередной точке xi, получим

xn = xn-1- .

формула итераций метода Ньютона –Рафсона. Сходимость достигается при |xn- xn-1 | < , где m1 = min |F'(x)| на [ ], M2 = max F''(x) на [ ]. x0 выбирается так, что F(x0) · F''(x0)>0. Здесь ε –наперед заданная погрешность.

Пример: Рассмотрим построение итерационных формул для извлечения корней 2 и 3 степеней числа на основе метода Ньютона – Рафсона.

. ; ; ;

N = 2;

N = 3;

Или .

Рис. 1.11

Function func(x) 'объявление функции f(x)

func = Sin(x) - 2 * Log(x) 'функция

End Function 'конец объявления

Function f1(x) 'объявление функции f1(x)

f1 = -Cos(x) - 2 / x '1-ая производная функции

End Function 'конец объявления

Sub Newton_Raзson()

Dim x As Single ' х в рекурсии

Dim e As Single ' точность

Dim n As Integer ' счетчик итераций

Dim xpr As Single ' значение х на предыдущей итерации

x = CSng(InputBox("Введите начальное приближение", "Решение уравнений")) 'диалог запроса начального приближения

e = CSng(InputBox("Введите точность", "Решение уравнений")) 'диалог запроса точности измерения

n = 0 'присвоение параметру n значение 0

'------------------------ рекурсивное вычисление ---------

Do

'начало цикла

n = n + 1

'увеличение значения n на 1

xpr = x

'переприсвоение значений, присваиваем х предид. значение полученного х

x = x - (func(x) / f1(x))

'вычисление значения х

Loop Until Abs(x - xpr) < e 'условие цикла

c = MsgBox("Корень равен " + CStr(x), 0, "Решение уравнений")

'вывод сообщения на экран

c = MsgBox("точность достигнута за " + CStr(n) + " итераций", 0, "Решение уравнений")

'вывод сообщения на экран

'----------------------------- вывод точки корня ----------

Worksheets(1).Cells(3, 1).Value = x

'вывод на лист 1 значение искомого х

Worksheets(1).Cells(4, 1).Value = func(x)

'вывод на лист 1 значение функции, соответствующее искомому х

'------------------- построение графика ----------

x = x - 1.5

'определяем значение с которого начинаем просчитывать х

For i = 1 To 200

'начало цикла

x = x + 0.03

'шаг, с которым просчитываем х

Worksheets(1).Cells(1, i).Value = x

'вывод на лист 1 значение иксов

Worksheets(1).Cells(2, i).Value = func(x)

'вывод на лист 1 значение функции в заданных иксах

Next i

'конец цикла

End Sub 'конец программы