Задача 2 

Дан тонкий однородный стержень 0<x<l, боковая поверхность которого теплоизолирована.  

Найти распределение температуры u(x,t) в стержне, если концы стержня теплоизолированы, а 

Typesetting:-mrow(Typesetting:-mfrac(Typesetting:-mrow(Typesetting:-mi( 

Решить однородное уравнениеTypesetting:-mrow(Typesetting:-mo( 

с граничным условием второго типа и начальным условием Typesetting:-mrow(Typesetting:-mi(Typesetting:-mrow(Typesetting:-mo(  Typesetting:-mrow(Typesetting:-mfrac(Typesetting:-mrow(Typesetting:-mo( 

Решение 

Решать текущий пример будем тем же методом, что и первую задачу. 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Задаем начальные и граничные условия: 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Решим уравнение при помощи функции pdsolve 

Typesetting:-mrow(Typesetting:-mi( 

PDESolStruc(u(x, t) = `*`(T(t), `*`(X(x))), [{diff(T(t), t) = `*`(`^`(a, 2), `*`(T(t), `*`(_c[1]))), diff(diff(X(x), x), x) = `*`(_c[1], `*`(X(x)))}]) (1.2.1)
 

Выделим второе уравнение 

Typesetting:-mrow(Typesetting:-mi( 

[{diff(T(t), t) = `*`(`^`(a, 2), `*`(T(t), `*`(_c[1]))), diff(diff(X(x), x), x) = `*`(_c[1], `*`(X(x)))}] (1.2.2)
 

Typesetting:-mrow(Typesetting:-mi( 

diff(diff(X(x), x), x) = `*`(_c[1], `*`(X(x))) (1.2.3)
 

Сделаем замену переменной 

Typesetting:-mrow(Typesetting:-mi( 

diff(diff(X(x), x), x) = `+`(`-`(`*`(lambda, `*`(X(x))))) (1.2.4)
 

Введем ораничение на Typesetting:-mi(  и решим уравнение s1 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

X(x) = `+`(`*`(_C1, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(x))))), `*`(_C2, `*`(cos(`*`(`^`(lambda, `/`(1, 2)), `*`(x)))))) (1.2.5)
 

преобразуем наше уравнение в функцию 

Typesetting:-mrow(Typesetting:-mi( 

proc (x) options operator, arrow; `+`(`*`(_C1, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(x))))), `*`(_C2, `*`(cos(`*`(`^`(lambda, `/`(1, 2)), `*`(x)))))) end proc (1.2.6)
 

Найдем производную 

Typesetting:-mrow(Typesetting:-mi( 

proc (x) options operator, arrow; `+`(`*`(_C1, `*`(cos(`*`(`^`(lambda, `/`(1, 2)), `*`(x))), `*`(`^`(lambda, `/`(1, 2))))), `-`(`*`(_C2, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(x))), `*`(`^`(lambda, `... (1.2.7)
 

Найдем постоянные Typesetting:-mi( и Typesetting:-mrow(Typesetting:-mi( из начальных условий: 

Typesetting:-mrow(Typesetting:-mi( 

`*`(_C1, `*`(`^`(lambda, `/`(1, 2)))) = 0 (1.2.8)
 

Typesetting:-mrow(Typesetting:-mi( 

`+`(`*`(_C1, `*`(cos(`*`(`^`(lambda, `/`(1, 2)), `*`(l))), `*`(`^`(lambda, `/`(1, 2))))), `-`(`*`(_C2, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(l))), `*`(`^`(lambda, `/`(1, 2))))))) = 0 (1.2.9)
 

Составим систему из полученных уравнений 

Typesetting:-mrow(Typesetting:-mi( 

{`*`(_C1, `*`(`^`(lambda, `/`(1, 2)))) = 0, `+`(`*`(_C1, `*`(cos(`*`(`^`(lambda, `/`(1, 2)), `*`(l))), `*`(`^`(lambda, `/`(1, 2))))), `-`(`*`(_C2, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(l))), `*`(`^`... (1.2.10)
 

Запишем матрицу коэффициентов системы при помощи команды linarg[genmatrix] 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mtable(Typesetting:-mtr(Typesetting:-mtd(Typesetting:-mrow(Typesetting:-msqrt(Typesetting:-mi( (1.2.11)
 

Вычислим определитель при помощи Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

`+`(`-`(`*`(lambda, `*`(sin(`*`(`^`(lambda, `/`(1, 2)), `*`(l))))))) (1.2.12)
 

Для получения всех решений уравнений, содержащих периодические функции, следует присвоить переменной _EnvAllSolutions  значение true. В противном случае, по умолчанию функция solve  выдаст только одно решение. При помощи команды solve решим полученное выражение относительноTypesetting:-mrow(Typesetting:-mo(. 

Typesetting:-mrow(Typesetting:-mi( 

0, `/`(`*`(`^`(Pi, 2), `*`(`^`(_Z1, 2))), `*`(`^`(l, 2))) (1.2.13)
 

Typesetting:-mrow(Typesetting:-mi( 

proc (k) options operator, arrow; `/`(`*`(`^`(Pi, 2), `*`(`^`(k, 2))), `*`(`^`(l, 2))) end proc (1.2.14)
 

Ограничим значение переменной k и заменим переменную λ в уравнении eq1 на функцию ev(k): 

Typesetting:-mrow(Typesetting:-mi( 

diff(diff(X(x), x), x) = `+`(`-`(`/`(`*`(`^`(Pi, 2), `*`(`^`(k, 2), `*`(X(x)))), `*`(`^`(l, 2))))) (1.2.15)
 

 

Найдем производную и решим уравнение ur при помощи команды dsolve: 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

X(x) = `*`(_C2, `*`(cos(`/`(`*`(Pi, `*`(k, `*`(x))), `*`(l))))) (1.2.16)
 

Typesetting:-mrow(Typesetting:-mi( 

proc (k, x) options operator, arrow; `*`(_C2, `*`(cos(`/`(`*`(Pi, `*`(k, `*`(x))), `*`(l))))) end proc (1.2.17)
 

Typesetting:-mrow(Typesetting:-mi( 

`/`(`*`(`^`(Pi, 2), `*`(`^`(k, 2))), `*`(`^`(l, 2))) (1.2.18)
 

Typesetting:-mrow(Typesetting:-mi( 

`*`(_C2, `*`(cos(`/`(`*`(Pi, `*`(k, `*`(x))), `*`(l))))) (1.2.19)
 

Typesetting:-mrow(Typesetting:-mi( 

Возьмем второе уравнение из уравнения res1: 

Typesetting:-mrow(Typesetting:-mi( 

diff(T(t), t) = `*`(`^`(a, 2), `*`(T(t), `*`(_c[1]))) (1.2.20)
 

Заменим Typesetting:-msub(Typesetting:-mi( на -ev(k) в уравнении eq2 

Typesetting:-mrow(Typesetting:-mi( 

diff(T(t), t) = `/`(`*`(`^`(a, 2), `*`(T(t), `*`(`^`(Pi, 2), `*`(`^`(k, 2))))), `*`(`^`(l, 2))) (1.2.21)
 

Решим уравнение eq2 при помощи команды dsolve: 

Typesetting:-mrow(Typesetting:-mi( 

T(t) = `*`(_C1, `*`(exp(`/`(`*`(`^`(a, 2), `*`(`^`(Pi, 2), `*`(`^`(k, 2), `*`(t)))), `*`(`^`(l, 2)))))) (1.2.22)
 

Общее решение уравнения представляет из себя линейную комбинацию всех частных решений. 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Sum(`*`(C[k], `*`(exp(`+`(`-`(`/`(`*`(`^`(a, 2), `*`(`^`(Pi, 2), `*`(`^`(k, 2), `*`(t)))), `*`(`^`(l, 2)))))), `*`(cos(`/`(`*`(Pi, `*`(k, `*`(x))), `*`(l)))))), k = 1 .. infinity) (1.2.23)
 

Из начального условия найдем неизвестные коэффициенты Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi( 

Получили разложение функции Typesetting:-mrow(Typesetting:-mi( в ряд Фурье по косинусам. Вычислим коэффициенты разложения: 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

`+`(`/`(`*`(2, `*`(sin(`+`(`*`(`/`(1, 2), `*`(Pi, `*`(k))))), `*`(u0))), `*`(Pi, `*`(k)))) (1.2.24)
 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Sum(`*`(C[k], `*`(exp(`+`(`-`(`/`(`*`(`^`(Pi, 2), `*`(`^`(k, 2), `*`(`^`(a, 2), `*`(t)))), `*`(`^`(l, 2)))))), `*`(cos(`/`(`*`(Pi, `*`(k, `*`(x))), `*`(l)))))), k = 1 .. infinity) (1.2.25)
 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Построим график функции u(x,t) 

Typesetting:-mrow(Typesetting:-mi( 

Построим график функции u(x,t) в начальный момент времени 

Typesetting:-mrow(Typesetting:-mi( 

Plot_2d
 

Построим график по начальному условию: 

Typesetting:-mrow(Typesetting:-mi( 

Plot_2d
 

В случае с функцией u(x,t) мы можем наблюдать явление Гиббса. Если функция f(x) - кусочно-гладкая на отрезке [-Typesetting:-mi(, Typesetting:-mi(] , то ее тригонометрический ряд Фурье сходится в каждой точке этого отрезка. При этом, если S(x)= Typesetting:-mrow(Typesetting:-mfrac(Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(  - сумма ряда Фурье, то для любого  xϵ[-Typesetting:-mi(, Typesetting:-mi(] S(x)=Typesetting:-mrow(Typesetting:-mi(. То есть, если f(x) непрерывна в точке Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi( , то S(Typesetting:-msub(Typesetting:-mi() =f(Typesetting:-msub(Typesetting:-mi(). Если в точке Typesetting:-msub(Typesetting:-mi( у  f(x)   разрыв первого рода, то ряд Фурье сходится к среднеарифметическому левого и правого пределов функции в точке Typesetting:-msub(Typesetting:-mi( . В окрестности точек непрерывности функции f(x) разность между значением функции в точке и значением частичной суммы ряда в этой точке стремится к нулю при nTypesetting:-mo(Typesetting:-mi( , что полностью соответствует теории, поскольку в этом случае  Typesetting:-mrow(Typesetting:-munder(Typesetting:-mrow(Typesetting:-mo( . В окрестности точек разрыва  f(x) частичные суммы ряда Фурье ведут себя иначе. Эта особенность поведения частичных сумм Фурье в окрестности точек разрыва называется явлением Гиббса. Оно состоит в том, что для некоторых функций в точке ее скачка Typesetting:-msub(Typesetting:-mi( существуют такие значения a, что Typesetting:-mrow(Typesetting:-munder(Typesetting:-mrow(Typesetting:-mo(Это не противоречит теории, поскольку у Гиббса рассмотрен предел Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi( , а в теории v Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(.  

Построим график функции u(x,t) в разный момент времени. 

Typesetting:-mrow(Typesetting:-mi( 

Plot_2d
 

Построим анимированный график: 

Typesetting:-mrow(Typesetting:-mi( 

Typesetting:-mrow(Typesetting:-mi( 

Plot_2d