# Integration vs differentiation

Integration is hard! Integration is generally much harder than differentiation. This little demo allows you to enter a function and then ask for the derivative or integral. You can also generate random functions of varying complexity. Differentiation is typically quite easy, taking a fraction of a second. Integration typically takes much longer, if the process completes at all!
The point? If integration seems hard - that's because it really is! This demo shows that to be the case from a purely algorithmic perspective.
$$f(x)=...$$
Complexity:

$$f'(x)=...$$
computation time:

$$\int f(x) dx = ...$$
computation time:

#### Acknowledgements

The formulae on the page are typeset with MathJax, some client side parsing is performed by math.js, and basic DOM manipulation is performed by jQuery.
The workhouse on the server side is sympy which is used to differentiate, integrate, and even generate the functions. Sympy, it should be said, is not a particularly powerful computer algebra system when compared to a commercial system like Mathematica or even an open source system like Maxima. Those systems are typically much faster and can integrate many more functions. The main advantage of sympy in the context here is that it is very easy to use as a library. Furthermore, it amply illustrates the main point that integration is much harder than differentiation.
If you have Mathematica, or even Wolfram CDF Player, you can try that too.