Interval package: Difference between revisions

209 bytes removed ,  17 February 2015
m
→‎Matrix operations: Updated notes in linear systems after an upgrade to the linear system solver
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 quite slow compared to familiar operations in floating-point arithmetic.
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
   
   
     [.18333333333333323, .18333333333333344]
     [.18333333333333326, .18333333333333349]
     [.43333333333333318, .43333333333333346]
     [.43333333333333329, .43333333333333341]
     [.18333333333333323, .18333333333333344]
     [.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.9999999999999973, 5.0000000000000018]
     [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.
* Due to the [http://en.wikipedia.org/wiki/Interval_arithmetic#Dependency_problem dependency problem in interval arithmetic], it may happen that the current solving algorithm produces poor results for some inputs.


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.
240

edits