Location : Home > Languages > Perl > Package Title : Math::Calculus::TaylorEquivalent |
![]() |
Math::Calculus::TaylorEquivalent - 基本的な関数に展開して式を評価
use Math::Calculus::TaylorEquivalent; # オブジェクトを生成 my $exp1 = Math::Calculus::TaylorEquivalent->new; my $exp2 = Math::Calculus::TaylorEquivalent->new; # 変数と式を設定 $exp1->addVariable('x'); $exp1->setExpression('(x + 1)*(x - 1)') or die $exp1->getError; $exp2->addVariable('x'); $exp2->setExpression('x^2 - 1') or die $exp2->getError; # 式をチェック my $result = $exp1->taylorEquivalent($exp2, 'x', 0); die $exp1->getError unless defined $result; print $result; # Prints 1 # 正しくない箇所を確認する例 $exp2->addVariable('x'); $exp2->setExpression('x^2 + 1') or die $exp2->getError; # 式を確認 my $result = $exp1->taylorEquivalent($exp2, 'x', 0); die $exp1->getError unless defined $result; print $result; # Prints 0
本モジュールはテイラー展開を用いて式をテイラー級数の最初の N 項 に展開し、係数を比較して式が等価であるか否かを確かめる
演算子 +, -, *, / , ^(べき乗)及びこれらで正しく括弧を用いた式、関数 ln, exp, sin, cos, tan, sec, cosec, cot, sinh, cosh, tanh, sech, cosech, coth, asin, acos, atan, asinh, acosh, atanh を理解する。
デフォルトではなし
new
$exp = Math::Calculus::TaylorSeries->new;
個々の式を保持する Taylor Series オブジェクトの新しいインスタンスを生成する。
addVariable
$exp->addVariable('x');
式中の名前をつけられた値を変数として設定する。名前をつけられた値はアルファベット文字でなければならない。
setExpression
$exp->setExpression('x^2 + 5*x);
引数として人間に可読な式を取り、内部的にはツリー構造として保持し、プロセス内で理解可能な妥当な式であるかを確認する。エンジンは文法について厳密であることに注意すること。例えば上の式では 5*x と書かねばならず、 5x では誤りとなる。式中の空白は許されるが手続きに何の影響も与えない。
優先順位を制御したい場合には括弧を使うこと。括弧つきの式は通常期待するように常に最初に評価される。モジュールは BODMAS の計算順に従う。失敗すれば undef を返し、成功すれば True を返す。
getExpression
$expr = $exp->getExpression;
格納されている、人間に可読な式の表現 textaul を返す。
taylorEquivalent
$boolean = $exp1->taylorEquivalent($exp2, $variable, $about); $boolean = $exp1->taylorEquivalent($exp2, $variable, $about, $compTerms); $boolean = $exp1->taylorEquivalent($exp2, $variable, $about, $compTerms, $maxError);
現在の式に対して引数としてもう1つの式を取り、テイラー級数の最初の $compTerms (デフォルトは 5) 項目を計算する。級数の各係数を比較し、係数間の差が $maxError (デフォルトは 0)を超えなければ true を返す。このことは2つの式は等価であることを示唆する。テイラー級数は $variable 及び $about をとる。0 にするとよい。
getTraceback
$exp->getTraceback;
setExpression 及び taylorSeries が呼び出されたとき、これらの関数が処理した内容を記述する。エラーが発生した場合この traceback はエラーの原因を特定するのに極めて有用である。
getError
$exp->getError;
getTraceback 以外のメソッドが呼び出されたとき、格納されているエラーメッセージはクリアされ、メソッド実行時に発生したエラーを格納する。もし実行に失敗すればこのメソッドを呼び出してエラーのテキスト表現を取得できる。
本モジュールの著者はウェブサイト http://www.jwcs.net/~jonathan/ を持っており、ここではモジュールに関する最新ニュースとウェブベースでモジュールの稼動を確かめるフロントエンドがある。
Jonathan Worthington, <jonathan@jwcs.net>
Copyright (C) 2004 by Jonathan Worthington
本ライブラリはフリーソフトウェアであり、Perl 本体と同等の条件で修正/再配布してもよい。なお Perl のバージョンは 5.8.1 または利用者の好みにより入手可能な Perl 5 以降のバージョンであればよい。
【訳注と解説】
![]() |
Updated : 2006/08/02 |