Использование Dsolve с предположениями/условиями

Я хочу решить следующее уравнение:

DSolve[u''[x]+k^2 u[x], u[x],x]

если k ^ 2 ‹ 0, решение

u[x]-> C[1] e^(kx) + C[2] e^(-kx)

если k^2>0, решение

u[x] -> C[1] Sin [kx] + C[2] Cos[kx]

в моем уравнении

k^2=(a-b)/(c-d)

когда b>a и c>d, что означает k^2‹0

когда я подключаю уравнение к Mathematica, оно меняет знак и дает мне решение для показателей степени, а не для косинуса.

кто-нибудь знает, как включить предположения или условия в уравнение? Или патч между ними, чтобы я получил истинное решение?

Ваше здоровье


person jarhead    schedule 19.02.2015    source источник
comment
Ваш код выдает ошибку: DSolve::deqn: Ожидается уравнение или список уравнений... Было бы также полезно, если бы вы разместили ожидаемое решение, поскольку вы, похоже, знаете, каким оно должно быть.   -  person Chris Degnen    schedule 19.02.2015
comment
Меня это беспокоит, но можете ли вы адаптировать что-то вроде этого: sol = u[x] /. DSolve[A u''[x] - ((a-b)/(c-d))u[x] == 0, u[x], x][[1,1]] с последующим (sol /. E^( v__*x) -> Cos[v x]+I Sin[v x]) /. (а-б)->(б-а)   -  person Bill    schedule 20.02.2015
comment
@Bill Я отредактировал и добавил пояснения   -  person jarhead    schedule 20.02.2015


Ответы (1)


введите константу k2n, которая является отрицательной от предполагаемой отрицательной k^2:

 First@DSolve[{u''[x] -  k2n  u[x] == 0  }, u[x], x]

E^(Sqrt[k2n] x) C[1] + E^(-Sqrt[k2n] x) C[2]

теперь мы знаем k2n>0 так что вернемся к замене

 % /. Sqrt[k2n] -> k

E^(k x) C[1] + E^(-k x) C[2]

В качестве общего ответа я не думаю, что есть способ сказать DSolve делать предположения о параметрах.

person agentp    schedule 20.02.2015