Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЧМ (ЭКТ-3) / Лабы / Лаба 2 / bisection

.doc
Скачиваний:
107
Добавлен:
17.04.2013
Размер:
202.75 Кб
Скачать

Лабораторная работа N2

Решение нелинейных уравнений

(методы бисекций и Ньютона)

Краткие теоретические сведения.

Очень часто в прикладных задачах требуется решить уравнение вида

, (1)

где – неизвестная переменная. При этом функция может быть полиномом, элементарной или специальной функцией, область определения значения корней может быть ограничена или не ограничена. Будем считать, что функция непрерывна вместе со своими производными в области, где ищется решение. Типичным примером необходимости такого рода решений служит дисперсионное уравнение в теории распространения волн.

Численное решение уравнения вида (1) предполагает выполнение двух этапов. На первом этапе, определяется количество корней уравнения в искомом интервале значений переменной . Лучше всего этот этап реализовывать не программным, а интерактивным образом (построить график и визуально определить количество корней и их местонахождение). Искомый корень следует изолировать, выбрав интервал, на котором он является единственным. Такой интервал называют интервалом изоляции корня. На втором этапе определяется этот изолированный корень. Напомним, что корнем уравнения (1) называется такое значение переменной , при котором уравнение обращается в тождество.

Для нахождения решения уравнения (1) существует множество методов, далее рассматриваются некоторые из них.

Метод дихотомии (деления отрезка пополам)

Допустим, что каким-либо способом определен отрезок изоляции корня. Это означает, что график функции пересекает ось абсцисс (Рис.1), т.е. значения и имеют разные знаки. (Если график функции касается оси абсцисс, то необходимо решить уравнение, аналогичное (2.1), но только для производной функции. Этот случай рассматриваться не будет.) Для определенности будем считать, что , а .

Рис.1. Метод дихотомии

Найдем середину отрезка число (нулевое приближение)

. (2)

Значение будет либо меньше нуля, либо больше нуля (если , то корень найден). Очевидно, что решение будет лежать на отрезке . Далее найденный отрезок опять делим пополам и находим первое приближение

(3)

и опять определяем знак . После приближений исходный отрезок, на котором ищется решение, будет уменьшен в раз. Например, после 10 итераций решение будет находиться в отрезке длиной , а после 20 – .

Вычисления проводятся до тех пор, пока не выполнится условие: или .

Алгоритм

  1. Определяем знаки и .

  2. Вычисляем нулевое приближение – .

  3. Определяем знак .

  4. Если , то определяем новый отрезок, где находится решение – , иначе .

  5. Вычисляем первое приближение и т.д.

Вариант N7.

F(x) = x - sin(x) - 0.25

Построим график функции и локализуем корень:

x = 0.5:0.1:1.5; plot(x, x-sin(x)-0.25)

Текст программы.

n=0

x1=0.5

x2=2

Fx1=x1-sin(x1)-0.25

Fx2=x2-sin(x2)-0.25

E=10^(-4)

while abs(x2-x1)>E

x3=(x1+x2)/2

Fx3=x3-sin(x3)-0.25

n=n+1

if sign(Fx1*Fx3)==-1 x2=x3; end

if sign(Fx2*Fx3)==-1 x1=x3; end

end

clc

x1

x2

abs(x2-x1)

n

После выполнения программы получим:

x1 = 1.1712

x2 = 1.1713

ans = 9.1553e-005

n = 14

Метод Ньютона (метод касательных)

Допустим, найдено некоторое начальное приближение к решению уравнения. В точке с координатами проводим касательную к графику функции , затем находим точку пересечения этой касательной с осью абсцисс – это будет первое приближение (Рис.2). Строя касательную в точке и находя точку ее пересечения с осью , определяем второе приближение . Продолжая этот процесс, получаем последовательность приближений ,,..., ,... к корню уравнения (1).

Уравнение касательной, проведенной к графику функции в точке , будет иметь вид

. (4)

Согласно описанной последовательности следующее приближение получается при , т.е. из уравнения

. (5)

Откуда

. (6)

Именно благодаря такой геометрической интерпретации этот метод иногда называют методом касательных.

Рис.2. Метод Ньютона

Текст программы.

n=0

x0=1

dx=1

E=10^(-4)

while dx>E

n=n+1

x=x0-(x0-sin(x0)-0.25)/(1-cos(x0))

dx=abs(x-x0)

x0=x

end

clc

x0

dx

n

После выполнения программы получим:

x0 = 1.1712

dx = 2.3743e-007

n = 4

Соседние файлы в папке Лаба 2