www.integral-calculator.com
Open in
urlscan Pro
176.9.19.242
Public Scan
URL:
https://www.integral-calculator.com/
Submission: On November 13 via manual from GB — Scanned from GB
Submission: On November 13 via manual from GB — Scanned from GB
Form analysis
1 forms found in the DOM<form id="expression-form" action="" onsubmit="return loading()">
<fieldset>
<div id="keyboard" class="btcf">
<a id="clear-expression-button" href="#" draggable="false" onclick="return loading()" data-input="CLR"><span>CLR</span></a>
<a href="#" draggable="false" onclick="return loading()" data-input="+" data-surround="right">+</a>
<a href="#" draggable="false" onclick="return loading()" data-input="-" data-surround="right">–</a>
<a href="#" draggable="false" onclick="return loading()" data-input="*" data-surround="right">×</a>
<a href="#" draggable="false" onclick="return loading()" data-input="/" data-surround="right">÷</a>
<a href="#" draggable="false" onclick="return loading()" data-input="^" data-surround="right">^</a>
<a href="#" draggable="false" onclick="return loading()" data-menu-id="keyboard-roots" data-direct-input="√(" data-surround="left">√</a>
<a href="#" draggable="false" onclick="return loading()" data-menu-id="keyboard-functions"><span>f(<em>x</em>)</span></a>
<a href="#" draggable="false" onclick="return loading()" data-menu-id="keyboard-consts-vars" data-direct-input="π">π</a>
<a class="additional-372" href="#" draggable="false" onclick="return loading()" data-input="(" data-surround="left">(</a>
<a class="additional-372" href="#" draggable="false" onclick="return loading()" data-input=")" data-surround="right">)</a>
</div>
<div id="keyboard-menus">
<div id="keyboard-roots" class="keyboard-menu btcf">
<a href="#" draggable="false" onclick="return loading()" data-input="√(" data-surround="left">√</a>
<a href="#" draggable="false" onclick="return loading()" data-input="∛(" data-surround="left"><sup>3</sup>√</a>
<a href="#" draggable="false" onclick="return loading()" data-input="∜(" data-surround="left"><sup>4</sup>√</a>
<a href="#" draggable="false" onclick="return loading()" data-input="√(n, " data-surround="left"><sup><em>n</em></sup>√</a>
<div class="btcf"></div>
<hr>
<div class="hint">You can also input:<br>• <code>sqrt(…)</code><br>• <code>root(n, …)</code></div>
</div>
<div id="keyboard-functions" class="keyboard-menu btcf">
<a href="#" draggable="false" onclick="return loading()" data-input="ln(" data-surround="left">ln</a>
<a href="#" draggable="false" onclick="return loading()" data-input="log(10, " data-surround="left">log<sub>10</sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="log(n, " data-surround="left">log<sub><em>n</em></sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="e^(" data-surround="left">exp <sub class="aka">e<sup><em>x</em></sup></sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="abs(" data-surround="left">abs <sub class="aka">|<em>x</em>|</sub></a>
<div class="btcf"></div>
<hr>
<a href="#" draggable="false" onclick="return loading()" data-input="sin(" data-surround="left">sin</a>
<a href="#" draggable="false" onclick="return loading()" data-input="cos(" data-surround="left">cos</a>
<a href="#" draggable="false" onclick="return loading()" data-input="tan(" data-surround="left">tan</a>
<a href="#" draggable="false" onclick="return loading()" data-input="csc(" data-surround="left">csc</a>
<a href="#" draggable="false" onclick="return loading()" data-input="sec(" data-surround="left">sec</a>
<a href="#" draggable="false" onclick="return loading()" data-input="cot(" data-surround="left">cot</a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arcsin(" data-surround="left">arcsin <sub class="aka">sin<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arccos(" data-surround="left">arccos <sub class="aka">cos<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arctan(" data-surround="left">arctan <sub class="aka">tan<sup>-1</sup></sub></a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arccsc(" data-surround="left">arccsc <sub class="aka">csc<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arcsec(" data-surround="left">arcsec <sub class="aka">sec<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arccot(" data-surround="left">arccot <sub class="aka">cot<sup>-1</sup></sub></a>
<div class="btcf"></div>
<hr>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="sinh(" data-surround="left">sinh</a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="cosh(" data-surround="left">cosh</a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="tanh(" data-surround="left">tanh</a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="csch(" data-surround="left">csch</a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="sech(" data-surround="left">sech</a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="coth(" data-surround="left">coth</a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arsinh(" data-surround="left">arsinh <sub class="aka">sinh<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arcosh(" data-surround="left">arcosh <sub class="aka">cosh<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="artanh(" data-surround="left">artanh <sub class="aka">tanh<sup>-1</sup></sub></a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arcsch(" data-surround="left">arcsch <sub class="aka">csch<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arsech(" data-surround="left">arsech <sub class="aka">sech<sup>-1</sup></sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="arcoth(" data-surround="left">arcoth <sub class="aka">coth<sup>-1</sup></sub></a>
<div class="btcf"></div>
<hr>
<a href="#" draggable="false" onclick="return loading()" data-input="function_f(" data-surround="left">f</a>
<a href="#" draggable="false" onclick="return loading()" data-input="function_f'(" data-surround="left">f '</a>
<a href="#" draggable="false" onclick="return loading()" data-input="function_f''(" data-surround="left">f ''</a>
<a href="#" draggable="false" onclick="return loading()" data-input="function_g(" data-surround="left">g</a>
<a href="#" draggable="false" onclick="return loading()" data-input="function_g'(" data-surround="left">g '</a>
<a href="#" draggable="false" onclick="return loading()" data-input="function_g''(" data-surround="left">g ''</a>
<div class="btcf"></div>
<hr>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_si(" data-surround="left">Si</a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_ci(" data-surround="left">Ci</a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_shi(" data-surround="left">Shi</a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_chi(" data-surround="left">Chi</a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_ei(" data-surround="left">Ei</a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_e1(" data-surround="left">E<sub>1</sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_e(n, " data-surround="left">E<sub><em>n</em></sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="expintegral_li(" data-surround="left">li</a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="erf(" data-surround="left">erf</a>
<a href="#" draggable="false" onclick="return loading()" data-input="erfc(" data-surround="left">erfc</a>
<a href="#" draggable="false" onclick="return loading()" data-input="erfi(" data-surround="left">erfi</a>
<a href="#" draggable="false" onclick="return loading()" data-input="lambert_w(" data-surround="left">W <sub class="aka">Lambert</sub></a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="gamma_function(" data-surround="left">Γ <sub class="aka">Gamma</sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="beta_function(" data-surround="left">Β <sub class="aka">Beta</sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="psi_function(n, " data-surround="left">ψ<sub><em>n</em></sub> <sub class="aka">Polygamma</sub></a>
<div class="btcf"></div>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="fresnel_s(" data-surround="left">S <sub class="aka">Fresnel</sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="fresnel_c(" data-surround="left">C <sub class="aka">Fresnel</sub></a>
<a class="small" href="#" draggable="false" onclick="return loading()" data-input="li(n, " data-surround="left">Li<sub><em>n</em></sub> <sub class="aka">Polylog</sub></a>
</div>
<div id="keyboard-consts-vars" class="keyboard-menu btcf">
<a href="#" draggable="false" onclick="return loading()" data-input="π">π <sub class="aka">3.141…</sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="e">e <sub class="aka">2.718…</sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="i">i <sub class="aka">√-1</sub></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="φ_GR">φ<sub>GR</sub> <sub class="aka">1.618…</sub></a>
<a href="#" draggable="false" onclick="return loading()" data-input="γ_EM">γ<sub>EM</sub> <sub class="aka">0.577…</sub></a>
<div class="btcf"></div>
<hr>
<a href="#" draggable="false" onclick="return loading()" data-input="α"><em>α</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="β"><em>β</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="γ"><em>γ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="δ"><em>δ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ϵ"><em>ϵ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ε"><em>ε</em></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="ζ"><em>ζ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="η"><em>η</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="θ"><em>θ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ϑ"><em>ϑ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ι"><em>ι</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="κ"><em>κ</em></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="ϰ"><em>ϰ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="λ"><em>λ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="μ"><em>μ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ν"><em>ν</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ξ"><em>ξ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ο"><em>ο</em></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="ϖ"><em>ϖ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ρ"><em>ρ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ϱ"><em>ϱ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="σ"><em>σ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ς"><em>ς</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="τ"><em>τ</em></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="υ"><em>υ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ϕ"><em>ϕ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="φ"><em>φ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="χ"><em>χ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ψ"><em>ψ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="ω"><em>ω</em></a>
<div class="btcf"></div>
<hr>
<a href="#" draggable="false" onclick="return loading()" data-input="Γ"><em>Γ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Δ"><em>Δ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Θ"><em>Θ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Λ"><em>Λ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Ξ"><em>Ξ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Π"><em>Π</em></a>
<div class="btcf"></div>
<a href="#" draggable="false" onclick="return loading()" data-input="Σ"><em>Σ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Υ"><em>Υ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Ψ"><em>Ψ</em></a>
<a href="#" draggable="false" onclick="return loading()" data-input="Ω"><em>Ω</em></a>
<div class="btcf"></div>
<hr>
<div class="hint">You can also input:<br>• <code>pi</code> for π, <code>alpha</code> for α, …<br>• <code>upper_…</code> for uppercase letters</div>
</div>
</div>
<input id="go" class="round button" type="submit" value="Go!">
<div id="expression-wrapper">
<input id="expression" class="round text" type="text" placeholder="(pi * sin(sqrt(x)) * e^sqrt(x)) / sqrt(x)" spellcheck="false" autocomplete="off" autocorrect="off" autocapitalize="off">
</div>
</fieldset>
</form>
Text Content
Switch light/dark mode INTEGRAL CALCULATOR CALCULATE INTEGRALS ONLINE — WITH STEPS AND GRAPHING! Also check the Derivative Calculator ! Calculadora de Integrales en español Integralrechner auf Deutsch Калькулятор Интегралов на Русском Advertisement Advertisement About Help Examples Options Practice The Integral Calculator lets you calculate integrals and antiderivatives of functions online — for free! Our calculator allows you to check your solutions to calculus exercises. It helps you practice by showing you the full working (step by step integration). All common integration techniques and even special functions are supported. The Integral Calculator supports definite and indefinite integrals (antiderivatives) as well as integrating functions with many variables. You can also check your answers! Interactive graphs/plots help visualize and better understand the functions. For more about how to use the Integral Calculator, go to "Help". Also see "Examples". And now: Happy integrating! Enter the function you want to integrate into the Integral Calculator. Skip the f(x)= part and the differential dx! The Integral Calculator will show you a graphical version of your input while you type. Make sure that it shows exactly what you want. Use parentheses, if necessary, e.g. a/(b+c). Write decimal fractions with a period instead of a comma, e.g. 3.141. In "Examples" you will find some of the functions that are most frequently entered into the Integral Calculator. When you're done entering your function, click "Go!", and the Integral Calculator will show the result below. In "Options", you can set the variable of integration and the integration bounds. If you don't specify the bounds, only the antiderivative will be computed. Click an example to enter it into the Integral Calculator (the current input will be deleted). $2x$ $x^{2}$ $\frac{1}{x}$ $\sqrt{x}$ $\sqrt[3]{x}$ $\frac{1}{\sqrt{x}}$ $\ln(x)$ $\log_{10}(x)$ $\ln^{2}(x)$ $\ln(x^{2} + 1)$ $x \ln(x)$ $\frac{\ln(x)}{x}$ $\frac{\ln(x)}{x^{2}}$ $\frac{1}{x \ln(x)}$ $\mathrm{e}^x$ $\mathrm{e}^{-x}$ $2^x$ $x\mathrm{e}^x$ $x\mathrm{e}^{-x}$ $\sin(x)$ $\cos(x)$ $\tan(x)$ $\sec(x)$ $\sin^{2}(x)$ $\cos^{2}(x)$ $\sin^{3}(x)$ $\cos(x) \sin(x)$ $\mathrm{e}^x \sin(x)$ $x \sin(x)$ $x \cos(x)$ $\arcsin(x)$ $\arctan(x)$ $|x|$ $\frac{1}{x^{2} + 1}$ $\frac{1}{1 - x^{2}}$ $\frac{1}{x^{2} + x + 1}$ $\sqrt{x^{2} + x + 1}$ $\operatorname{f}'(\operatorname{g}(x))\operatorname{g}'(x)$ Configure the Integral Calculator: Variable of integration: xxabcdfghjklmnopqrstuvwxyz Upper bound (to): +∞ +π Lower bound (from): –∞ –π Integrate numerically only? Simplify expressions? Simplify all roots? (√x² becomes x, not |x|) Use complex domain ℂ? Keep decimals? The practice problem generator allows you to generate as many random exercises as you want. You find some configuration options and a proposed problem below. You can accept it (then it's input into the calculator) or generate a new one. Definite integrals Integration by parts Substitution Completing the square Polynomials and powers Exponential functions Trigon./hyperb. functions Rational functions Inv. trigon./hyperb. functions Logarithms Special functions Tricky integrals Accept problem Next problem CALCULATE THE INTEGRAL OF …ENTER YOUR OWN ANSWER: Exit "check answer" mode CLR + – × ÷ ^ √ f(x) π ( ) √ 3√ 4√ n√ -------------------------------------------------------------------------------- You can also input: • sqrt(…) • root(n, …) ln log10 logn exp ex abs |x| -------------------------------------------------------------------------------- sin cos tan csc sec cot arcsin sin-1 arccos cos-1 arctan tan-1 arccsc csc-1 arcsec sec-1 arccot cot-1 -------------------------------------------------------------------------------- sinh cosh tanh csch sech coth arsinh sinh-1 arcosh cosh-1 artanh tanh-1 arcsch csch-1 arsech sech-1 arcoth coth-1 -------------------------------------------------------------------------------- f f ' f '' g g ' g '' -------------------------------------------------------------------------------- Si Ci Shi Chi Ei E1 En li erf erfc erfi W Lambert Γ Gamma Β Beta ψn Polygamma S Fresnel C Fresnel Lin Polylog π 3.141… e 2.718… i √-1 φGR 1.618… γEM 0.577… -------------------------------------------------------------------------------- α β γ δ ϵ ε ζ η θ ϑ ι κ ϰ λ μ ν ξ ο ϖ ρ ϱ σ ς τ υ ϕ φ χ ψ ω -------------------------------------------------------------------------------- Γ Δ Θ Λ Ξ Π Σ Υ Ψ Ω -------------------------------------------------------------------------------- You can also input: • pi for π, alpha for α, … • upper_… for uppercase letters This will be calculated: Loading … please wait! This will take a few seconds. ?∫?πsin(√x)e√x√xdx Use parentheses, if necessary. Also see "Examples". Change integration variable and order in "Options". SUPPORT Donate Please support me if you like this page. Donate via PayPal to remove the ads.* * Please choose to cover the PayPal fees. After donating, you will receive an e-mail. Learn more Advertisement RESULT Above, enter the function to integrate. Variable of integration, integration bounds and more can be changed in "Options". Click "Go!" to start the integral/antiderivative calculation. The result will be shown further below. × Advertisement HOW THE INTEGRAL CALCULATOR WORKS For those with a technical background, the following section explains how the Integral Calculator works. First, a parser analyzes the mathematical function. It transforms it into a form that is better understandable by a computer, namely a tree (see figure below). In doing this, the Integral Calculator has to respect the order of operations. A specialty in mathematical expressions is that the multiplication sign can be left out sometimes, for example we write 5x instead of 5*x. The Integral Calculator has to detect these cases and insert the multiplication sign. The parser is implemented in JavaScript, based on the Shunting-yard algorithm, and can run directly in the browser. This allows for quick feedback while typing by transforming the tree into LaTeX code. MathJax takes care of displaying it in the browser. When the "Go!" button is clicked, the Integral Calculator sends the mathematical function and the settings (variable of integration and integration bounds) to the server, where it is analyzed again. This time, the function gets transformed into a form that can be understood by the computer algebra system Maxima. Maxima takes care of actually computing the integral of the mathematical function. Maxima's output is transformed to LaTeX again and is then presented to the user. In many cases, the antiderivative is computed using the Risch algorithm, which is hard to understand for humans. That's why showing the steps of calculation is very challenging for integrals. In order to show the steps, the calculator applies the same integration techniques that a human would apply. The program that does this has been developed over several years and is written in Maxima's own programming language. It consists of more than 17 000 lines of code. When the integrand matches a known form, it applies fixed rules to solve the integral (e.g. partial fraction decomposition for rational functions, trigonometric substitution for integrands involving the square roots of a quadratic polynomial or integration by parts for products of certain functions). Otherwise, it tries different substitutions and transformations until either the integral is solved, time runs out or there is nothing left to try. The calculator lacks the mathematical intuition that is very useful for finding an antiderivative, but on the other hand it can try a large number of possibilities within a short amount of time. The step by step antiderivatives are often much shorter and more elegant than those found by Maxima. The "Check answer" feature has to solve the difficult task of determining whether two mathematical expressions are equivalent. Their difference is computed and simplified as far as possible using Maxima. For example, this involves writing trigonometric/hyperbolic functions in their exponential forms. If it can be shown that the difference simplifies to zero, the task is solved. Otherwise, a probabilistic algorithm is applied that evaluates and compares both functions at randomly chosen places. In the case of antiderivatives, the entire procedure is repeated with each function's derivative, since antiderivatives are allowed to differ by a constant. The interactive function graphs are computed in the browser and displayed within a canvas element (HTML5). For each function to be graphed, the calculator creates a JavaScript function, which is then evaluated in small steps in order to draw the graph. While graphing, singularities (e.g. poles) are detected and treated specially. The gesture control is implemented using Hammer.js. If you have any questions or ideas for improvements to the Integral Calculator, don't hesitate to write me an e-mail. © David Scherfgen 2024 — all rights reserved. Contact and Privacy Enter your function here. To calculate the integral, click the "Go!" button.