Численные методы
Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений и определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 27.02.2012 |
Размер файла | 177,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
34
Размещено на http://www.allbest.ru/
КАЗАНСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ
Кафедра прикладной математики
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
по курсу "Информатика"
для самостоятельной работы студентов
всех специальностей
ЧИСЛЕННЫЕ МЕТОДЫ
ЧАСТЬ 1
Казань
2008
Составители: Ф.Г. Ахмадиев, Ф.Г. Габбасов, И.Н. Гатауллин, Р.Ф. Гиззятов, Р.И. Ибятов, Х.Г. Киямов.
УДК 621.313: 518.6
Методические указания по курсу "Информатика" для самостоятельной работы студентов всех специальностей. Численные методы. Часть 1. /Казанский государственный архитектурно-строительный университет. Сост.: Ф.Г. Ахмадиев, Ф.Г. Габбасов, И.Н. Гатауллин, Р.Ф. Гиззятов, Р.И. Ибятов, Х.Г. Киямов. Казань, 2008. -35 с.
Методические указания состоят из двух частей и предназначены для самостоятельной работы студентов всех специальностей 2-го курса дневного и заочного отделений. В данной работе приводятся численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов, методы аппроксимации дискретных функций и методы решения задач линейного программирования.
Табл. 8, библиогр. назв. 6.
Рецензент - Р.Б. Салимов, доктор физ.-мат. наук, профессор
Казанский государственный
архитектурно-строительный
университет, 2008г.
1. Численное решение нелинейных уравнений
Задана непрерывная функция F(x). Требуется определить корни уравнения F(x)=0.
Такая задача встречается в различных областях научных исследований, в том числе и при расчетах строительных конструкций, организации и управлении строительным производством.
Нелинейные уравнения можно разделить на два класса - алгебраические и трансцендентные. Алгебраическими уравнениями называются уравнения, содержащие только алгебраические функции.
Уравнения, содержащие другие функции (тригонометрические, показательные, логарифмические и др.) называются трансцендентными.
Методы решения нелинейных уравнений делятся на прямые и итерационные. Прямые методы позволяют записать корни в виде некоторого конечного соотношения. Если не удается решить уравнения прямыми методами, то для их решения используются итерационные методы, т.е. методы последовательных приближений. Алгоритм нахождения корня уравнения с помощью итерационного метода состоит из двух этапов:
а) отыскания приближенного значения корня, или содержащего его отрезка;
б) уточнения значения до некоторой степени точности.
Приближенное значение корня (начальное приближение) может быть найдено различными способами из физических соображений, из решения аналогичной задачи при других исходных данных, с помощью графических методов. Если такие простые оценки исходного приближения произвести не удается, то находят две близко расположенные точки a и b, в которых непрерывная функция F(x) принимает значения разных знаков, т.е. F(a)*F(b)<0. В этом случае между точками a и b есть, по крайней мере, одна точка, в которой F(x)=0. В качестве начального приближения первой итерации x0 можно принять середину отрезка [a, b], т.е. x0=(a+ b)/2.
Итерационный процесс состоит в последовательном уточнении x0. Каждый такой шаг называется итерацией. В результате итераций находятся последовательности приближенных значений корня x0, x1, ... , xn. Если эта последовательность с ростом значения n приближается к истинному значению корня, то итерационный процесс сходится.
1.1 Метод деления отрезка пополам
Допустим, что мы нашли отрезок [a, b], в котором расположено искомое значение корня x = c, т.е. a<c<b.
Пусть для определенности F(a)<0, F(b)>0 (см. рис. 1.1). В качестве начального приближения корня x0 принимается середина этого отрезка, т.е. x0 = (a + b)/2. Далее исследуем значение функции F(x) на концах отрезков [a,x0] и [x0,b]. Тот из них, на концах которого F(x) принимает значения разных знаков, содержит искомый корень. Поэтому его принимаем в качестве нового отрезка. Вторую половину отрезка [a, b] отбрасываем. В качестве первой итерации корня принимаем середину нового отрезка и т. д.
y
y=F(x)
F(b)
a b x
F(a) x0=(a+b)/2
Рис. 1.1 Метод деления отрезка пополам.
Таким образом, после каждой итерации отрезок, на котором расположен корень, уменьшается вдвое, т.е. после n итераций он сокращается в 2n раз.
Поскольку в рассматриваемом случае F(x0)<0, то x0<c<b, и рассматриваем отрезок [x0,b]. Следующее приближение: x1=(x0+b)/2 и т.д. Итерационный процесс продолжаем до тех пор, пока значение функции F(x) после n-й итерации не станет меньшим по модулю некоторого заданного малого числа , т.е. F(xn)<. Можно также оценивать длину полученного отрезка, если она становится меньше допустимой погрешности, то счет прекращается.
Пример: Найти решение уравнения x3+x-1=0 c точностью =0.01 методом деления отрезка пополам.
Решение: Данное уравнение представим в виде x3=-x+1. Корнем данного уравнения является точка пересечения графиков функций y=x3 и y=-x+1 (рис.1.2). Искомый корень находится между точками a=0 и b=1. Функция F(x)=x3+x-1 на концах отрезка [0,1] принимает значения разных знаков F(a)F(b)<0.
В точках 0; 0.5; 1 заданная функция принимает значения -1; -0,375 и 1, следовательно, корень находится в интервале [0,5;1] (т.е. на концах этого интервала F(x) принимает значения разных знаков). Далее в точках 0,5; 0.75; 1 функция принимает значения -0,375; 0,171875; 1 и следовательно корень находится в интервале [0,5;0,75].
Рис. 1.2
Вычисления производятся до достижения заданной точности
xi+1-xi=0,6875-0,679688=0,007812<0.01
и оформляются в виде таблицы 1.1. Приближенным решением данного уравнения является x=0,683594.
Таблица 1.1
a |
F(a) |
x |
F(x) |
b |
F(b) |
|
0 |
- 1 |
0,5 |
- 0,375 |
1 |
+ 1 |
|
0,5 |
- 0,375 |
0,75 |
+ 0,171875 |
1 |
+ 1 |
|
0,5 |
- 0,375 |
0,625 |
- 0,13086 |
0,75 |
+ 0,171875 |
|
0,625 |
- 0,13086 |
0,6875 |
+ 0,012451 |
0,75 |
+ 0,171875 |
|
0,625 |
- 0,13086 |
0,65625 |
- 0,06113 |
0,6875 |
+ 0,012451 |
|
0,65625 |
- 0,06113 |
0,671875 |
- 0,02483 |
0,6875 |
+ 0,012451 |
|
0,671875 |
- 0,02483 |
0,679688 |
- 0,00631 |
0,6875 |
+ 0,012451 |
|
0,679688 |
- 0,00631 |
0,683594 |
+ 0,003038 |
0,6875 |
+ 0,012451 |
На рис. 1.3 приведена программа решения данного уравнения методом деления отрезка пополам.
CLS
REM LR-1-1, m=13, n=5
DEF FNF(X) = X^3+X-1
1 INPUT A, B, E
YA= FNF(A): YB=FNF(B)
IF YA*YB>0 THEN 1
2 X =(A+B)/2: Y=FNF(X)
PRINT X, Y
IF YA*Y<0 THEN B=X ELSE A=X
IF (B-A)>E THEN 2
END
Рис.1.3. Пример программы нахождения корней уравнения методом деления отрезка пополам.
1.2 Метод Ньютона (метод касательных)
Суть метода состоит в том, что на k-й итерации в точке (xk, F(xk)) строится касательная к кривой y=F(x) и ищется точка пересечения касательной с осью абсцисс. При этом необязательно задавать отрезок [a, b], содержащий корень уравнения, а достаточно найти лишь некоторое начальное приближение корня x=x0 (рис. 1.4). Если задан интервал изоляции корня [a,b], то за начальное приближение x0 принимается тот конец отрезка, на котором
F(x0)·F(x0)> 0.
Уравнение касательной, проведенной к кривой y=F(x) в точке M0 с координатами x0 и F(x0), имеет вид:
y - F(x0) = F(x0)·(x-x0). (1.1)
y
y=F(x)
F(x0) М0
0 x2 x1 x0 x
Рис. 1.4. Метод касательных.
За следующее приближение корня x1 примем абсциссу точки пересечения касательной с ocью оx:
x1 =x0 - F(x0) / F(x0). (1.2)
При этом необходимо, чтобы F(x0) не равнялся нулю:
F(x0)0
Аналогично могут быть найдены и следующие приближения, как точки пересечения с осью абсцисс касательных, проведенных в точках M1, M2 и т.д. Формула для n+1-го приближения имеет вид:
xn+1 = xn - F(xn)/F(xn). (1.3)
Для завершения итерационного процесса можно использовать условие F(xn)< , или условие близости двух последних приближений: xn+1-xn<.
Объем вычислений в методе Ньютона больше, чем в других методах, поскольку приходится находить значение не только функции F(x), но и ее производной. Однако скорость сходимости здесь значительно выше.
Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом Ньютона c точностью =0.01.
Решение: Определим первые и вторые производные заданной функции: F(x)=3x2+1; F(x)=6x. Вычислим значения функции F(x) на концах заданного интервала F(0)=-1; F(1)=1. Так как F(1)·F(1)=1·6>0, за начальное приближение корня можно принять x=1. Находим первое приближение:
x1=x0-F(x0)/F(x0)=x0-(x03+x0-1)/(3x02+1)=1-(13+1-1)/(3·12+1)=0,75
Аналогично находится второе приближение:
x2=x1 - F(x1)/F(x1)=x1-(x13+x1-1)/(3x12+1)=
=0,75-(0,753+0,75-1)/(3·0,752+1)=0,686047
Аналогично находится третье приближение:
x3 =x2 - F(x2)/F(x2)=x2-(x23+x2-1)/(3x22+1)=
=0,686047-(0,6860473+0,686047-1)/(3·0,6860472+1)=0,68234
Так как x3 - x2=0,68234-0,686047=0,00371< 0.01, итерационный процесс заканчивается. Таким образом, приближенным решением данного уравнения является x = 0,68234.
На рис. 1.5 приведена программа решения данного уравнения методом Ньютона.
CLS
REM LR-1-2, m=13, n=5
DEF FNF(X)=X^3+X-1
DEF FNP(X)=3*X+1
INPUT X, E
1 X=X- FNF(X)/FNP(X)
PRINT X, FNF(X)
IF ABS(FNF(X)/FNP(X))>E THEN 1
END
Рис. 1.5. Программа нахождения корней методом Ньютона.
1.3 Метод простой итерации
Для использования этого метода исходное нелинейное уравнение F(x)=0 необходимо привести к виду x = (x).
В качестве (x) можно принять функцию (x) =x-F(x)/M, где M неизвестная постоянная величина, которая определяется из условия сходимости метода простой итерации (x)<1. При этом для определения M условие сходимости записывается в следующем виде:
1-F'(x0)/M <1 или M=1.01· F'(x0).
Если известно начальное приближение корня x=x0, подставляя это значение в правую часть уравнения x=(x), получаем новое приближение x1=(x0).
Далее подставляя каждый раз новое значение корня в уравнение x=(x), получаем последовательность значений:
x2=(x1), x3=(x2),..., xk+1= (xk)..... k = 1,2,...,n.
Итерационный процесс прекращается, если результаты двух последовательных итераций близки, т.е. xk+1 - xk< .
Пример: Решить уравнение F(x)=x3+x-1=0 на отрезке [0;1] методом простой итерации c точностью =0.01.
Решение: Из условия сходимости
1-F(x0)/M<1 или 1-(3x0+1)/M<1,
при x0=1 определяем M>4. Пусть M = 5.
Подставляя каждый раз новое значение корня в уравнение
xk+1=xk-(xk3+x-1)/5,
получаем последовательность значений:
x1=x0-(x03+x0-1)/5=1 - (13+1-1) / 5 = 0,8
x2 = x1-(x13+x1-1)/5=0,8 - (0,83+0,8 -1) / 5 = 0,7376
x3 =x2-(x23+x2-1)/5=0,7376 - (0,73763+0,7376 -1) / 5 = 0,709821
x4 =x3 -(x33+x3-1)/5=0,709821- (0,7098213+0,709821-1) / 5 = 0,696329
x5=x4-(x43+x4-1)/5=0,696329- (0,6963293+0,696329-1) / 5 = 0,689537
x5 - x4 = 0,689537- 0,696329 = 0,00679 < 0.01.
Геометрическая интерпретация метода простой итерации.
Построим графики функций y=x и y=(x). Корнем x* уравнения x=(x) является абсцисса пересечения кривой y=(x) с прямой y=x ( см. рис. 1.6). Взяв, в качестве начальной точки точку x0 строим, ломаную линию. Абсциссы вершин этой ломаной представляют собой последовательные приближения корня x*. Из рисунка видно, что если -1<(x)<0 на отрезке [a, b] (рис. 1.6b), то последовательные приближения xi+1 = (xi) колебаются около корня. Если же производная 0<(x)<1 (рис. 1.6.а), то последовательные приближения сходятся монотонно.
На рис.1.7 приведена программа решения данного уравнения методом простой итерации.
CLS
REM LR-1-3, m=13, n=5
DEF FNF(X)= X^3+X-1
INPUT X, E, M
1 X = X - FNF(X)/M
PRINT X, FNF(X)
IF ABS(FNF(X)/M)>E THEN 1
END
Рис.1.7. Программа решения уравнения методом простой итерации.
решение уравнение интеграл функция программирование
2. Методы решения систем линейных алгебраических уравнений
Методы решения систем уравнений:
a11x1 + a12x2 + ... + a1nxn = b1
a21x1 + a22x2 + ... + a2nxn = b2
................................................ (2.1)
an1x1 + an2x2 + ... + annxn = bn
делятся на точные и приближенные.
2.1 Метод Гаусса
Является одним из наиболее распространенных методов решения систем линейных алгебраических уравнений. Этот метод является точным методом. В основе метода Гаусса лежит идея последовательного исключения неизвестных. Рассмотрим систему из трех уравнений с тремя неизвестными:
I: a11x1 + a12x2 + a13x3 = b1
II: a21x1 + a22x2 + a23x3 = b2 (2.2)
III: a31x1 + a32x2 + a33x3 = b3
Система уравнений (2.2) приводится к эквивалентной системе с треугольной матрицей:
I: a11x1 + a12x2 + a13x3 = b1
II: a22x2 + a23x3 = b2 (2.3)
III: a33x3 = b3
Достигается это при помощи цепочки невырожденных элементарных преобразований, при которых из каждой строки вычитаются некоторые кратные величины, расположенные выше строк.
Процесс приведения системы (2.2) к системе (2.3) называется прямым ходом, а нахождение неизвестных x1, x2, x3 из системы (2.3) называется обратным ходом.
Прямой ход исключения: Исключаем x1 из уравнений (II) и (III) системы (2.2). Для этого умножаем уравнение (I) на d1=-a21/a11 и складываем со вторым, затем умножаем на d2=-a31/a11 и складываем с третьим.
В результате получаем следующую систему:
II: a22x2 + a23x3 = b2
III: a32x2 + a33x3 = b3 (2.4)
Из полученной системы (2.4) исключаем x2 . Для этого умножая новое уравнение на d3=-a32/a22 и складываем со вторым уравнением, получим уравнение:
III: a33x3 = b3 (2.5)
Взяв из каждой системы (2.2), (2.4) и (2.5) первые уравнения, получим систему уравнений с треугольной матрицей.
Обратный ход: Из уравнения (III) находим x3=b3/a33. Из уравнения (II) находим x2=b2-a23x3. Из уравнения (I) находим x1=b1-a12x2-a13x3. Коэффициенты a11, a22 называются ведущими элементами 1-го и 2-го шагов исключения неизвестных. Они должны быть отличны от нуля. Если они равны нулю, то, меняя местами строки, необходимо на их место вывести ненулевые элементы.
Аналогичным путем методом Гаусса решаются системы n уравнений с n неизвестными.
Пример: Решить систему уравнений методом Гаусса:
x1 + 4x2 + 3x3 = 10
2x1 + x2 - x3 = -1
3x1 - x2 +x3 = 11
Решение: Удалить члены с x1 из 2-го и 3-го уравнений можно, вычитая из 2-ой строки 1-ую, умноженную на 2, а из 3-й - первую, умноженную на 3:
x1 + 4x2 + 3x3 = 10
-7x2 - 7x3 = -21
-13x2 -8x3 = -19
2-ая строка делится на -7:
x1 + 4x2 +3x3 = 10
x2 + x3 = 3
13x2 + 8x3 = 19
Вторая строка умножается на 13 и вычитается из 3-ей:
x1 + 4x2 + 3x3 = 10
x2 + x3 = 3
-5x3 = -20
3-я строка делится на -5:
x1 + 4x 2+ 3x3 = 10
x2 + x3 = 3
x3 = 4
Процедура обратного хода дает исходное решение:
x3 = 4;
x2 = 3 - x3 = -1;
x1 =10 -4x2-3x3 = 10 - 4*(-1) - 3*4=10+4-12=2.
2.2 Метод прогонки
Является частным случаем метода Гаусса и применяется для решения систем уравнений с трех диагональной (ленточной) матрицей. Такая система уравнений записывается в виде:
aixi-1+bixi+cixi+1 = di i = 1, 2, 3, ..., n (2.6)
a1= 0; cn = 0.
Формула обратного хода записываем в следующем виде:
xi = Ui xi+1 + Vi ; i = n, n-1,..,1 (2.7)
Уменьшаем в формуле (2.7) индекс на единицу и подставляем в (2.6):
xi-1 = U i -1xi + Vi-1,
ai (Ui-1xi + Vi-1) + bixi + cixi+1 = di
Приведем подобные и запишем:
(aiUi-1 +bi)xi =-cixi+1 + di -aiVi-1,
xi =-ci /(aiUi-1+ bi)xi+1+ (di - aiVi-1)/(aiUi-1 + bi) (2.8)
сравнивая (2.7) и (2.8), получим:
Ui = -ci / (bi + aiUi-1);
Vi = (di - aiVi-1) / (bi + aiUi-1); i = 2, 3, ..., n (2.9)
Поскольку a1 = 0, то
U1 = -c1 / b1; V1 = d1 / b1. (2.10)
Теперь по формулам (2.9) и (2.10) можно вычислить прогоночные коэффициенты Ui и Vi (i=1,2,3,...,n). Это прямой ход прогонки. Зная прогоночные коэффициенты по формулам (2.7), можно вычислить все xi; i=n,...,3,2,1 (обратный ход прогонки). Поскольку cn = 0, то Un = 0 и xn = Vn. Далее вычисляем xn-1, xn-2, ..., x2, x1.
Пример: Решить систему уравнений методом прогонки:
10x1 + x2 = m+5
-2x1 + 9x2 + x3 = n+9 m -1
0,1x2 +4x3 -x4 = 4 n+0,1 m -5
-x3 +8x4 - x5 = 40 -n - L
x5 = L,
где значения m - номер варианта, n - номер группы, L - номер факультета.
Решение: Даны значения ai; bi; ci; di; m=0, n=0, L=0; i=1, 2, 3, 4, 5. Их записываем в виде таблицы 2.1.
Таблица 2.1
i |
ai |
bi |
ci |
di |
|
1 |
0 |
10 |
1 |
5 |
|
2 |
-2 |
9 |
1 |
-1 |
|
3 |
0,1 |
4 |
-1 |
-5 |
|
4 |
-1 |
8 |
-1 |
40 |
|
5 |
0 |
1 |
0 |
0 |
Прямой ход прогонки. По формулам (2.9) и (2.10) определяем прогоночные коэффициенты Ui и Vi (i=1,2,3,4).
U1=-c1/b1=-1/10=-0,1
V1=d1/b1=5/10=0,5
U2= -c2 /(b2 + a2U1)=-1/(9+2·0,1)= -0,1087
V2 = (d2 - a2V1)/(b2 + a2U1)=(-1+2·0,5)/(9+2·0,1)=0
U3= -c3 /(b3 + a3U2)=1/(4-0,1·0,1087)= 0,25068
V3 = (d3 - a3V2)/(b3 + a3U2)=(-5-0,1·0)/( 4-0,1·0,1087)= -1,25341
U4= -c4 /(b4 + a4U3)= 1/(8-1·0,25068)= 0,1290436
V4 = (d4 - a4V3)/(b4 + a4U3)=(40-1·1,25341)/(8-1·0,25068)= 5
U5= -c5 /(b5 + a5U4)=0
V5 = (d5 - a5V4)/(b5 + a5U4)=(0-0·5)/(1+0·0,1290436)= 0
Обратный ход прогонки. По формулам (2.7) вычисляем все xi; i=4,3,2,1). Поскольку cn = 0, то x5 = V5 = 0.
Далее вычисляем x4, x3, x2, x1.
x 4 = U4 x5 + V4 =0,1290436 · 0+5=5
x 3 = U3 x4 + V3 =0,25068·5-1,25341=0
x2 = U2 x3 + V2 =-0,1087·0+0=0
x1 = U1 x2 + V1 =-0,1·0+0,5=0,5
Вычисляем невязки ri = di - aixi-1 - bixi - cixi+1; i=1, 2, 3, 4, 5.
r1 = d1 - b1x1 - c1x2 = 5 -10·0,5 - 1 · 0=0
r2 = d2 - a2x1 - b2x2 - c2x3 = -1+2·0,5 - 9·0 - 0=0
r3 = d3 - a3x2 - b3x3 - c3x4 = -5-0,1 · 0 -4 · 0 +1 · 5=0
r4 = d4 - a4x3 - b4x4 - c4x5 = 40 +1 · 0 -8 · 5 +1 · 0 =0
r5 = d5 - a5x4 - b5x5 = 0 -0 · 5 -1 · 0 = 0
Алгоритм метода прогонки заключается в следующем:
Ввести ai; bi; ci; di; i=1, 2, 3, ..., n.
Выполнить прямой ход, т.е. вычислить Ui и Vi; i=1, 2, 3, ..., n.
Выполнить обратный ход прогонки, т.е. вычислить xi=Ui · xi+1+Vi;
i=n, n-1,...,1.
Напечатать xi; i=1, 2, 3, ..., n.
Вычислить невязки ri = di - aixi-1 - bixi - cixi+1; i=1, 2, 3, ..., n.
Напечатать ri ; i=1, 2, 3, ..., n.
На рис. 2.1 приведена программа решения методом прогонки.
REM LR-2-2, m=13, n=5
DIM A(5), B(5), C(5), D(5), U(5), V(5), X(6), R(5)
DATA 0, 10, 1, 5
DATA -2, 9, 1, -1
DATA 0.1, 4, -1, -5
DATA -1, 8, -1, 40
DATA 0, 1, 0, 0
FOR I =1 TO 5
READ A(I), B(I), C(I), D(I)
U(I) = -C(I) / (A(I)*U(I-1) + B(I))
V(I) =(D(I)-A(I)*V(I-1)) / (A(I)*U(I-1) + B(I))
NEXT I
X(5) = V(5)
FOR I =4 TO 1 STEP -1
X(I) = U(I)*X(I+1) + V(I)
NEXT I
FOR I =1 TO 5
R(I) = D(I)-A(I)*X(I-1)-B(I) *X(I)-C(I)*X(I+1)
PRINT X ; I; = ; X(I); R; I; R(I)
NEXT I
Рис.2.1. Программа решения методом прогонки.
2.3 Метод простой итерации (метод Якоби)
Суть вычислений итерационными методами состоит в следующем: расчет начинается с некоторого заранее выбранного приближения x(0) (начального приближения). Вычислительный процесс, использующий матрицу А, вектор В, системы (2.1) и x(0) приводит к новому вектору x(1):
i-1 n
xi(1) =(bi - aij xj(0) - aij xj(0)) / aij ;
j=1 j=i+1 (2.11)
i=1, 2, 3, ..., n; j =1, 2, 3, ..., n.
Затем процесс повторяется, только вместо x(0) используется новое значение x(1). На k +1-м шаге итерационного процесса по A,B,X получают:
i-1 n
xi(k+1) =(bi - aij xj(k) - aij xj(k)) / aij ;
j=1 j=i+1 (2.12)
i=1, 2, 3, ..., n; j =1, 2, 3, ..., n.
При выполнении некоторых заранее оговоренных условий процесс сходится при k. Сходимость метода простой итерации обеспечивается при выполн. усл. преобладания диагональных элементов матрицы A, т.е.:
aijaii; i=1, 2, 3, ..., n. (2.13)
ij
Заданная точность достигается при выполнении условия:
maxxi(k+1) - xi(k) (2.14)
1in
Пример: Преобразовать систему уравнений:
7x1 + 4x2 -x3= 7
2x1+6x2+3x3=-2 (2.15)
-x1+ x2 + 4x3=4
к виду, пригодному для построения итерационного процесса методом Якоби и выполнить три итерации.
Решение: Достаточное условие сходимости (2.13) выполняется, поэтому начальное приближение может быть любым.
a12a134+1a117
a21a232+3a226
a31a321+1a334
В i-ом уравнении все члены, кроме xi, переносятся в правую часть:
x1 =(7-4x2+x3)/7
x2 =(-2-2x1-3x3)/6 (2.16)
x3 =(4+x1-x2)/4
Задается начальное приближение x(0)=(x1(0); x2(0); x3(0)), которое подставляется в правую часть. Обычно x1(0)=0, x2(0)=0, x3(0)=0 и получают результаты первой итерации:
x1(1) =(7-4·0+0)/7 =1
x2(1) =(-2-2·0-3·0)/6 =-1/3 = - 0.333
x3(1) =(4+0-0)/4 =1.
Результаты первой итерации x(1)=(x1(1); x2(1); x3(1)) подставляют в правую часть и получают результаты второй итерации:
x1(2) =(7-4· (-0.333)+1)/7 = 4/3= 1.333
x2(2) =(-2-2·1-3·1)/6 = -7/6 = - 1.167
x3(2) =(4+1-(-1/3))/4 = 4/3 = 1.333
Результаты второй итерации x(2)=(x1(2); x2(2); x3(2)) подставляют в правую часть и получают результаты третьей итерации:
x1(3) =(7-4· (-1.167)+1.333)/7 = 1.857
x2(3) =(-2-2·1.333-3·1.333)/6 = - 1.444
x3(3) =(4+1.333-(-1.167))/4 = 1.625
Определяют достигнутую точность из условия:
max xi(3) - xi(2) .
1i3
x1(3) - x1(2) = 1.857-1.333= 0.524
x2(3) - x2(2) = - 1.444+ 1.167= 0.278
x3(3) - x3(2) = 1.625-1.333= 0.292
2.4 Метод Зейделя
Вычисления в этом методе почти такие же, как и в методе Якоби, с той лишь разницей, что в последнем новые значения x(k+1) не используются до новой итерации. В методе Зейделя при нахождении k+1-ой компоненты используются уже найденные компоненты этой же итерации с меньшими номерами, т.е. последовательность итераций задается формулой:
i-1 n
xi(k+1) =(bi - aij·xj(k+1) - aij·xj(k))/aij;
j=1 j=i+1 (2.17)
i=1, 2, 3, ..., n; j =1, 2, 3, ..., n.
Сходимость и точность достигаются условиями (2.13) и (2.14).
Пример: Задать итерационный процесс Зейделя для нахождения решений системы уравнений (2.15).
Решение: Достаточное условие сходимости (2.13) выполняется, поэтому начальное приближение может быть любым.
Используя (2.16) получим:
x1(k+1) =(7-4x2(k) +x3(k))/7
x2(k+1) =(-2-2x1(k+1)-3x3(k))/6
x3(k+1) =(4+x1(k+1) -x2(k+1))/4.
После задания начального приближения x(0)=(x1(0); x2(0); x3(0)), например, x(0)=(0; 0; 0) выражение для первой итерации имеет вид:
x1(1) =(7-4x2(0) +x3(0))/7 =(7-4·0+0)/7 =1
x2(1) =(-2-2x1(1)-3x3(0))/6 =(-2-2·1-3·0)/6 = - 0.667
x3(1) =(4+x1(1)-x2(1))/4 =(4+1-(-2/3))/4 =1.417
Результаты первой итерации x(1)=(x1(1); x2(1); x3(1)) подставляют в правую часть и получают результаты второй итерации:
x1(2) =(7-4· (-0.667)+1.417)/7 = 1.583
x2(2) =(-2-2·1.583-3·1.417)/6 = - 1.569
x3(2) =(4+1.583-(-1.569))/4 = 1.788
Результаты второй итерации x(2)=(x1(2); x2(2); x3(2)) подставляют в правую часть и получают результаты третьей итерации:
x1(3) =(7-4· (-1.1569)+1.788)/7 = 2.152
x2(3) =(-2-2·2.152-3·1.788)/6 = - 1.945
x3(3) =(4+2.152-(-1.945))/4 = 2.024
Точность решения определяют из условия:
Подобные документы
Численные методы решения нелинейных уравнений, систем линейных и нелинейных алгебраических уравнений, дифференциальных уравнений, определенных интегралов. Методы аппроксимации дискретных функций и методы решения задач линейного программирования.
методичка [185,7 K], добавлен 18.12.2014Численные методы решения задач. Решение алгебраических и трансцендентных уравнений. Уточнение корня по методу половинного деления. Решение систем линейных уравнений методом итераций. Методы решения дифференциальных уравнений. Решение транспортной задачи.
курсовая работа [149,7 K], добавлен 16.11.2008Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.
курсовая работа [435,8 K], добавлен 15.06.2013Численные методы решения задач, сводящиеся к арифметическим и некоторым логическим действиям над числами, к действиям, которые выполняет ЭВМ. Решение нелинейных, системы линейных алгебраических, обыкновенных дифференциальных уравнений численными методами.
дипломная работа [1,4 M], добавлен 18.08.2009Метод половинного деления как один из методов решения нелинейных уравнений, его основа на последовательном сужении интервала, содержащего единственный корень уравнения. Алгоритм решения задачи. Описание программы, структура входных и выходных данных.
лабораторная работа [454,1 K], добавлен 09.11.2012Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.
курсовая работа [1,6 M], добавлен 20.01.2010Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.
курсовая работа [539,2 K], добавлен 15.06.2013Численные методы линейной алгебры. Матричный метод. Методы Крамера и Гаусса. Интерации линейных систем. Интерации Якоби и Гаусса - Зейделя. Листинг программы. Численные методы в электронных таблицах Excel и программе MathCAD, Microsoft Visual Basic
курсовая работа [1,2 M], добавлен 01.06.2008Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.
курсовая работа [532,9 K], добавлен 14.01.2014Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.
курсовая работа [1,4 M], добавлен 15.08.2012