ЛАБОРАТОРНАЯ РАБОТА 7.
Итерационные методы решения функциональных уравнений
-
Метод простых итераций
-
График функции для выбора начальной точки итерационной процедуры
x=[-5:0.5:5];
y=0.5+atan(x);
plot(x,y,'r',x,x,'b');
grid;
Корень находится на [1 2].
В качестве начальной точки можно взять x=1, либо х=1.5
Условие сходимости итерационного процесса:
|y’|=|1/(1+x2)| 0.5 на отрезке [1;2]
-
Программа решения уравнения методом простых итераций:
ep=input('введите точность');
x=1;
y=0.5+atan(x);
k=1;
while abs(y-x)>ep
k=k+1;
x=y;
y=0.5+atan(x);
end;
y
k
Результаты выполнения:
-
Начальная точка
Точность ep
Решение уравнения
Число итераций
1
0.1
1.4538
3
-
0.01
1.4729
5
-
0.001
1.4748
7
-
0.0001
1.4750
9
-
0.0000001
1.47501717278962
15
1.5
0.1
1.4828
1
-
0.01
1.4775
2
-
0.0001
1.4750
6
-
0.0000001
1.47501721661503
12
-
Метод Ньютона
-
Графики функций.
В качестве начальной точки итерационного процесса можно взять
(1.5;0)
Условие сходимости:
cos(x) -1
-1 -sin(y) 0
-
Написать программу решения системы уравнений методом Ньютона и найти решение
Функция вычисляет матрицу Якоби и обратную ей:
function F=matr(x);
F(1,1)=cos(x(1));
F(2,1)=-1;
F(1,2)=-1;
F(2,2)=-sin(x(1));
F=inv(F);
Программа для решения системы:
ep=input('введите точность');
x=[1.5 –0.5] ;
a=sin(x(1))-x(2)-1.3;
b=cos(x(2))-x(1)+0.84;
f=[a b];
f=f';
matr(x);
y=x-((matr(x))*f)';
k=1;
while abs(sqrt(y(1)^2+y(2)^2)-sqrt(x(1)^2+x(2)^2))>ep,
k=k+1;
x=y;
a=sin(x(1))-x(2)-1.3;
b=cos(x(2))-x(1)+0.84;
f=[a b];
f=f';
y=x-((matr(x))*f)';
end;
y
k
Результаты:
введите точность0.01
y = 1.7908 -0.3241
k = 5
введите точность0.001
y = 1.7880 -0.3235
k = 8
введите точность0.0001
y = 1.7881 -0.3235
k = 10
введите точность0.000001
y = 1.78812130521576 -0.32352227404665
k = 14
Домашнее задание
Решить методом Ньютона следующую систему уравнений:
Из рисунка видно, что система имеет 2 корня. В качестве начальных точек нужно взять (-1;0) и (1.5;1)
ep=input('введите точность');
x=[1.5 1] ;
a=x(2)*(x(1)-1)-1;
b=x(1)^2-x(2)^2-1;
f=[a b];
f=f';
matr1(x);
y=x-((matr1(x))*f)';
k=1;
while abs(sqrt(y(1)^2+y(2)^2)-sqrt(x(1)^2+x(2)^2))>ep,
k=k+1;
x=y;
a=x(2)*(x(1)-1)-1;
b=x(1)^2-x(2)^2-1;
f=[a b];
f=f';
y=x-((matr1(x))*f)';
end;
y
k
Результаты:
Точность 0.01 k=3 Точность 0.001 k =4
y = ( 1.7167; 1.3953) y = ( 1.7167; 1.3953)
y = (-1.1069;-0.4746) y = (-1.1069; -0.4746)