Дульнев Г.Н., Парфенов В.Г., Сигалов А.В. Применение ЭВМ для решения задач теплообмена (1185899), страница 12
Текст из файла (страница 12)
Решение б(х, т) задачи (2.1) †(2.3), исходя из принципа супер- позиции, представим в виде суммы решения б, (х, т) однородного уравнения при д,, =- О с начальным условием (2.3) и решения б, (х, т) неоднородного уравнения (2.1) с нулевым начальным условием. Решение б, (х, т), описывающее охлаждение неограниченной пластины без источников теплоты, получено в учебнике 19) и имеет вид ап' т где р„— собственные числа краевой задачи, являющиеся положительными корнями трансцендентного уравнения с1д р = р/В1, (2.5) В! = Ый — критерий Био; 11)„11 — нормы обственных функций )д (х) =- соз (рцх/1): Второе слагаемое в решении — 6, (х, т), описывающее нагрев пластины внутренним источником (/„(х), получим методом конечных интегральных преобразований 131.
Применим к уравнению (2.1) интегральное преобразование 0„(т) =-) 0(х, т)/„(к) ох. (2.7) е Тогда для изображения 0„(т) получим обыкновенное дифференциальное уравнение — "+ — 0„(т) =— ае„ , аий н „ ат ' /р " р (2.8) с начальным условием 0„(0) =0; здесь Ф'„— изображение функции (1, (х): Ф'„= ) (/,(х)/„(х)(1 . о (2.9) (2.10) Решение задачи (2.8), (2.9) записывается в виде 0„(т) = —" 1 — ехр (2.1 1) Переходя к оригиналу д, (х, т) по формуле обращения, получим 0,(х, т) = ~~У' 0„(т)/„(х)/Ц/„Ц' = л= ! (р„— *)~! — р( — ")1.
(2.(2! Окончательное выражение для решения задачи (2.1) — (2.3) имеет вид б(х, т)= 'У ) О"Р(п"' ехр( — рйго)+ Ирр =! + — "11 — ехр ( — рй Ро))) " сов (р„х//), (2.13) нра !р 2 (В! Р+ !!'„') '"Ч~й ) !(ВР+ИР + В!) здесь Ро = ат//! — число Фурье. Таким образом, в рассмотренном примере для проведения расчетов по точному решению (2.13) необходимо, во-первых, найти У значений собственных чисел р„из трансцендентного уравнения (2.5) (л/ — число учитываемых членов ряда); во-вторых, вычислить ин- тегралы (2.10) для изображения [>/„, которые для некоторых >/, (х) могут не выражаться с помощью элементарных функций, и, наконец, для заданных пространственных точек х;, / = 1, ..., / в заданные моиенты времени тн / = 1, ..., / провести суммирование членов ряда.
Аналогичные с позиций вычислительной математики задачи возникают для многих точных решений задач теории теплопроводности и конвективного теплообмена. Поэтому далее рассмотрим методы решения нелинейных уравнений, методы численного интегрирования, а также приведем некоторые рекомендации по программной реализации точных аналитических решений. Е 2.2. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Нелинейные уравнения, содержащие тригонометрические, экс. поненциальные, показательные и другие функции, называются аранецендентными. Собственные числа краевых задач определяются путем решения трансцендентных уравнений /(р) =-О, (2.14) где /(р) содержит тригонометрические или некоторые специальные функции, например функции Бесселя, полиномы Лежандра и т.
д. Для рассматриваемого примера / (1>) = Р/В1 — с[я р = О, (2. 15) я уравнение (2.15) имеет бесчисленное множество корней )>„)>„..., которые графически определяются как точки пересечения прямой у = Р/В[ с графиками периодической функции с1е)> (рис.
2.1). Видно, что эти корни расположены в интервалах (О, и/2), (н, Зи/2) и т. д., т. е. корень [>, его,и' лежит в интервале [(и — 1)и, (2и— — 1)и/2)[. В общем случае нелинейной функции /(р) уравнение (2.14) может иметь любое число корней, поэтому во всех численных методах предполагается, что можно найти интервал [а, Ь[, содержа>ций только один искомый корень.
Для поиска этого интервала в случае, когда функция / (1>) непрерывна, последова- Ряс. 2.1 тельно вычисляются значения функции в точках, расположенных через равные интервалы на оси [>. Это делается до тех пор, пока не будут найдены два последовательных значения /(ры>) и /(р<ь+»), имеющие противоположные знаки. Если в точках РН> и ры+'> непрерывная функция / ()>) имеет разные знаки, то в интервале [1>ь», 1>и+»[ лежит корень уравнения / ()>) =О. В нашем случае такой способ не проходит, так как с1пц имеет точки разрыва, но из графических соображений мы и так смогли 53 Г(с! Г(а) установить интервалы, в которых следует искать корни.
Дальнейшая задача состоит в сужении интервала, в котором лежит корень на. столько, чтобы его ширина не превышала требуемую погрешность определения корня. Нелинейные уравнения решаются с помощью итерационных методов, т. е. процедура решения заключается в многократном применении некоторого алгоритма. Полученное решение всегда является приближенным, хотя для сходящегося алгоритма может быть настолько близко к точному, насколько позволяет используемая в ЭВМ система чисел с плавающей точкой. Рассмотрим наиболее употребительные итера- Г(Ь) ционные методы.
Метод половинного деления. Этот метод наиболее прост и позволяет на,м. дежно найти корень в ситуации, когда о функции ((Р) известно только то, что она непрерывна и меняет знак на интервале [а, Ы. Он состоит из следующих шагов: 1) вычисляется среднее значение с = Рис. 2.2 = (а + Ь)(2; 2) находится значение функции ((с) в средней точке интервала; 3) если знак ((с) совпадает со знаком ) (а), то левая граница интервала а заменяется на с; если совпадают знаки ((с) и ( (Ь), то правая граница Ь заменяется на с, и в результате интервал сужается вдвое; 4) если ширина вновь полученного интервала меньше заданной погрешности е, то корень считается найденным, в противном случае делается переход к шагу 1. Описанную процедуру иллюстрирует рис. 2.2.
Прекращать вычисления можно не только по разности (Ь вЂ” а), но и по абсолютному значению 7 (с). Но обычно этот способ менее надежен. Например, в нашем случае (см. рис. 2.1) при корнях, близких к (л — ! )л, величина ( (р) может быть достаточно большой даже при узких интервалах !а, Ь!. Хотя метод половинного деления может потребовать большее число итераций по сравнению с другими методами, он всегда гарантирует получение искомого решения. Поэтому если вычисление одного значения )(и) в программе происходит за небольшое время, то можно смело использовать этот метод. После проведения й итераций ширина первоначального интервала, в котором находится корень, убывает в 24 раз.
Так, для нашего интервала шириной л(2 ж 1,57 после десяти итераций погрешность вычисления корня будет около 0,0015. Ниже приводится подпрограмма (см. рис. 2.12) для вычисления корней уравнения (2.!5) по алгоритму половинного деления. Входными данными являются число корней Ь(, погрешность е и число В1, а результатом — массив корней ()4,)„~ и В подпрограмме учтено, что каждый корень р, лежит в интервале 1(п — 1)п, (2п — 1)п/2!. 54 Кроме того, поскольку функция 1(р) на левой границе интервалов всегда отрицательна, для построения нового интервала достаточно проверить знак ) (с): если ) (с) ( О, то с становится новой левой границей, если 1(с) ) О, то новой правой. Обратим внимание, что погрешность е следует задавать так, чтобы не слишком приблизиться к (и — 1)и при малых числах В1 и не вызвать переполнения порядка при вычислении с1др.
Логическая структура программы подробно пояснена в Г(и) комментариях к тексту. Если функция 1(р) достаточно гладкая, то часто есть возможность значительно сократить количество вычислений функции по сравнению с методом половинного деления. Известны различные итерационные методы, из которых мы рассмотрим только метод Ньютона, метод секущих и метод' иростой итерации. Метод Ньютона. В $ 1.2 метод Ньютона был рассмотрен применительно к системе двух уравнений специального вида. Он может быть использован и при решении трансцендентных уравнений.
В этом случае вега основе лежит разложение функции )'(р) в ряд Тейлора в окрестности некоторого приближения к корню р<ю: )(р)=1(Фю)+Р(Фю)(р — Фю)+ ". Предполагается, что в этой окрестности функция г (р) хорошо описывается линейным членом разложения и следующее приближение к корню ры+и находится из условия 1(р«- 1) =1(р<ы)+)ч (р< >) (ри + > р<ю) =6, отсюда ры+" =Фю — у(ФюИ'(Ф"').