
Метод дихотомии.
Самым простейшим из методов уточнения корней является метод половинного деления, или метод дихотомии, предназначенный для нахождения корней уравнений, представленных в видеf(x)=0.
Пусть непрерывная функция f(x) на концах отрезка [a,b] имеет значения разных знаков, т.е.f(a)f(b) 0 (рис. 1), тогда на отрезке имеется хотя бы один корень.
Возьмем середину отрезка с=(a+b)/2. Если f(a)f(c) 0, то корень явно принадлежит отрезку от aдо (a+b)/2 и в противном случае от (a+b)/2 до b.
Поэтому берем подходящий из этих отрезков, вычисляем значение функции в его середине и т.д. до тех пор, пока длина очередного отрезка не окажется меньше заданной предельной абсолютной погрешности (b-a)<.
Так как каждое очередное вычисление середины отрезка c и значения функции f(c) сужает интервал поиска вдвое, то при исходном отрезке [a,b] и предельной погрешности количество вычислений n определяется условием (b-a)/2n<, или n~log2((b-a)/). Например, при исходном единичном интервале и точности порядка 6 знаков (~ 10-6) после десятичной точки достаточно провести 20вычислений (итераций) значений функции.
С точки зрения машинной реализации (рис. 2) этот метод наиболее прост и используется во многих стандартных программных средствах, хотя существуют и другие более эффективные по затратам времени методы.
Решение систем линейных уравнений.
Методы Якоби и Гаусса-Зайделя.
Метод Гаусса подробно (по шагам) выполняется только в учебных целях, когда нужно показать, что Вы это умеете. А чтобы решить реальную СЛАУ, лучше применить в Excel метод обратной матрицы или воспользоваться специальными программами, например, этой
Метод Гаусса
Краткое описание.
-
Решаю систему уравнений: A*X=B, где A - квадратная матрица n-го порядка, X,B - вектора
-
К матрице A справа приписываю вектор B. Получаю расширенную матрицу A
-
В дальнейшем A обозначает расширенную матрицу (n строк, n+1 столбец)
-
Aij - обозначает элемент матрицы, находящийся на i-й строке и j-м столбце
-
Делю 1-ю строку на A11, т е A'1j = A1j/A11 (j = 1..n+1). В результате A'11 = 1. A' обозначает преобразованную строку
-
Преобразую остальные строки по формуле: A'ij = Aij - A'1j*Ai1 (i = 2..n; j = 1..n+1)
-
В результате 1-й столбец в строках 2..n заполнится нулями
-
Отметим, что все эти преобразования не нарушают правильность уравнений
-
Аналогичные действия проводим для обнуления 2-го столбца в строках 3..n, то есть:
-
Делю 2-ю строку на A'22, т е A''2j = A'2j/A'22 (j = 2..n+1). В результате A''22 = 1. A'' обозначает резельтат 2-го преобразования строки
-
Преобразую остальные строки по формуле: A''ij = A'ij - A''2j*A'i2 (i = 3..n; j = 2..n+1)
-
В результате 2-й столбец в строках 3..n заполнится нулями
-
Аналогичные действия проводим далее
-
В результате левые n столбцов матрицы A превращаютс в верхнюю треугольную матрицу, т е ниже главной диагонали находятся только нули (а на главной диагонали - единицы) - см Рис 1. На этом рисунке вектор B - слева, S - номер шага
-
Затем выполняется "обратный ход", начиная с нижней строки, из которой можно вычислить Xn = Bn/Ann, например: Х4 = 9,55741/68,6388 = 0,13924 (рис. 1)
-
Затем можно вычислить X3 = (0,9065 - 2,40919*0,13924) = 0,57059
-
Затем из второй строки: X2 + 2,83562*X3 + 8,17808*X4 = 2,47945 вычисляю X2, и т д