1.7 Numericalizing for Speed
A word of common sense is in order before you start working with the application. As is the case with many builtin Mathematica routines, the Control System Professional functions, unless stated otherwise in this guide, accept both exact and inexact input (or a mix of the two) and handle them appropriately, attempting to give an exact answer to a problem involving an exact input. You do not have to worry about choosing the right algorithm, it is done in transparent fashion. However, you do have to realize that the algorithms invoked with the two types of input can be quite different, as can the computing time, with the exact computation sometimes being considerably more time consuming. You are therefore advised, whenever possible, to make sure that at least a part of the input contains an inexact expression to prevent running into a long exact calculation unnecessarily.
Consider, for example, a random exact matrix.
In[17]:=
Out[17]=
These are its exact eigenvalues together with the time taken by the CPU to compute the result.
In[18]:=
Out[18]=
If an inexact result suffices for the particular purpose, considerable savings in computing time can be realized just by using inexact input at the outset. (The double percentage mark, %%, is the familiar reference to the result of the nexttoprevious computation.)
In[19]:=
Out[19]=
1.8 Evaluating Examples in This Guide
When evaluating examples in this guide on your computer system, you may sometimes find that your results differ somewhat from the documentation. Differences in symbolic expressions may come from different heuristic rules employed in different versions of Mathematica; they usually vanish after a simplification. Small numerical residuals may be different because of the different machine arithmetic. Further, some numerical results may be different if a numerical algorithm, also based on the machine arithmetic, selects another possible value from the universe of equivalent values. In such cases, you can usually confirm that you are still getting a correct result by testing some property of the resulting system (e.g., eigenvalues of the closed loop system after a pole placement). Finally, the concrete values after random distortions will, of course, be different in your experiments.
