Материал: Спецглавы высшей математики. численные методы. Пантелеев И.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

while L eps c x2 x1 2;

if feval(F,c)*feval(f,x1)<0;

%feval(f,c) - оператор вычисления в точке х=с

%значения функции, описание которой находится

%в соответствующем файле.

%Имя файла хранится в строковой переменной f. x2 c;

else

x1 c; end;

L x2 x1;

end; z c;

3.Постройте график функции на интервале [-1, 1] (рис.II.2), выполнив в командном окне пакета MATLAB следующую последовательность операторов:

>>x1= -1; >>x2=1; >>dx=10^-3; >>x=x1:dx:x2; >>plot(x,Func(x)); grid on

4.Вычислите значения корня уравнения:

>> Divs (“Func”, x1, x2, 10^-5) ans =

0.3942

5. Проверьте полученное значение корня: >>Func(ans)

ans = 7.4926e-006

19

Рис. II.2. График функции f x x4 11x3 x 2 x 0.1.

Для рассмотрения процесса нахождения корня уравнения в динамике, необходимо сохранить значение корня на каждом шаге вычислительной процедуры и построить зависимость значения корня от номера шага. Далее приведен листинг файла Div2I.m, содержащего описание функции, возвращающей значение корня и длины отрезка (на котором данный корень находится) на каждом шаге метода половинного деления.

Листинг II.3. Файл Div2I.m Function z1, z2 Div2 f , x1, x2, eps ; K=1;

L(1)=x2-x1; % начальная длина отрезка C(1)=(x2+x1)/2; % начальное значение корня

While L(k)>eps

If fevel(f,c,(k))* fevel(f,x1)<0 X2=c(k)

Else X1=c(k);

End;

K=k+1;

C(k)=(x2+x1)/2;

L(k)=x2-x1;

20

end;

Z1=c;

Z2=L;

6. На каждом шаге итерационного процесса вычислите значения корня и длины отрезка, на котором производится поиск решения.

>> c L Div21 "Func", x1, x2,10^ 5 ;

7. Визуализируйте зависимость значения корня от номера итерационного процесса. (Рис.II.3).

>> plot (c,”-0”)

Рис.II.3. Зависимость значения корня от номера шага вычислительной процедуры

8. Визуализируйте зависимость длины отрезка, на котором ищется значение корня, от номера итерации. (Рис.II.4). >> plot (L,”-0”);

21

2.4. Метод простой итерации

Заменим уравнение (II.1) равносильным уравнением:

x f x

(II.4)

Пусть — корень уравнения (II..4), а x0 — полученное какимлибо способом нулевое приближение к корню . Подставляя x0 в правую часть уравнения (II.4), получим некоторое число x1 f x0 . Повторим данную процедуру с x1 и получим

x2=f(xl). Повторяя описанную процедуру, получим последовательность

x0 , x1 , xn . (II.5)

называемую итерационной последовательностью. Геометрическая интерпретация данного алгоритма представлена на рис.II.4. Итерационная последовательность, вообще говоря, может быть как сходящейся, так и расходящейся, что определяется видом функции f x .

Рис.II.4. К объяснению метода простой итерации

22

Теорема II.1. Если функция f x непрерывна, а последова-

тельность (II.5) сходится, то предел последовательности (II.5) является корнем уравнения (II.4).

Действительно, пусть

lim xn , .

Перейдем

к преде-

 

 

n

 

 

лу в равенстве xn f xn 1 :

 

 

lim x n

lim f x n 1

f lim x n 1

f

(II.6)

n

n

n

 

 

Условие сходимости итерационного процесса определяется следующей теоремой.

Теорема II.2. Достаточное условие сходимости итерационного

процесса.

Пусть уравнение

x = f{x) имеет единственный

корень

на отрезке [а,b]

и выполнены условия:

1.f{x) определена и дифференцируема на [а,b].

2.f x a,b , для всех x a, b .

3. Существует такое вещественное q, что f ! x q 1 для всехx a, b .Тогда итерационная последовательность x n f x n 1 n 1,2, сходится при любом начальном приближении x0 a, b .

Доказательство. Построим итерационную последовательность вида (II.5) с любым начальным значениемx0 a, b . В силу

условия 2 теоремы II.2 все члены последовательности находятся в отрезке a, b .

Рассмотрим

два

последовательных

приближения

x n f x n 1

иx n 1 f x n . По теореме Лагранжа о конечных

приращениях имеем:

x n 1 x n f x n f x n 1 f ! c x n x n 1 , c x n 1 , x n .

23

Переходя к модулям и принимая во внимание условие 3 теоремы II.2, получим:

 

 

x n 1 x n

 

 

 

 

f ! c

 

 

 

 

 

 

 

x n x n 1

 

q

 

 

 

x n x n 1

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

При n=1,2, имеем:

 

 

x n 1 x n

 

 

q

 

 

x n x n 1

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 2 x1

 

q

 

x1 x0

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3 x 2

 

q

 

x 2 x1

 

q2

 

x1 x0

 

,

(II.7)

 

 

 

 

 

 

