- •Часть 1
- •Содержание
- •Введение
- •Лабораторная работа № 1 "Теория погрешностей" Элементы теории
- •Пример выполнения работы
- •Варианты
- •Лабораторная работа № 2 "Вычисление норм векторов, матриц и функций" Элементы теории
- •Порядок выполнения работы
- •Варианты
- •Лабораторная работа № 3 "Метод Гаусса решения систем линейных алгебраических уравнений" Элементы теории.
- •Порядок выполнения работы.
- •Типовой отчет.
- •Варианты.
- •Порядок выполнения работы.
- •Типовой отчет.
- •Варианты.
- •Вид расчетного листа ms Exsel.
- •Лабораторная работа № 5
- •Элементы теории.
- •Порядок выполнения лабораторной работы.
- •Типовой отчет.
- •Варианты.
- •Требуется решить уравнение, представленное в виде:
- •Последовательность решения задачи.
- •Типовой отчет
- •Варианты.
- •Систему 2-х уравнений с двумя неизвестными
- •Порядок выполнения лабораторной работы.
- •Типовой отчет.
- •Варианты.
- •Вид рабочего листа ms Exsel
- •Расчет нормы матрицы Якоби системы вспомогательных функций.
- •Заключение
- •Литература
- •Часть 1
Последовательность решения задачи.
Пример. Найти корень уравнения x + ln x = 0 методом итераций с точностью = 0,01 и = 0,001 для двух отрезков локализации корня: с параметром q < 0,5 и q > 0,5. Для каждого из отрезков провести расчет для 3-х начальных приближений: границ и середины отрезка локализации корня. Для каждого расчета определить приближенное значение корня x* уравнения, число итераций k до достижения заданной точности, фактическое отклонение от точного решения .
Вид листа MS Exsel для решения задачи представлен на рисунке.
1. Область определения: x > 0.
2. Находится отрезок области определения, содержащий корень уравнения. В качестве левой границы примем значение x = 0,1, которое вносим в ячейку А4. В ячейку B4 вносим формулу: "=A4+LN(A4)", позволяющую вычислить значение функции f(x) = x + ln x по заданному в ячейке B4 аргументу. Значения функции f(x) вычисляются с шагом x = 0,5 до тех пор, пока не будет найден отрезок, на концах которого функция f(x) принимает значения разных знаков. Для реализации этой процедуры можно использовать копирование формулы из ячейки В4 в ячейку В5. В рассматриваемом примере искомый отрезок x [0,1; 0,6] области определения, содержащий корень функции f(x), найден за один шаг x = 0,5 аргумента. Если требуется найти отрезок локализации корня меньшей длины, то может потребоваться несколько итераций до тех пор, пока на границах отрезка значение функции не примет значения разных знаков. В частности, если необходимо найти отрезок локализации длиной x = 0,2, то потребуется три итерации на последовательных отрезках [0,1; 0,3], [0,3; 0,5], [0,5; 0,7]. Для последнего отрезка получены значения функции на его концах, равные f(0,5) = -0,19315 и f(0,7) = 0,343325.
3. Вычисляется производная функции f(x): . Производная и является убывающей функцией. Поэтому минимум модуля производной достигается на правой границе отрезка локализации корня, а максимум – на левой границе. В ячейке D6 вычисляется минимальное значение модуля производной m, соответствующее x = 0,6, по формуле "=ABS(1+1/A5)". В ячейке D7 вычисляется максимальное значение модуля производной M, соответствующее x = 0,1, по формуле "=ABS(1+1/A4)".
4. По формуле определяется коэффициент уменьшения погрешности за одну итерацию. Для этого в ячейку В8 вводится формула "=1-D6/D7". Значение q = 0,7576 < 1 является достаточным условием сходимости итерационного алгоритма.
5. По формуле определяется корректирующий множитель. Для этого в ячейку В9 вводится формула "=-1/D7".
6. Итерационный алгоритм реализуется в соответствии с формулой:
xk+1 = g(xk), где g(xk) = xk + f(xk), k = 0, 1, 2, …
Так как q > 0,5, то оценка точности на итерации k + 1 осуществляется по формуле: dk+1 = - xk+1 10 xk - xk+1.
Оформляется строка заголовков для реализации итерационной процедуры, используя следующие обозначения: А10 = "№" (номер итерации), В10 = "х" (текущее приближение корня), С10 = "f(x)" (значение исследуемой функции), D10 = "g(x)" (значение вспомогательной функции), Е10 = "dx" (оценка точности на текущей итерации).
Программируется первая итерация: ячейка A11 = "1" (номер 1-ой итерации), B11 = "0.35" (начальное приближение корня – любое число из выделенного отрезка x [0,1; 0,6]), С11 = "=B11+LN(B11)" (значение функции f(x)), D11 = "=B11+$B$9*C11" (значение функции g(x)), ячейка Е11 = "=10*ABS(B11-D11)" (оценка точности 1-ой итерации). Используется безусловная ссылка на ячейку В9, содержащая значение неизменяемого при протяжке формул параметра .
Программируется вторая итерация: ячейка А12 = "2" (номер 2-ой итерации), B12 = "=D11" (результат 1-ой итерации x1 = g(x0 )), в диапазон C12:Е12 копируются (протягиваются) формулы из диапазона C11:Е11.
Для реализации остальных итераций в столбцы В:Е ниже строки 12 протягиваем формулы из диапазона В12:Е12, номера итераций можно получить протяжкой диапазона А11:А12 вниз по столбцу А. В качестве решения принимается значение в столбце B из строки, в которой оценка точности текущей итерации (столбец Е) стала меньше заданной точности . Точное решение можно определить, протягивая формулы вниз до тех пор, пока значение функции f(x) не станет равным 0. В рассматриваемом примере корень уравнения равен = 0,567143.
Для расчета фактического отклонения решения от точного значения в ячейку F9 внесем найденную величину = 0,567143. Записываем заголовок столбца F10 = "Фактическое отклонение". Вносим формулу расчета отклонения: F11 = "=ABS(D11-$F$9)" ( - xk). Следующие ячейки столбца F заполняются протяжкой формулы из ячейки F11. Используется безусловная ссылка на ячейку F9, содержащая значение неизменяемого при протяжке формул точного значения корня .
Изменяя начальное приближение в ячейке В11 можно определять приближенное значение корня (столбец D), фактическое отклонение от точного решения (столбец F), число реализованных итераций (столбец А). В рассматриваемом расчете приближенное значение корня с точностью = 0,01 равно x* 0,564775, достигается за 15 итераций, фактическое отклонение - xk=0,002368. Приближенное значение корня с точностью = 0,001 равно x* 0,56691, достигается за 23 итераций, фактическое отклонение - xk=0,000234.
Если , то вспомогательная функция имеет вид g(xk) = xk - f(xk). При программировании рабочего листа для итерационной процедуры надо изменить формулу в ячейке D11 = "=B11-$B$9*C11". Остальные ячейки остаются без изменения по сравнению со случаем .