Numerical quantities in
Mathematica can be of three types: infinite precision, machine precision, or arbitrary precision. The first type of number is referred to as "exact", while the remaining two types represent incomplete information and are therefore called "inexact".
Since
DSolve is a symbolic solver, the algorithms used by it are primarily based on the assumption of exact input. However, equations that contain inexact quantities are handled by
DSolve in the usual way.
Inexact input could arise, for example, when the coefficients in the equations are derived from a previous calculation and are known only approximately. In such cases, it might not be practical to convert the equations to exact form, as this could slow down the calculation significantly.
Here is a system of linear ODEs that all have exact coefficients. Note that even with a fairly small value of

, the calculation takes a long time to finish.
If a single inexact quantity is introduced (in the function
), the solution is returned more quickly.
Thus, it is often desirable to continue working with inexact quantities even within a symbolic function such as
DSolve. However, it should be noted that the solution obtained in such cases could have a certain amount of numerical error and should be checked carefully. It is therefore recommended that if the problem size is not too large (for instance, if there are fewer than five equations), the input should be converted to exact form using the
Rationalize function.