2016-03-16 3 views
0

Я искал способ, чтобы решить следующее дифференциальное уравнение:Mathematica DSolve diff. уравнение над конкретной областью

DSolve[(1 - b*Abs[z])*f[z]/a == f''[z], f[z], z] 

Поэтому я попытался DSolve этого различия г> 0 от г < 0, таких как:

DSolve[(1 - b*z)*f[z]/a == f''[z], f[z], z>0] 

Но я все еще не работаю. Возможно, добавление домена явно поможет, но я не могу найти способ сделать это.

Кто-нибудь знает, как это сделать?

Спасибо за вашу помощь и время

+1

Весьма сомнительно, что символическое решение существует , Достаточно ли численного решения? – LutzL

ответ

1

Вы можете передать свои предположения на решатель с Refine:

Refine[DSolve[(1 - b*Abs[z])*f[z]/a == f''[z], f[z], z], z > 0] 

дает

{{f[z] -> AiryAi[(1/a - (b z)/a)/(-(b/a))^(2/3)] C[1] + AiryBi[(1/a - (b z)/a)/(-(b/a))^(2/3)] C[2]}} 
+0

Спасибо! хотя я не уверен, как я должен понимать этот термин (- (b/a))^(2/3). У меня все еще есть это, даже когда я добавляю предположение {z> 0, a> 0, b> 0} – LeChat

+0

. Я также выяснил, что можно использовать опцию «Предполагаемый», например: 'Предполагая [z> 0 && a> 0 && b> 0, DSolve [(1 - b * z) * f [z]/a == f '' [z], f [z], z]] ' – LeChat