240
edits
m (→What to expect: Improved performance of mulrev and therefore inv) |
m (→Matrix operations: Updated notes in linear systems after an upgrade to the linear system solver) |
||
Line 288: | Line 288: | ||
Above mentioned operations can also be applied element-wise to interval vectors and matrices. Many operations use [http://www.gnu.org/software/octave/doc/interpreter/Vectorization-and-Faster-Code-Execution.html#Vectorization-and-Faster-Code-Execution vectorization techniques]. | Above mentioned operations can also be applied element-wise to interval vectors and matrices. Many operations use [http://www.gnu.org/software/octave/doc/interpreter/Vectorization-and-Faster-Code-Execution.html#Vectorization-and-Faster-Code-Execution vectorization techniques]. | ||
In addition, there are matrix operations on interval matrices. These operations comprise: dot product, matrix multiplication, vector sums (all with tightest accuracy), matrix inversion, matrix powers, and solving linear systems (the latter are less accurate). As a result of missing hardware / low-level library support and missing optimizations, these operations are | In addition, there are matrix operations on interval matrices. These operations comprise: dot product, matrix multiplication, vector sums (all with tightest accuracy), matrix inversion, matrix powers, and solving linear systems (the latter are less accurate). As a result of missing hardware / low-level library support and missing optimizations, these operations are relatively slow compared to familiar operations in floating-point arithmetic. | ||
octave:1> A = infsup ([1, 2, 3; 4, 0, 0; 0, 0, 1]); A (2, 3) = "[0, 6]" | octave:1> A = infsup ([1, 2, 3; 4, 0, 0; 0, 0, 1]); A (2, 3) = "[0, 6]" | ||
Line 322: | Line 322: | ||
c ⊂ 3×1 interval vector | c ⊂ 3×1 interval vector | ||
[. | [.18333333333333326, .18333333333333349] | ||
[. | [.43333333333333329, .43333333333333341] | ||
[. | [.18333333333333315, .18333333333333338] | ||
octave:6> A * c | octave:6> A * c | ||
Line 331: | Line 331: | ||
[2.9999999999999982, 3.0000000000000018] | [2.9999999999999982, 3.0000000000000018] | ||
[3.9999999999999982, 4.0000000000000018] | [3.9999999999999982, 4.0000000000000018] | ||
[4. | [4.9999999999999982, 5.0000000000000018] | ||
==== Notes on linear systems ==== | ==== Notes on linear systems ==== | ||
Line 338: | Line 338: | ||
* If the interval result is empty in at least one of its coordinates, the linear system is guaranteed to be underdetermined and has no solutions. Contrariwise, from a non-empty result it can not be concluded whether all or some of the systems have solutions or not. | * If the interval result is empty in at least one of its coordinates, the linear system is guaranteed to be underdetermined and has no solutions. Contrariwise, from a non-empty result it can not be concluded whether all or some of the systems have solutions or not. | ||
* Wide intervals within the matrix A can easily lead to a superposition of cases, where the rank of A is no longer unique. If the linear interval system contains cases of linear independent equations as well as linear dependent equations, the resulting enclosure of solutions will inevitably be very broad. | * Wide intervals within the matrix A can easily lead to a superposition of cases, where the rank of A is no longer unique. If the linear interval system contains cases of linear independent equations as well as linear dependent equations, the resulting enclosure of solutions will inevitably be very broad. | ||
However, solving linear systems with interval arithmetic can produce useful results in many cases and automatically carries a guaranty for error boundaries. Additionally, it can give better information than the floating-point variants for some cases. | However, solving linear systems with interval arithmetic can produce useful results in many cases and automatically carries a guaranty for error boundaries. Additionally, it can give better information than the floating-point variants for some cases. |
edits