- •3 Курса
- •Предисловие
- •Введение
- •Глава 1. Погрешности результата численного решения
- •1.1. Источники ошибок при вычислениях на эвм.
- •1.2. Практическое вычисление функций.
- •1.3. Схема Горнера и метод Ньютона
- •В общем виде алгоритм запишется:
- •1.5. Метод простых итераций.
- •1.6. Метод деления отрезка пополам (метод дихотомии).
- •1.7. Метод хорд.
- •Программа метода дихотомии.
- •Программа метода простых итераций.
- •Программа метода Бэрстоу.
- •Программа метода хорд.
- •Программа метода секущих.
- •Глава 2 Решение систем линейных уравнений
- •2.1. Метод Гаусса.
- •2.2. Метод итераций (Гаусса-Зейделя).
- •2.4. Стандартные операторы мatlab для решения систем линейных алгебраических уравнений.
- •2.5. Решение систем нелинейных уравнений.
1.5. Метод простых итераций.
Поясним его с помощью графиков. Имеем нелинейное уравнение f(x) = 0 . Представим его в виде x=f1(x). Для этого уравнения легко получить графическое решение.
рис.1.3 рис.1.4
Левая часть уравнения рассматривается как y=x , а правая y=f1(x). Решение x* - точка пересечения прямой и кривой.
Задавая начальное значение x0, определяем y=f1(x0), переходим на прямую, определяя по значению y значение x и т. д.. На рис 1.3 процесс итераций сходится, а на рис 1.4 – расходится. Для иных вариантов расположения кривых показаны рис. 1.5 и 1.6. Точно также наблюдаем, что на рис.1.5 итерации сходятся, а на рис. 1.6 – расходятся.
рис.1.5 рис. 1.6
Алгоритм метода простых итераций в общем виде запишется так:
Задавая необходимую точность ε определения корня уравнения, можно завершить процесс итераций. Обычно . Легко увидеть, что благоприятный результат имеет место, если производная от y1 по модулю .
Идея итераций используется также для решения иных типов уравнений.
Задание для самостоятельной работы:
Реализовать на МATLAB решение нелинейных уравнений методом итераций
а) x-xcosx=0;
б) x-e-x =0;
в) x-x 2-x=0;
г) 1- x + x2/4=0;
д)Доказать эквивалентность алгоритмов метода Ньютона и метода итераций.
Требуется составить программы, определить диапазон существования решения и построить графики.
Отдельные корни можно найти с помощью стандартной функции МATLAB x=fzero('sin(x)-x.^2.*cos(x)',-5). Уравнение записывается в кавычках, а далее начальное приближение. Вместо начального приближения можно записать в скобках [-5,-3] диапазон, в котором следует определить корень. Кроме того, вместо выражения в кавычках можно записать имя любого .m файла, в котором записано уравнение. Особенностью оператора fzero является то, что он позволяет определять только те корни, в которых функция меняет знак.
Приведем простой способ построения графика произвольной функции с помощью стандартного оператора ezplot:
ezplot(‘ x-2*x.*sin(x)’). После выражения в кавычках можно указать, через запятую, желаемый диапазон построения функции [-6 0].
1.6. Метод деления отрезка пополам (метод дихотомии).
К этому методу может прийти любой человек, который имеет опыт вычислительной работы. Если функция на концах интервала [a,b] имеет разные знаки f(a)*f(b)<0, то определяем точку c=0.5*(a+b) и проверяем знаки функций в точках a и c , b и c. Переходим к паре точек, где знаки разные и т.д. Процесс итераций окончен, если заданная точность по определению корня достигнута |b-a|< ε1. Можно использовать также заданную точность по значению функции в точке c: | f(c)| < ε2. Проиллюстрируем алгоритм на рис 1.7 и 1.8.
рис. 1.7 рис.1.8
Метод позволяет оценить скорость сходимости решения. Обозначим два последующих приближения xi и xi+1. Запишем очевидное соотношение . Можно утверждать, что метод сходится со скоростью n, если limn→∞ .Если n=1 , то имеет место линейная сходимость, а, если n=2, то сходимость квадратичная.
Отметим ряд особенностей метода, которые полезно знать для других методов. При малых значениях функций в исследуемых точках, например f(a)=10-30 и f(b)=10-30 , их произведение может выйти за пределы разрядной сетки. Кроме того, вычисление с=0.5(a+b) лучше выполнять по формуле с=a+0.5(b-a). Пусть a =0.982 b=0.984 и, в случае 3-х разрядной сетки, среднее значение может выйти за пределы интервала [a,b] c=0.5(a+b)=0.5*1.97=0.985. Для разных знаков a и b точнее оказывается обычная формула половинного деления (корень близок к нулю 0).
Поскольку скорость сходимости метода дихотомии не велика, большее распространение получили следующие методы.