3
$\begingroup$

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

(function)

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,

$\endgroup$
1
  • 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
    Commented Mar 15, 2013 at 18:14

1 Answer 1

4
$\begingroup$

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
$\endgroup$
6
  • 3
    $\begingroup$ It is so much a pity that plain Solve["47th Hilbert's problem"] does not work! $\endgroup$ Commented Mar 27, 2013 at 8:38
  • $\begingroup$ There is no surprise that it does not work: Mathematica should even invent the problem! (click) $\endgroup$
    – Federico
    Commented Mar 27, 2013 at 10:28
  • $\begingroup$ Hmmm ... WolframAlpha["10th Hilbert problem"] $\endgroup$
    – Szabolcs
    Commented Mar 27, 2013 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
    Commented Mar 31, 2013 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$ Commented Apr 26, 2013 at 4:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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