e2 = [ 1]
[ 2]
[ 3],
- Condition((L, K, e1, e2)) = 63.669790.
+ Condition((L, K, e1, e2)) = 31.834895.
Lists can (and probably should) be used for every argument::
[ 1],
e2 = [ 1]
[ 1],
- Condition((L, K, e1, e2)) = 3.414214.
+ Condition((L, K, e1, e2)) = 1.707107.
The points ``e1`` and ``e2`` can also be passed as some other
enumerable type (of the correct length) without much harm, since
[ 1],
e2 = [ 1]
[ 1],
- Condition((L, K, e1, e2)) = 3.414214.
+ Condition((L, K, e1, e2)) = 1.707107.
However, ``L`` will always be intepreted as a list of rows, even
if it is passed as a :class:`cvxopt.base.matrix` which is
[ 1],
e2 = [ 1]
[ 1],
- Condition((L, K, e1, e2)) = 12.147542.
+ Condition((L, K, e1, e2)) = 6.073771.
>>> L = cvxopt.matrix(L)
>>> print(L)
[ 1 3]
[ 1],
e2 = [ 1]
[ 1],
- Condition((L, K, e1, e2)) = 12.147542.
+ Condition((L, K, e1, e2)) = 6.073771.
"""
def __init__(self, L, K, e1, e2):
In the CVXOPT construction of this game, two matrices ``G`` and
``A`` appear. When those matrices are nasty, numerical problems
can show up. We define the condition number of this game to be
- the sum of the condition numbers of ``G`` and ``A`` in the
+ the average of the condition numbers of ``G`` and ``A`` in the
CVXOPT construction. If the condition number of this game is
high, then you can expect numerical difficulty (such as
:class:`PoorScalingException`).
+ Returns
+ -------
+
+ float
+ A real number greater than or equal to one that measures how
+ bad this game is numerically.
+
Examples
--------
>>> e2 = e1
>>> SLG = SymmetricLinearGame(L, K, e1, e2)
>>> actual = SLG._condition()
- >>> expected = 3.6180339887498953
+ >>> expected = 1.8090169943749477
>>> abs(actual - expected) < options.ABS_TOL
True
"""
- return condition_number(self._G()) + condition_number(self._A())
+ return (condition_number(self._G()) + condition_number(self._A()))/2
def dual(self):
e2 = [ 1]
[ 1]
[ 1],
- Condition((L, K, e1, e2)) = 88.953530.
+ Condition((L, K, e1, e2)) = 44.476765.
"""
# We pass ``self._L`` right back into the constructor, because