Я написал программу на Octave, для решения ОДУ методом конечных разностей. Проблема с граничными условиями. Есть уравнение
![$\frac{d^{2}y}{dt^{2}}=t$ $\frac{d^{2}y}{dt^{2}}=t$](https://dxdy-03.korotkov.co.uk/f/2/0/9/209f21618939334ade983a1f8cb128a782.png)
. Если взять граничные условия в виде
![$y(0)=0$ $y(0)=0$](https://dxdy-01.korotkov.co.uk/f/4/f/4/4f4ab62c1383fad5ef6b80591fba80b482.png)
и
![$y(1)=1$ $y(1)=1$](https://dxdy-03.korotkov.co.uk/f/e/9/1/e9153ee045f815315d0e0023799f956082.png)
, то задача решается и моё решение совпадает с тем, что выдает функция dsolve(), если решать уравнение в MATLAB.
Но, если заменить граничные условия на условия по производным т.е.
![$y_{x}(0)=0$ $y_{x}(0)=0$](https://dxdy-04.korotkov.co.uk/f/f/c/f/fcff4f9f59630a4633920e32b14f1ef882.png)
и
![$y_{x}(1)=0$ $y_{x}(1)=0$](https://dxdy-04.korotkov.co.uk/f/f/5/9/f597da0a4ec5569e9ded825b1e6415c082.png)
, то после приложения ГУ к системе, матрица получается вырожденной (а MATLAB выдает сообщение, что явное решение не может быть найдено). Если например, взять и прибавить к левой части ОДУ
![$y(x)$ $y(x)$](https://dxdy-03.korotkov.co.uk/f/a/a/2/aa2594ca75000ea2e1b07459b7ce3ca882.png)
, то систему опять можно будет решить.
sln = dsolve('D2y=t','y(0)=0','y(1)=1'); % Решение есть и совпадает с решением МКР в Octave.
sln = dsolve('D2y=t','Dy(0)=0','Dy(1)=0'); % Нет решения в явной форме, а матрица МКР - вырожденная.
sln = dsolve('D2y+y=t','Dy(0)=0','Dy(1)=0'); % Решение, выраж. в триг. функциях. Но это уже другое уравнение.
В общем одно уравнение, но при разных граничных условиях оно то решается то нет. По-моему, можно определить заранее, какие надо прикладывать ГУ, чтобы решалось, но я забыл как. Подскажите пожалуйста, как для данного уравнения, выбирать разные типы ГУ, чтобы оно гарантированно решалось?