Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по информатике 2009.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
12 Мб
Скачать

4.2. Итерационные методы решения нелинейных уравнений

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

Уравнения в общем случае можно представить следующим образом:

f(x)=0.

Нелинейные уравнения можно разделить на два класса - алгебраические и трансцендентные.

Алгебраическими считаются уравнения, содержащие только алгебраические функции (целые, рациональные, иррациональные).

Алгебраическое уравнение в общем виде можно представить многочленом n-й степени с действительными коэффициентами:

f(x)=a0+a1x+...+an-1xn-1+an xn=0 .

Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.), называются трансцендентными, например: x3+x2+2ex+5=0; 2x-sin3x=0.

Задача решения уравнения заключается в нахождении таких значений х, которые обращают его в тождество.

4.2.1. Метод деления отрезка пополам

Рассмотрим некоторые итерационные методы решения нелинейных уравнений, которые часто используются при расчете химико-технологических систем.

Пусть дано уравнение f(x)=0. Допустим, нам удалось найти такой отрезок [a,b], на котором расположено значение корня x, т.е. а<x<b. В качестве начального приближения корня х0 принимаем середину отрезка x0=(a+b)/2. Далее исследуем значения функции: если f(x0)=0, то х0 является корнем уравнения, т.е. x=x0. Если f(x0)≠0, то выбираем одну из половин отрезка [a,x0] или [x0,b], на концах которой функция f(x) имеет противоположные знаки, т.е. содержит искомый корень, поэтому его принимаем в качестве нового отрезка [x0,b]. Вторую половину отрезка на концах которого знак f(x) не меняется, отбрасываем: в данном случае [a,x0]. Отрезок [x0,b] вновь делим пополам. Новое приближение: x1=(x0+b)/2. Вновь исследуем функцию f(x) на концах отрезка и отбрасываем отрезок [x0,x1] т.к. f(x0)>0 и f(x1)>0. Отрезок [x1,b],на концах которого функция имеет противоположные знаки f(x1)<0, f(b)>0, вновь делим пополам и получаем новое приближение корня x2=(x1+b)/2. и т.д. Итерационный процесс продолжаем до тех пор, пока значение функции f(a) после n-й итерации не станет меньше некоторого заданного малого числа (погрешности).

4.2.2. Метод простых итераций

Метод итераций представляет собой циклический процесс, очередное приближение которого есть корень с определенной точностью.

Исходя их найденного на предыдущем шаге значения хn-1, вычисляем у = f(xn-1). Если |y-xn-1|> eps , то полагают хn=y и выполняют очередную итерацию. Если же |y-xn|<=eps, то приближенные вычисления заканчивают и за решение принимают xn=y.

Рассмотрим пример решения уравнения ех–10х = 0; eps = 0.001 на отрезке [0;6].

Корни х1 и х2 легко отделяются графически. Они являются абсциссами точки пересечения графиков ex с прямой y=10·x. Для определения корня заменим исходное уравнение эквивалентным x = 0.1 ex. На отрезке [0;1] f'(0)=0.1; f'(1)= 0.271; т.к. функция ex монотонная, то 0<f'(x)<1, то есть q = 0.271. В качестве начального приближения выбираем х0=1. Вычисления прекращаются, когда n-f(xn)|<=eps. Последовательные приближения в этом случае таковы: x1=0.271, x2=0.131, x3= 0.114, x4=0.112, x5= 0.111, то есть x1=0.111 c точностью 0.001.

Для определения второго корня представляем исходное уравнение в виде х=ln(10x). В этом случае эквивалентной функций будет являться f(x)=ln(10x), а f'(x) = 1/x ;|1/x|<=0.5 , то есть q =0.5. x0=2, x1= 2.995, x2=3.399, x3= 3.526, x4= 3.562, x5=3.576, то есть x1= 3.576 c точностью 0.001.