Location : Home > Languages > Perl > Package Title : Math::Systems |
![]() |
Math::Systems - 連立方程式を解く
use Math::Systems; $a = Math::Systems->new( [1, 2, 3], [1, -2 , -3], ) @solutions = $a->solve;
クラーメルの法則(Krammer's rule)を用いて連立方程式の解を求める。
Solve メソッドを見ればクラーメルの法則が理解できるだろう。(私がそう思っているだけ?)
基本的に連立方程式は1以上の方程式と変数からなる。
本モジュールでは、係数ごとに方程式が1つ必要である。しかしあまりに多数の方程式を計算しないこと。おそらく3本が限界であろう。もし計算時間がいくらかかってもかまわないのなら好きなだけやればよい。
本モジュールは行列に関するあらゆる処理を記述している(明らかに利用者が持っているはずの) Math::Matrix を必要とする。何が行われているかを確認するために本モジュールも詳細を見てほしい。本モジュールは Math::Matrix が必要とするものを除いて引数をとらない。
また、注意してほしいのだが、エラーメッセージがまったくでない。いずれ修正しようとは考えているが、現段階では方程式が解けるだけで満足である。したがって間違いを起こしそうなものを許してはならない。しこたま時間がかかったあと、おバカな答えを書き出し、本モジュールは必ずやいい仕事をしてくれるが、同時に落ちる。だから心してほしい。
BETA は何かを意味する。それはよくない。(BETA means something. It's not good.)
new
方程式の係数と解を渡す。書式は Math::Matrix における記述と同様である。
このメソッドはコンストラクタである。求めたい連立方程式が 2x + 3y = 10, 3x + 2y = 10 であれば以下のように定義する。
Math::Systems->new( [2, 3, 10], [3, 2, 10] );
solve
方程式を解く。解のリストを順に返す。引数をとらない。
Will Gunther, <williamgunther@aol.com>
perl, Math::Matrix
![]() |
Updated : 2006/06/25 |