I am trying to solve a PDE that is coming up in a control problem. So far I have the following:

eqn = Max[-(s + ϕ) - h[t, α], 
    D[h[t, α], t] - ζ α D[h[t, α], α] + 
     1/2 η^2 D[h[t, α], {α, 2}] - α] == 0;

bc1 = h[t, 10] == -(s + ϕ);
bc2 = h[1, α] == -(s + ϕ);

To do that, I am using

NDSolveValue[Evaluate[{eqn, bc1, bc2} /. {η -> 0.01, ζ -> 0.25, 
s -> 10, ϕ -> 0.005}], 
h[t, α], {t, 0, 1}, {α, -10, 10}]

I was told that this type of equation can be solved with finite difference methods, but I am unable to come up with a scheme due to the Max at the outset.

Mathematica does not deal with the problem well either, as it fails with

NDSolveValue::ndnum: Encountered non-numerical value for a derivative at t == 1.`. >>

Since I am no expert in PDEs, I would appreciate both advice to solve the problem in Mathematica and advice/references to deal with the problem more efficiently from a mathematical standpoint.

  • $\begingroup$ Are you solving the equation in a semi-infinite domain or you forgot one boundary? $\endgroup$ – xzczd Sep 16 '16 at 9:20
  • $\begingroup$ Ideally the former, but I could live with adding the bc h[t, 10] = -(s + [\phi]) $\endgroup$ – em70 Sep 16 '16 at 12:30
  • 1
    $\begingroup$ Well, after a second look at the equation, I'm thinking that, isn't the equation itself incorrect? Let alone the case that the 2 arguments are equal i.e. -(s + ϕ) - h[t, α] == D[h[t, α], t] - ζ α D[h[t, α], α] + 1/2 η^2 D[h[t, α], {α, 2}] - α, no matter which argument inside Max is larger, it should be == 0 i.e. the remaining argument is < 0, then the comparison makes no sense, because the remaining part isn't able to form a valid equation! $\endgroup$ – xzczd Sep 16 '16 at 13:11
  • $\begingroup$ @xzczd This is really a quasi-variational inequality that arises in an optimal stopping problem. My hope, perhaps naïve, was that Mathematica would handle it. $\endgroup$ – em70 Sep 16 '16 at 23:38
  • $\begingroup$ If the equation comes from a real problem, then I guess there's something wrong with your "translation", maybe you can add a bit more background information. $\endgroup$ – xzczd Sep 17 '16 at 3:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.