Мультимедиа: геометрия, графика, кино, звук

Однако не всегда функция DSolve



Пример 3


Однако не всегда функция DSolve справляется с системами дифференциальных уравнений.

Пример 10.10. Найдем решение системы дифференциальных уравнений у"= y2+z, z'= -2yy'+y, удовлетворяющее начальным условиям у = 0, у'= 0, z = 0 при х = 0.
sol2=DSolve[{y''[x]==y[x]^2+z[x] , z'[x]==-2*y[x]*y'[x]+y[x], у[0]==1,у'[0]==l,z[0]==0},{y,z},{x}) DSolve [{у"[x]==y[x]2+z[x], z'[x]=y[x]-2y[x]y'[x],y[0]==1,y'[0] = 1,z[0] == 0},{y, z),{x}]
Как видите, несмотря на то что в данном случае решением является пара функций у = ё*, z - ef—e1*, функция DSolve не смогла найти его. В таких случаях, как и одно дифференциальное уравнение, так и систему дифференциальных уравнений приходится решать численно. Для этого можно воспользоваться функцией NDSolve. Вызов ее отличается от вызова функции DSolve лишь тем, что в нем нужно указать интервал, на котором ищется решение.
sol2=NDSolve[{y''[x]==y[x]^2+z[x], 2'[х]==-2*у[х]*у'[х]+у[х], у[0]==1,у'[0]= =1, z[0]==0}, {y,z},{x,0,10}] {{y->InterpolatingFunction[{{0.,10.}},<>], z->InterpolatingFunction[{{0.,10.}),<>]}}
В данном случае уравнения представлены в виде интерполяционных функций для у(х) и z(x) на интервале (0, 10). Хотя это и не аналитические выражения, они позволяют вычислить значения наших функций — решений системы дифференциальных уравнений — в любой точке интервала (0, 10).

{y[5],z[5]}/.sol2 { {148.413,-21878.}}

Несложно представить решение и в табличном виде. Ниже, например, приведена таблица значений функций у(х) и z(x) на отрезке [1, 5].

Содержание раздела