# DSolveValue not working

I'm having trouble trying to solve the following volterra (integral) equation with DSolveValue: $$f(x) = \frac{r}{n-1}\left(\frac{1}{\alpha} - 1\right)-\frac{r}{n-1}\frac{(1-p)}{p}e^{n\int\limits_{0}^{x}f(t)dt}$$ All parameters (r, n, $\alpha$) are positive and $p\in (0,1)$ I´m using the following command:

eqn = y[x] == (r/(n - 1))*(1/a - 1) - (r/(n - 1))*((1 - p)/p)*Exp[n*Integrate[y[t],{t,0,x}]]
sol = DSolveValue[eqn, y[x], x]


any help?

• To my knowledge, DSolve doesn't do integro-differential equations. – march Sep 21 '17 at 20:07
• But I´m using DSolveValue which, acording to wolfram documentation, does. wolfram.com/language/11/symbolic-and-numeric-calculus/… – Marcus Fermat Sep 21 '17 at 20:31
• Ah, I see. This looks to be new in V11, and I'm stuck at V10.0.1 – march Sep 21 '17 at 20:50
• This type of integro-differential equations DSolve can't solve. – Mariusz Iwaniuk Sep 21 '17 at 20:51
• @MariuszIwaniuk not even DSolveValue? – Marcus Fermat Sep 21 '17 at 20:54

This is not a Volterra-type equation. Those are of the form $y(x)= a(x) + \int_{x_0}^x K(x,t)y(t)dt$. In your case, the integral is exponentiated. I'm not aware of a general technique for solving such equations. If there's a way it can be recast as a Volterra equation than DSolve would have a reasonable chance to solve it, but it is not at all obvious that this is possible...

Using this: Answer form user - Daniel Lichtblau we have:

$$f(x)=\frac{r \left(\frac{1}{\alpha }-1\right)}{\text{nn}-1}-\frac{r (1-p) \exp \left(n \int_0^x f(t) \, dt\right)}{(\text{nn}-1) p}$$

a = 0;(*Assuming constants*)
b = 1;
r = 5;
p = 1/3;
nn = 5;
α = 10;
term = 8;

kernel[x_] := r/(nn - 1)*(1/α - 1)
func[x_, 0] := kernel[x]
ifunc[0][x_] := kernel[x]

func[x_?NumericQ, n_Integer] := kernel[x] - r/(nn - 1)*(1 - p)/p*
Exp[nn*NIntegrate[ifunc[n - 1][y], {y, 0, x}, MinRecursion -> 2]]

ifunc[j_Integer /; j >= 1] := ifunc[j] =
Module[{vals}, vals = Table[{x, func[x, j]}, {x, a, b, 0.002}];
Interpolation[vals]]

Plot[Evaluate[Table[ifunc[j][x], {j, 0, term}]], {x, a, b},
PlotStyle -> {Blue, Red, Green, Purple, Black}]
Plot[Evaluate[Table[ifunc[j][x], {j, 0, term}]][[-1]], {x, a, b},
PlotRange -> {Automatic, {-2, -1}}]


I did eighth iterations to this process.

A numeric check with random numbers:

g[x_, n_] := (-ifunc[n][x] + r/(nn - 1) (1/α - 1) - r/(nn - 1)*(1 - p)/p*
Exp[nn*NIntegrate[ifunc[n][y], {y, 0, x}, MinRecursion -> 2]]);
Table[g[RandomReal[{0, 1}, 10][[k]], term], {k, 1, 10}]

(* {-4.78826*10^-6, -7.19387*10^-7, -5.44634*10^-6, -1.1502*10^-7,
-3.94742*10^-6, -3.83767*10^-6, -6.26247*10^-6, -1.42423*10^-6,
-1.89644*10^-6, -3.32356*10^-7}*)