Next: 任意のtlistを成分として持てる行列型tlist Up: Scilab上に区間オブジェクトを実装する Previous: tlist

 

区間型tlist

区間オブジェクトとしてtlist('intval',s,t)を定義する。 これで区間[s,t]を表すことにする。ただし、s,tは同じタイプの実数, ベクトルまたは行列とする。Scilabにおいて
      -->x=tlist('intval',s,t);
とすると、xは区間型のtlistとなる。xの要素はx(2)でsをx(3)でtを 参照することができる。tlistでは四則演算などを演算子多重定義ができ、 演算子多重定義するには関数名が$\%$で始まるものが割り当てられている。 例えば、$\%$intval_a_intvalという関数名は関数と区間の和を演算子多重定義 する関数を表す。

まず、x=[a,b]と入力する関数を定義しよう。

   function x=intval(a,b)
      x=tlist('intval',a,b);
   endfunction
尚,Scilabの関数定義ではendfunctionは不要であるが,あってもエラーには ならないので,分かりやすさのために,以下ではendfunctionを書いて関数定義 の終りを示すことにする. つぎは、実数と区間との和を演算子多重定義する関数(メソッド)である。
   function x=%s_a_intval(a,b)
      call('down');
      x1=a+b(2);
      call('up');
      x2=a+b(3);
      x=tlist('intval',x1,x2);
   endfunction

このような演算子多重定義を書いたファイルをintval.sciとし、 Scilabのカレントディレクトリにおいておくと、

      -->getf('intval.sci');
とすることで、区間型のtlistを呼び出し、演算子多重定義された 区間型の四則演算を利用できる。



s oishi
2000-05-04