I want to solve an Volterra type Integral equation,

and as a practice I entered the following code to my mathematica:

Clear[Func, x, t]; DSolve[
D[Func[x], x] == Integrate[Func[t], {t, 0, x}], Func[x], x]

But I got an error message,

DSolve::litarg: To avoid possible ambiguity, the arguments of the dependent variable in


should literally match the independent variables. >>

I guess that the argument of Func[...] should be always 'x' (not 't') in the above example.

I first thought changing my code to

Clear[Func, x, t]; DSolve[
D[Func[x], x] == Integrate[Func[x], {x, 0, x}], Func[x], x]

But it seems it's not the integral equation I want to solve.

Also in that case I got the following warnings,

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

Are there any ways to assign variable to the bounds of the integration interval?

Thank you in advance,

  • 1
    $\begingroup$ I don't think Mathematica is able to solve integro-differential equations symbolically. Are you looking for a symbolic or a numerical solution? $\endgroup$ – Szabolcs Mar 15 '13 at 18:14

Your ODE is $$ \left\{ \begin{array}{l} \frac{df}{dx}(x) = \int_0^x f(t) \, dt,\\ f(0) = f_0. \end{array} \right. $$

You can differentiate the first equation and obtain $\displaystyle \frac{d^2f}{dx^2}(x) = f(x)$.

The initial conditions are $f(0) = f_0$ and $f'(0) = 0$ (as follows from the first equation).

This ODE is very simple to solve and the solution is $f(x) = f_0 \cosh(x)$.

I wonder why you didn't solve the equation by hand, but tried to use Mathematica instead. You should realize that Mathematica isn't just a magic box in which you put something like

Solve["47th Hilbert's problem"]

and wait for a solution. Sometimes it's more instructive to think a bit more about the problem at hand and come up with a simple solution.

By the way, you can solve the ODE and even verify it with the following code:

sol = First@DSolve[{f''[x] == f[x], f'[0] == 0, f[0] == f0}, f, x];
f[x] /. sol // FullSimplify
f'[x] == Integrate[f[t], {t, 0, x}] /. sol // FullSimplify
|improve this answer|||||
  • 3
    $\begingroup$ It is so much a pity that plain Solve["47th Hilbert's problem"] does not work! $\endgroup$ – Alexei Boulbitch Mar 27 '13 at 8:38
  • $\begingroup$ There is no surprise that it does not work: Mathematica should even invent the problem! (click) $\endgroup$ – Federico Mar 27 '13 at 10:28
  • $\begingroup$ Hmmm ... WolframAlpha["10th Hilbert problem"] $\endgroup$ – Szabolcs Mar 27 '13 at 19:56
  • $\begingroup$ Thank you, Federico, I think my example was too simple. As you have shown above, we can solve this differential equation easily if we reduce it to the ordinary differential equation that does not have any integral signs. At the same time, I think there may be equations that cannot be reduced to such forms, en.wikipedia.org/wiki/Volterra_integral_equation My intention was to know whether Mathematica can solve an integral equation from its original form, without differentiating the both sides of it. $\endgroup$ – aki Mar 31 '13 at 8:24
  • $\begingroup$ @Akihiko, unfortunately, even with the current version, there is still no explicit support for integral equations, much less integro-differential equations. This is one of those times where if you want to get something out of Mathematica, you will have to do a fair amount of (virtual) hand-holding... $\endgroup$ – J. M.'s technical difficulties Apr 26 '13 at 4:57

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.