Skip to main content
deleted 2 characters in body
Source Link
bbgodfrey
  • 62.1k
  • 18
  • 92
  • 160

Although Jim Baldwin's solution is entirely satisfactory (+1), it is possible to obtain the desired expression without the additional assumptions. Begin by solving the ODE without the boundary condition.

s = FC[h] /. Flatten@DSolve[{a (FC[h])^2 - 2 b FC[h] + c - D[FC[h], h] == 0}, 
    FC[h], h, Assumptions -> b^2 - a c > 0]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + Sqrt[b^2 - a c] C[1]])/a *)

Now, obtainingC[1] by Solve[0 == s /. h -> 0, C[1]] gives the same ugly expressions that DSolve with the boundary condition gives.

Flatten@Solve[0 == s /. h -> 0, C[1]]
(* {C[1] -> -(ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c], 
    C[1] -> -(ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]} *)

Instead, simply observe that C[1] is

C[1 ]C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]

Then,

s /. C[1 ]C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + ArcTanh[b/Sqrt[b^2 - a c]]])/a *)

Simplify[TrigToExp[%]] /. Sqrt[b^2 - a c] -> q
(* (c (-1 + E^(2 h q)))/(b (-1 + E^(2 h q)) + (1 + E^(2 h q)) q) *)

and

Simplify[% == (c (1 - E^(-2 q (h))))/(q + b + (q - b) E^(-2 q (h)))]
(* True *)

It may be that the additional assumptions are needed when working with the DSolve solution with boundary condition, because it introduces factors of Sqrt[a] and Sqrt[c] that eventually drop out of the simplification but appear to require that a > 0 and c > 0 during intermediate steps.

Although Jim Baldwin's solution is entirely satisfactory (+1), it is possible to obtain the desired expression without the additional assumptions. Begin by solving the ODE without the boundary condition.

s = FC[h] /. Flatten@DSolve[{a (FC[h])^2 - 2 b FC[h] + c - D[FC[h], h] == 0}, 
    FC[h], h, Assumptions -> b^2 - a c > 0]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + Sqrt[b^2 - a c] C[1]])/a *)

Now, obtainingC[1] by Solve[0 == s /. h -> 0, C[1]] gives the same ugly expressions that DSolve with the boundary condition gives.

Flatten@Solve[0 == s /. h -> 0, C[1]]
(* {C[1] -> -(ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c], 
    C[1] -> -(ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]} *)

Instead, simply observe that C[1] is

C[1 ] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]

Then,

s /. C[1 ] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + ArcTanh[b/Sqrt[b^2 - a c]]])/a *)

Simplify[TrigToExp[%]] /. Sqrt[b^2 - a c] -> q
(* (c (-1 + E^(2 h q)))/(b (-1 + E^(2 h q)) + (1 + E^(2 h q)) q) *)

and

Simplify[% == (c (1 - E^(-2 q (h))))/(q + b + (q - b) E^(-2 q (h)))]
(* True *)

It may be that the additional assumptions are needed when working with the DSolve solution with boundary condition, because it introduces factors of Sqrt[a] and Sqrt[c] that eventually drop out of the simplification but appear to require that a > 0 and c > 0 during intermediate steps.

Although Jim Baldwin's solution is entirely satisfactory (+1), it is possible to obtain the desired expression without the additional assumptions. Begin by solving the ODE without the boundary condition.

s = FC[h] /. Flatten@DSolve[{a (FC[h])^2 - 2 b FC[h] + c - D[FC[h], h] == 0}, 
    FC[h], h, Assumptions -> b^2 - a c > 0]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + Sqrt[b^2 - a c] C[1]])/a *)

Now, obtainingC[1] by Solve[0 == s /. h -> 0, C[1]] gives the same ugly expressions that DSolve with the boundary condition gives.

Flatten@Solve[0 == s /. h -> 0, C[1]]
(* {C[1] -> -(ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c], 
    C[1] -> -(ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]} *)

Instead, simply observe that C[1] is

C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]

Then,

s /. C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + ArcTanh[b/Sqrt[b^2 - a c]]])/a *)

Simplify[TrigToExp[%]] /. Sqrt[b^2 - a c] -> q
(* (c (-1 + E^(2 h q)))/(b (-1 + E^(2 h q)) + (1 + E^(2 h q)) q) *)

and

Simplify[% == (c (1 - E^(-2 q (h))))/(q + b + (q - b) E^(-2 q (h)))]
(* True *)

It may be that the additional assumptions are needed when working with the DSolve solution with boundary condition, because it introduces factors of Sqrt[a] and Sqrt[c] that eventually drop out of the simplification but appear to require that a > 0 and c > 0 during intermediate steps.

Source Link
bbgodfrey
  • 62.1k
  • 18
  • 92
  • 160

Although Jim Baldwin's solution is entirely satisfactory (+1), it is possible to obtain the desired expression without the additional assumptions. Begin by solving the ODE without the boundary condition.

s = FC[h] /. Flatten@DSolve[{a (FC[h])^2 - 2 b FC[h] + c - D[FC[h], h] == 0}, 
    FC[h], h, Assumptions -> b^2 - a c > 0]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + Sqrt[b^2 - a c] C[1]])/a *)

Now, obtainingC[1] by Solve[0 == s /. h -> 0, C[1]] gives the same ugly expressions that DSolve with the boundary condition gives.

Flatten@Solve[0 == s /. h -> 0, C[1]]
(* {C[1] -> -(ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c], 
    C[1] -> -(ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]), 
    C[1] -> ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]} *)

Instead, simply observe that C[1] is

C[1 ] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]

Then,

s /. C[1 ] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c]
(* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + ArcTanh[b/Sqrt[b^2 - a c]]])/a *)

Simplify[TrigToExp[%]] /. Sqrt[b^2 - a c] -> q
(* (c (-1 + E^(2 h q)))/(b (-1 + E^(2 h q)) + (1 + E^(2 h q)) q) *)

and

Simplify[% == (c (1 - E^(-2 q (h))))/(q + b + (q - b) E^(-2 q (h)))]
(* True *)

It may be that the additional assumptions are needed when working with the DSolve solution with boundary condition, because it introduces factors of Sqrt[a] and Sqrt[c] that eventually drop out of the simplification but appear to require that a > 0 and c > 0 during intermediate steps.