すべての標準の演算子は区間に対しても利用できる (拡張されている、ということだ)。 オペランドの一つが区間であれば、すべての演算は区間演算される。
>> y=3*midrad(3.14,0.01)^2 |
>> A=midrad(rand(100),1e-4); >> tic; B=rad(A*A); disp(max(B(:))); toc; |
デフォールトでは、行列の演算は中心/半径形式で行われる。
これは効率的であるが、半径が最悪 倍 overestimate される。
intvalinit('sharpivmult') とすると、
シャープな幅を持つ区間を計算する。
>> intvalinit('sharpivmult') >> tic; B=rad(A*A); disp(max(B(:))); toc; |
現在のモードを表示するには、 intvalinit('ivmult') を実行する。
Hargreaves [1] には、 標準関数の評価に関するモード (approximatestdfcts, rigorousstdfcts) の使い方が書いてあるが、 現在の INTLAB (Version 9) にはそういうモードはないようである。 Intlab_V9/intlabsetting.mに
% modified 09/10/07 S.M. Rump approximate std fcts removed |
区間 x, y に対して、
交わり
,
区間包
は
それぞれ intersect(x,y), hull(x,y) で計算できる。
(Hargreaves [1] には、 “union” (合併) と書いてあるが、 正確には、合併の区間包 (interval hull) というべきであろう。 そのことは交わりが空である2つの区間の hull() を計算してみると分かる。)
>> x=infsup(-1,2); y=infsup(1.5,3); >> intersect(x,y) >> hull(x,y) |
abss() は obsolete (廃語) で、
mag() になったとか。
mag(x) は、
を計算するのかな?
mig() は mignitute というけれど、一体何?
こういうのは普通の数学語で書けば良いのに。
mig(x) は
を計算するのかな?
![]() |
in(x,y) は
が成り立つかどうか。
真のとき
, 偽のとき 0 を返す。
in0(x,y) は
(x が y の内部に含まれる。
すなわち
かつ
) が成り立つかどうか。
真のとき
, 偽のとき 0 を返す。
桂田 祐史