Location : Home > Languages > Perl > Package
Title : Math::Taylor - Taylor Polynomials and remainders
Toolbox Logo

名称

 Math::Taylor - テイラー多項式と剰余項


概要

use Math::Taylor;

# 近似式の生成
my $approximation = Math::Taylor->new(
  function       => "sin(y) * cos(x)",
  point          => 2,
  variable       => 'y',
  remainder_type => 'cauchy',
);

# 次数2でテイラー多項式の計算
my $poly = $approximation->taylor_poly(2);
print "$poly\n";

# 剰余項の上限も取得可能
my $remainder = $approximation->remainder(2, 'cauchy');

説明

 Math::Taylor は任意の次数のテイラー多項式の計算を提供する。
 内部処理として Math::Symbolic 特に Math::Symbolic::MiscCalculus を利用している。
 Math::Taylor は2つのタイプのテイラー級数の剰余項を計算することもできる。

エクスポート

 本モジュールはいかなる関数もエクスポートしない。すべてオブジェクト指向インタフェースで使用しなければならない。

メソッド

new(OPTION => ARGUMENT)

 new() は Math::Taylor オブジェクトのコンストラクタである。 key => value という形式で引数をとる。妥当なオプションは 'function', 'variable', 'point', 'remainder_type' である。
 new() は初めからオブジェクトを定義するか既存のオブジェクトをコピーするかによってクラスメソッドとして(Math::Taylor->new(...))呼ぶ出すことができる。その場合は関数と変数は深くコピーされる。(もしこの意味がわからなければ正しいことが行われると思って休んでいること)
 key => value という対を属性の設定に用いれば、プロトタイプからコピーされた属性をオーバーライトする。
 いかなる Math::Taylor オブジェクトも、少なくとも1つの関数属性を定義することを要請する。すなわち最初からオブジェクトを生成するなら function => $ms_tree 属性を指定する必要がある。
.  Math::Taylor オブジェクトの属性に関する詳細は以下の属性のドキュメントから学ぶことができる。
 new() は Math::Taylor オブジェクトを返す。

function()

 Math::Taylor オブジェクトを通じて近似される関数を取得または設定する。
 引数なしで呼び出された場合は関数の内部表現である Math::Symbolic ツリーを返す。
 引数が指定されていれば、1つめは対応する属性を指定された近似対象の関数として扱われる。関数は Math::Symbolic ツリーまたは Math::Symbolic ツリーとしてパースできる文字列のいずれかのフォーマットで指定されねばならない。その文字列の文法に関する詳細は Math::Symbolic and Math::Symbolic::Parser を参照のこと。
 例は以下の通り。

$taylor->function('sin(x)^2/x'); # sin(x)の2乗を x で割った
my $func = $taylor->function();  # 上記のツリーを返す
print $func."\n";                # 関数の出力

$taylor->function($anotherfunc); # 異なる関数を設定

 既存の Math::Symbolic ツリーに関数を設定する際には、ツリーはコピーされない。ことに注意すること。もしツリーに変更を加えたら Math::Taylor オブジェクトの関数にまでその影響が伝播する。これはバグではなくて、ドキュメント化された特長であり、望まれた機能でもある。
 function() を用いて関数属性にアクセスする時には Math::Symbolic ツリーはコピーされない。

point()

 テイラー級数を用いる近似する点を指定する。デフォルトは 0 である。
 引数なしで呼び出された場合は現在の値を返す。
 引数が指定されていれば、1つめは近似の点として扱われ、対応する属性を指定される。
 メソッドは常に現在の点(実数)を返す。

variable()

 近似する関数における展開の対象の変数を取得または設定する。デフォルトは x である。
 引数なしで呼び出された場合には内部的に変数を示す Math::Symbolic::Variable オブジェクトを返す。このオブジェクトを変数名として用いてもよい。
 引数が指定されていれば、1つめは近似対象の関数の新しい変数として扱う。新しい Math::Symbolic::Variable オブジェクトの名称としてパースできる文字列であるが、既存の Math::Symbolic::Variable であること。
 メソッドは常に現在の変数名を返す。
 Math::Symbolic::Variable オブジェクトとして変数を取得/設定した場合はオブジェクトはコピーされない。
 詳しくは Math::Symbolic::Variable を見よ。

remainder_type()

 テイラー級数の剰余項を計算する際に用いる種類を指定する。もしこの属性が指定されなければデフォルト値は lagrange である。
 引数なしで呼び出された場合には剰余項のタイプを返す。
 引数が指定されていれば、そのタイプで計算を行う。妥当な値は 'lagrange' または 'cauchy' である。
 詳しくは Math::Symbolic::MiscCalculus のドキュメントを参照のこと。
 メソッドは常も現在の剰余項のタイプを返す。

taylor_poly()

 本メソッドは指定された次数のテイラー多項式を計算する。次数を指定されなければ1次と見なす。多項式は Math::Symbolic ツリーとして返される。オプション引数として多項式の次数を指定できる。0次は級数の第1項を意味する。すなわち近似地点における関数の値である。

remainder()

 本メソッドは指定された次数のテイラー多項式の剰余項を計算して返す。次数を指定されなければ1次と見なす。remainder_type の指定に従って、ラグランジュ剰余項(Lagrange Remainder)またはコーシー剰余項(Cauchy Remainder)を返す。
 本メソッドは2つの引数をとり、どちらも必須ではない。1つめは上記で触れた次数であり、2つめは剰余項で導入される新しい変数名である。この変数はThis variable is called I in the documentation of Math::Symbolic::MiscCalculus のドキュメントでは theta と呼ばれ、 0 から 1 までの値をとる。デフォルト名は theta である。近似式に含まれている変数と重複しないように注意すること。
 詳しくは以下を見よ。


参考資料

 Math::Symbolic 特に、テイラー多項式の計算の実装には Math::Symbolic::MiscCalculus を見よ。

 本モジュールの最新バージョンは http://steffen-mueller.net または CPAN で入手可能である。

 以下のウェブサイトではテイラー展開の説明を見ることができる。


著者

 Steffen Mueller, <symbolic-module at steffen-mueller dot net>


著作権とライセンス

 Copyright (C) 2005 by Steffen Mueller

 本ライブラリはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。Perl 5.6.1 またはユーザの選択で Perl5 のこれ以降のバージョンでもよい。

Toolbox Logo
Updated : 2007/04/05