Достаточно популярным методом решения уравнений является метод касательных, или метод Ньютона. В этом случае уравнение вида f(x) = 0 решается следующим образом. Сначала выбирается нулевое приближение (точка x0). В этой точке строится касательная к графику y = f(x). Точка пересечения этой касательной с осью абсцисс является следующим приближением для корня (точка x1). В этой точке снова строится касательная и т.д. Последовательность точек x0, x1, x2… должна привести к истинному значению корня. Условием сходимости является .
Так как уравнение прямой, проходящей через точку x0, f(x0) (а это и есть касательная), записывается в виде
а в качестве следующего приближения x1 для корня исходного уравнения принимается точка пересечения этой прямой с осью абсцисс, то следует положить в этой точке y = 0:
,
откуда немедленно следует уравнение для нахождения следующего приближения через предыдущее:
Рис. 3
На Рис. 3 показана реализация метода Ньютона средствами Excel. В ячейку B3 вводится начальное приближение (x0 = -3), а затем остальных ячейках столбца вычисляются все промежуточные величины вплоть до вычисления x1. Для выполнения второго шага в ячейку C3 вводится значение из ячейки B10 и процесс вычислений повторяется в столбце C. Затем, выделив ячейки C2:C10 можно, потянув за маркер в правом нижнем углу выделенной области, распространить его на столбцы D:F. В итоге в ячейке F6 получено значение 0, т.е. значение в ячейке F3 есть корень уравнения.
Этот же результат можно получить, используя циклические вычисления. Тогда после заполнения первого столбца и получения первого значения x1 следует ввести в ячейку H3 формулу =H10. При этом вычислительный процесс будет зациклен и для того, чтобы он выполнялся, в меню Сервис | Параметры на вкладке Вычисления необходимо установить флажок Итерации и указать предельное число шагов итерационного процесса и относительную погрешность (установленное по умолчанию число 0,001 явно недостаточно во многих случаях), по достижении которой вычислительный процесс остановится.
Как известно, такие физические процессы, как перенос тепла, перенос массы в процессе диффузии, подчиняются закону Фика
,
где l - коэффициент теплопроводности (диффузии), а T – температура (концентрация), а – поток соответствующей величины. Из математики известно, что дивергенция потока равна объемной плотности источника Q этой величины, т.е.
или, для двухмерного случая, когда исследуется распределение температуры в одной плоскости, это уравнение может быть записано в виде:
(4)
Решение этого уравнения аналитически возможно только для областей простой формы: прямоугольник, круг, кольцо. В остальных ситуациях точное решение этого уравнения невозможно, т.е. невозможно и определить распределение температуры (или концентрации вещества) в сложных случаях. Тогда приходится использовать приближенные методы решения таких уравнений.
Приближенное решение уравнения (4) в области сложной формы состоит из нескольких этапов: 1) построение сетки; 2) построение разностной схемы; 3) решение системы алгебраических уравнений. Рассмотрим последовательно каждый из этапов и их реализацию с помощью пакета Excel.
Построение сетки. Пусть область имеет форму, показанную на рис. 4. При такой форме точное аналитическое решение уравнения (4), например, методом разделения переменных, невозможно. Поэтому будем искать приближенное решение этого уравнения в отдельных точках. Нанесем на область равномерную сетку, состоящую из квадратов со стороной h. Теперь, вместо того, чтобы искать непрерывное решение уравнения (4), определенное в каждой точке области, будем искать приближенное решение, определенное только в узловых точках сетки, нанесенной на область, т.е. в углах квадратов.
Построение разностной схемы.Для построения разностной схемы рассмотрим произвольный внутренний узел сетки Ц (центральный) (рис.5). С ним соседствуют четыре узла: В (верхний), Н (нижний), Л (левый) и П (правый). Напомним, расстояние между узлами в сетке равно h. Тогда, используя выражение (2) для приближенной записи вторых производных в уравнении (4), можно приближенно записать:
,
откуда легко получить выражение, связывающее значение температуры в центральной точке с ее значениями в соседних точках:
(5)
Выражение (5) позволяет нам, зная значения температуры в соседних точках, вычислить ее значение в центральной точке. Такая схема, в которой производные заменяются конечными разностями, а для поиска значений в точке сетки используются только значения в ближайших соседних точках, называется цетрально-разностной схемой, а сам метод – методом конечных разностей.
Нужно понимать, что уравнение, аналогичное (5), мы получаем ДЛЯ КАЖДОЙ точки сетки, которые, таким образом, оказываются связанными друг с другом. То есть мы имеем систему алгебраических уравнений, в которой число уравнений равно числу узлов сетки. Решать такую систему уравнений можно различными методами.
Решение системы алгебраических уравнений. Метод итераций. Пусть в граничных узлах температура задана и равна 20, а мощность теплового источника равна 100. Размеры нашей области заданы и равны по вертикали 6, а по горизонтали 8, так что сторона квадрата сетки (шаг) h = 1. Тогда выражение (5) для вычисления температуры во внутренних точках принимает вид
(6)
Поставим в соответствие каждому УЗЛУ ячейку на листе Excel. В ячейках, соответствующих граничным точкам, введем число 20 (на рис. 6 они выделены серым цветом). В остальных ячейках запишем формулу (6). Например в ячейке F2 она будет выглядеть следующим образом: =(F1 + F3 + E2 + G2)/4 + 100*(1^2)/4. Записав эту формулу в ячейку F2, можно ее скопировать и вставить в остальные ячейки области, соответствующие внутренним узлам. При этом Excel будет сообщать о невозможности проведения вычислений из-за зацикливания результатов:
Рис. 7
Нажмите «Отмена» и перейдите в окно Сервис|Параметры|Вычисления, где установите флажок в разделе «Итерации», указав при этом в качестве относительной погрешности величину 0,00001, а в качестве предельного количества итераций 10000:
Рис. 8
Такие значения обеспечат нам малую СЧЁТНУЮ погрешность и гарантируют, что итерационный процесс дойдет до заданной погрешности.
Однако эти значения НЕ ОБЕСПЕЧИВАЮТ малую погрешность самого метода, так как последняя зависит от погрешности при замене вторых производных конечными разностями. Очевидно, что эта погрешность тем меньше, чем меньше шаг сетки, т.е. размер квадрата, на котором строится наша разностная схема. Это означает, что точно ВЫЧИСЛЕННОЕ значение температуры в узлах сетки, представленное на рис. 6, на самом деле может оказаться совсем не соответствующим действительности. Существует единственный метод проверить найденное решение: найти его на более мелкой сетке и сравнить с предыдущим. Если эти решения отличаются мало, то можно считать, что найденное распределение температуры соответствует действительности.
Уменьшим шаг вдвое. Вместо 1 он станет равным ½. Число узлов у нас соответственно изменится. По вертикали вместо 7 узлов (было 6 шагов, т.е. 7 узлов) станет 13 (12 квадратов, т.е. 13 узлов), а по горизонтали вместо 9 станет 17. При этом не следует забывать, что величина шага уменьшилась вдвое и теперь в формуле (6) вместо 12 нужно в правой части подставлять (1/2)2. В качестве контрольной точки, в которой будем сравнивать найденные решения, возьмем точку с максимальной температурой, отмеченную на рис. 6 желтым цветом. Результат вычислений показан на рис. 9:
Рис. 9
Видно, что уменьшение шага привело к существенному изменению значения температуры в контрольной точки: на 4%. Для повышения точности найденного решения следует ещё уменьшить шаг сетки. Для h = ¼ получим в контрольной точке 199,9, а для h = 1/8 соответствующее значение равно 200,6. Можно построить график зависимости найденной величины от величины шага:
Рис. 10
Из рисунка можно сделать вывод, что дальнейшее уменьшение шага не приведет к существенному изменению температуры в контрольной точке и точность найденного решения можно считать удовлетворительной.
Используя возможности пакета Excel, можно построить поверхность температуры, наглядно представляющую ее распределение в исследуемой области: