Компьютерный практикум по методам математической физики с использованием системы Mathematica. Уравнения в частных производных и интегральные уравнения. Дорофеев Д.Л - 10 стр.

UptoLike

Решим это уравнение, используя функцию DSolve:
In : sol = DSolve
y
′′
[x] + λ
2
y[x] == 0, y[x], x
f[x_] = y[x]/.sol[[1]];
Out :{{y[x] C[1]Cos[λx] + C[2]Sin[λx]}}
Посмотрим, что дает первое граничное условие. Для этого исполь-
зуем функцию Reduce:
In : Reduce[f[0] == 0]
Out : C[1] == 0
Посмотрим теперь, что дает второе граничное условие:
In : second_cond = Reduce[f
[L] + hf[L] == 0 &&λ 6= 0 && C[2] 6= 0]
Out : (λC[2]Sin[] 6= 0 && h == λCot[])
где && логическое И. Результат, возвращенный Reduce, имеет струк-
туру списка. Очев идно, что для того чтобы решение уравнения было
нетривиальным, необходимо использовать второе условие:
In : second_cond = Reduce[f
[L] + hf[L] == 0, C[2]][[1]][[2]]
Out : h = λ Cot[]
Подставим в это уравнение конкретные значения параметров h = 1
и L = 1:
In : second_cond = second_cond/.{h 1, L 1}
Out : 1 == λ Cot[λ]
Прежде чем решать это уравнение, построим графики функций,
входящих в обе его части (с м . рис. 1):
In : Plot[{1, xCot[x]}, {x, 0, 12}, PlotRange {{0, 12}, {−12, 12}}]
Точки пересечения функций y = 1 и y = x cot(x) представляют
собой решения уравнения на со б ственные значения. На графике видно,
что в интервале x между двумя асимптотами вс егда содержится только
одно решение.
Для решения уравнения на собственные числа воспользуемся функ-
цией FindRoot. Функция FindRoot используется для решения а лгеб-
раических уравнений как полиномиальных, так и трансцендентных.
При реш ении уравнения FindRoot требует задания начальной точки, с
10
    Решим это уравнение, используя функцию DSolve:

        In : sol = DSolve y′′[x] + λ2 y[x] == 0, y[x], x
                                                        

             f[x_] = y[x]/.sol[[1]];
       Out :{{y[x] → C[1]Cos[λx] + C[2]Sin[λx]}}
    Посмотрим, что дает первое граничное условие. Для этого исполь-
зуем функцию Reduce:

                        In : Reduce[f[0] == 0]
                        Out : C[1] == 0

    Посмотрим теперь, что дает второе граничное условие:

In : second_cond = Reduce[f ′ [L] + hf[L] == 0 &&λ 6= 0 && C[2] 6= 0]
Out : (λC[2]Sin[Lλ] 6= 0 && h == −λCot[Lλ])

 где && – логическое И. Результат, возвращенный Reduce, имеет струк-
туру списка. Очевидно, что для того чтобы решение уравнения было
нетривиальным, необходимо использовать второе условие:

     In : second_cond = Reduce[f ′ [L] + hf[L] == 0, C[2]][[1]][[2]]
     Out : h = −λ Cot[Lλ]

     Подставим в это уравнение конкретные значения параметров h = 1
и L = 1:

         In : second_cond = second_cond/.{h → 1, L → 1}
         Out : 1 == −λ Cot[λ]

     Прежде чем решать это уравнение, построим графики функций,
входящих в обе его части (см. рис. 1):

 In : Plot[{1, −xCot[x]}, {x, 0, 12}, PlotRange → {{0, 12}, {−12, 12}}]

     Точки пересечения функций y = 1 и y = −x cot(x) представляют
собой решения уравнения на собственные значения. На графике видно,
что в интервале x между двумя асимптотами всегда содержится только
одно решение.
    Для решения уравнения на собственные числа воспользуемся функ-
цией FindRoot. Функция FindRoot используется для решения алгеб-
раических уравнений – как полиномиальных, так и трансцендентных.
При решении уравнения FindRoot требует задания начальной точки, с

                                    10