Решение задачи с граничными условиями с использованием функции Грина
Решить следующее дифференциальное уравнение второго порядка, отвечающее заданным однородным граничным условиям.
In[1]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_119.png)
eqn = -u''[x] - u'[x] + 6 u[x] == f[x];
In[2]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_120.png)
bc0 = u[0] == 0;
In[3]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_121.png)
bc1 = u[1] == 0;
Вынуждающий член задан следующей функцией: f[x].
In[4]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_122.png)
f[x_] := E^(-a x)
Рассчитать функцию Грина для соответствующего дифференциального оператора.
In[5]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_123.png)
gf[y_, x_] = GreenFunction[{eqn[[1]], bc0, bc1}, u[x], {x, 0, 1}, y]
Out[5]=
![](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/O_65.png)
Графически oтобразить функцию Грина для различных значений , лежащих между 0 и 1.
In[6]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_124.png)
Plot[Table[gf[y, x], {y, 0, 1, 0.2}] // Evaluate, {x, 0, 1}]
Out[6]=
![](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/O_66.png)
Решение первоначального дифференциального уравнения с заданным вынуждающим членом может теперь быть получено с помощью интегралa свёртывания на отрезке .
In[7]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_125.png)
sol = Integrate[gf[y, x] f[y], {y, 0, 1}, Assumptions -> 0 < x < 1] //
Simplify
Out[7]=
![](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/O_67.png)
Графически тобразить решение данной задачи для разных значений параметра .
In[8]:=
![Click for copyable input](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/In_126.png)
Plot[Table[sol, {a, {1/4, 1, 2, 4}}] // Evaluate, {x, 0, 1}]
Out[8]=
![](assets.ru/solve-a-boundary-value-problem-using-a-greens-func/O_68.png)