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 |
|