For given interval and polynomial system, this function computes the Krawczyk operator and check that the operator is contained in the input interval.
i1 : R = QQ[x1,x2,y1,y2]; |
i2 : f = polySystem {3*y1 + 2*y2 -1, 3*x1 + 2*x2 -7/2,x1^2 + y1^2 -1, x2^2 + y2^2 - 1}; |
i3 : (I1, I2, I3, I4) = (interval(.94,.96), interval(.31,.33), interval(-.31,-.29), interval(.94,.96)); |
Intervals for certification should be given in advance using other system solvers. After that we set the relationships between variables and intervals.
i4 : o = intervalOptionList {("x1" => "I1"), ("x2" => "I2"), ("y1" => "I3"), ("y2" => "I4")}; |
If the Krawczyk operator is contained in the input interval, then the function returns the result that the input interval (or the Krawczyk operator) contains a unique root of the system.
i5 : krawczykMethod(f,o) given interval contains a unique solution o5 = true |
By default, these functions uses the inverse of the matrix obtained by evaluating the system at the midpoint of the input interval.
However, users can choose an invertible matrix by themselves. (See InvertibleMatrix.)
i6 : Y = matrix {{.095, .032, .476, -.100},{-.143, .452, -.714, .150},{.301,.101,-.160, -.317},{.048,-.152,.240,.476}}; 4 4 o6 : Matrix RR <--- RR 53 53 |
i7 : krawczykMethod(f,o,InvertibleMatrix => Y) o7 = true |
The object krawczykMethod is a method function with options.