Рассмотрим ряд

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x0 x1 x0 x 2 x1 x n x n 1 (II.8)

Составим частичные суммы этого ряда

s1 x0 ,s2 x1 , ,sn 1 x n

Заметим, что n 1 -я частичная сумма ряда (II.8) совпадает с n-ым членом итерационной последовательности (II.5), т. е.

Sn 1

x n

(II.9)

Сравним ряд (II.8) с рядом

x1 x0

 

q

 

x1 x0

 

q2

 

x1 x0

 

(II.10)

 

 

 

 

 

Заметим, что в силу соотношения (II.7) абсолютные величины членов ряда (II.8) не превосходят соответствующих членов ряда (II.10). Но ряд (II.10) сходится как бесконечно убывающая геометрическая прогрессия ( q 1, по условию). Следова-

тельно, и ряд (II.8) сходится, т. е. его частичная cумма (II.9) 24

имеет предел. Пусть lim x n . В силу непрерывности

n

функции f получаем (см. (II.6)):

f ,

т.е. — корень уравнения х= f(x).

Отметим, что условия теоремы не являются необходимыми. Это означает, что итерационная последовательность может оказаться сходящейся и при невыполнении этих условий. Отыщем погрешность корня уравнения, найденного методом простой итерации. Пусть x n — приближение к истинному

значению корня уравнения x f x - абсолютная ошибка приближения x n , оценивается модулем

Xn x n .

Принимая во внимание (II.8) и (II.9), имеем

x n Sn 1 x n 1 x n x n 2 x n 1 … (II.11)

Сравним (II.11) с остатком ряда (II.9):

 

qn

 

x1 x0

 

qn 1

 

x1 x0

 

 

 

 

 

(II.12)

 

 

 

 

 

Учитывая оценку (II.7), получаем

 

 

 

 

 

 

 

 

 

 

 

xn

 

qn

 

x1 x0

 

qn 1

 

x1 x0

 

 

qn

 

 

x1 x0

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, для оценки погрешности п-го приближения получается формула:

25

x

n

 

qn

 

x

1

x

0

 

(II.13)

 

 

1 q

 

 

 

 

 

 

 

 

 

На практике удобнее использовать модификацию формулы (II.13). Примем за нулевое приближениеx n 1 , (вместоx0 ).

Следующим приближением будет хп (вместоx1 ). Так как

x n x n 1

 

qn 1

 

x1 x0

 

, то

 

 

 

 

 

 

 

 

 

 

 

 

 

x

n

 

q

 

x

n

x

n 1

 

(II.14)

 

 

 

 

 

 

1 q

 

 

 

 

 

 

 

 

 

 

 

При заданной точности ответа итерационный процесс прекращается, если x n .

2.5. Преобразование уравнения к итерационному виду

Уравнение F(x) = 0 преобразуется к виду, пригодному для итерационного процесса, следующим образом:

x x mF x ,

где m — отличная от нуля константа. В этом случае:

f x x mF x

(II.15)

Функция f(x) должна удовлетворять условиям теоремы II.2. Дифференцируя (II.15), получим

f ' x 1 mF x .

(II.16)

Для выполнения условия 3 теоремы II.2 достаточно подобрать m,

так чтобы для всех x a, b

(II.17)

1 mF' x 1

Пример II.2. Найти решение уравнения x4 11x3 x2 x 0.1 0 методом простой итерации, используя пакет MATLAB.

1. Создать файл Func.m (Листинг II.4), содержащий описание функции

26

f x x 4 11x3 x2 x 0.1

Листинг II.4. Файл Func.m Function z Func x

z x.^4 11* x.^3 x.^2 x 0.1;

2. Создайте файл Funcl.m (листингII.5), содержащий описание функции f 1 x, m, f : x mf x .

Листинг II.5. Файл Func1.m

Function z Func1 x, m, f

z x m * Fevel f , x ;

3. Создайте файл Func2.m (листинг II.6), содержащий описание функции f 2 II.16 .

Листинг II.6. Файл Func2.m Function z Func(x,m,f) dx 10^ 7;

x1 x dx

tmp1 x m * fevel f , x ; tmp2 x m * feval f , x ; z abs tmp2 tmp1 / dx ;

4. Постройте графики функций f1,f2, (рис.II.6) >>dx=10^-3;

>>x1=-0.1;x2=0.8; >>x=x1:dx:x2; >>m=-0.05;

>>plot (x, Func1 x, m, 'Func' );

>>hold on

>>plot x, Func2 x, m, 'Func' , ' ' ;

>>grid on

Рис.II.5. График функции f x x mf x 1 и f ' x 1 mF x 2

Из рис. II.6 видно, что на интервале [0.21; 0.8] функция удовлетворяет условиям теоремы II.2.

5.Создайте файл My_Iter.m (листинг II.7), который описывает функцию, возвращающую значение производной на каждом шаге итерационного процесса.

Листинг II.7. Функция My_Iter.m

Funrtion z My _ Iter t, x0,eps, q, m

x 1 x0 ; i=1

while ads x i Funcl x i , m, f q / 1 q *eps

27

28

 

Источник: https://studfile.net/preview/16565850/