【数式処理システム】 Maxima 【Common Lisp】
■ このスレッドは過去ログ倉庫に格納されています
0100132人目の素数さん
2011/04/05(火) 02:08:43.33diff(exp(x),x,n)が簡約出来ない理由を調べました。comm-new.lispの中の
deriv(e)という関数が微分を行う関数群のentry pointです。この中でdiff
の第三引数の型をチェックしています。
この型がFIXNUM以外の場合には、名詞形を返す処理をしています。
ちなみにMaximaの機能拡張を使ってこの処理を実装するのは簡単でした。
matchdeclare([a,b],true);
tellsimpafter('diff(exp(a),a,b),exp(a));
でお終いです。これをmaxima-init.macにでもかいておけば所望の処理が
行われます。
最後になぜこいつが実装されていないのか、、、想像するに普通は欲張って
diff(exp(f(x)),x,n)を実装したくなりませんか?もちろんnが具体的な
数ならばちゃんと微分してくるのですが、変数の場合の一般的な公式が
よく分かりません。だからじゃないかな、、。
ちなみにdiff(exp(x),x,n)->exp(x) だけなら自明だし簡単に自分で
実装出来るのでわざわざ組み込まれてない気がします。
■ このスレッドは過去ログ倉庫に格納されています