Location : Home > Languages > Perl > Package
Title : Math::Calculus::TaylorEquivalent
Toolbox Logo

名称

 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 以降のバージョンであればよい。


【訳注と解説】

  1. BODMASとは "Bracket Of Division Multiplication Addition Subtraction" の略で足し算、引き算、掛け算、割り算など混じった計算を行う時の便利な計算順序であるという意味である。
  2. textaul は意味不明。textual の打ち間違いだとしても余計に不明。「格納されている人間に可読な式の表現」のことをそういうのだとしても、そんなの初耳。
Toolbox Logo
Updated : 2006/08/02