Skip to content

Commit 64a7974

Browse files
committed
add pointers to generic lin alg packages
1 parent fd1a342 commit 64a7974

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

docs/src/man/numerical.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,26 @@ norm(bsys.A, Inf), norm(bsys.B, Inf), norm(bsys.C, Inf)
5353
```
5454
If you plot the frequency-response of the two systems using [`bodeplot`](@ref), you'll see that they differ significantly (the balanced one is correct).
5555

56+
## Extended precision and exotic number types
57+
Most functions in ControlSystems.jl can operate on numbers of any type, for example, computations can be performed with increased precision using the `BigFloat` type. While the `BigFloat` type is part of julia base, some functionality such as matrix factorizations used in `c2d` and `minreal` etc. require the user to load external packages to work with `BigFloat` numbers. The list below indicates how to make a number of functions work with `BigFloat` (and other exotic number types):
58+
- [`minreal`](@ref), [`observability`](@ref), [`controllability`](@ref): [`using GenericLinearAlgebra`](https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl) for a generic `svd` function.
59+
- [`poles`](@ref), [`are`](@ref), [`lqr`](@ref), [`kalman`](@ref), `tf(sys::StateSpace)`: [`using GenericSchur`](https://github.com/RalphAS/GenericSchur.jl).
60+
- [`c2d`](@ref)`(P, Ts, :zoh)`: `using ExponentialUtilities` followed by the following method definition: `LinearAlgebra.exp!(A::Matrix{BigFloat}) = ExponentialUtilities.exponential!(A)`.
61+
62+
If you encounter errors like
63+
```
64+
MethodError: no method matching svdvals!(::Matrix{BigFloat}) --> Load GenericLinearAlgebra.jl
65+
```
66+
```
67+
MethodError: no method matching eigvals!(::Matrix{BigFloat}, ...) --> Load GenericSchur.jl (this defines eigvals as well)
68+
```
69+
or
70+
```
71+
MethodError: no method matching schur!(::Matrix{BigFloat}) --> Load GenericSchur.jl
72+
```
73+
in any other function, you may need to load one of the packages mentioned above.
74+
75+
5676
## Frequency-response calculation
5777
For small systems (small number of inputs, outputs and states), evaluating the frequency-response of a transfer function is reasonably accurate and very fast.
5878

0 commit comments

Comments
 (0)