Hatena::ブログ(Diary)

Maximaでつづる数学の旅

お引っ越しのお知らせ

こちらのブログは「はてなブログ」にお引っ越ししました。新しいブログは
Maxima で綴る数学の旅
になります。URLはhttp://maxima.hatenablog.jp/です。
今までのご訪問に感謝しますとともに、新しいブログにも是非ご訪問いただきたく
よろしくおねがいします。

2013-01-04

お引っ越し

新年、明けましておめでとうございます。

blogのお引っ越しをしました。引っ越し先はこちらです。

Maxima で綴る数学の旅

引っ越し先のブログサービスは「はてなブログ」です。

ブログの名前はほとんど同じだし、サービス提供事業者も同じだし、なんで移るの?と思われるかもしれません。

引っ越しの理由は「はてなブログ」では簡単にMathJaxが使えたことです。残念ながらはてなダイアリーではMathJaxを使える設定を見つけることができませんでした。さすがに今更要望を出してもはてなダイアリーで対応してもらえるとは思えません。mimetexではMathJaxと比べると全然綺麗ではないですし、、、。

「はてなブログ」ではちょっと設定するだけでMathJaxを使うことができました。デザインのカスタマイズも簡単だし、「はてなブログ」開始の頃にmaxima.hatenablog.jpという分かり易いURLを取得することも出来ました。

こちらのサイトはとりあえず削除する予定はありませんが、記事を書くのはこれが最後となります。今までこちらのサイトに訪問頂きありがとうございました。また新しいサイトへのご訪問をお待ちしております。

2012-12-16

Maxima on Android version 1.6 リリースしました

にほんブログ村 科学ブログ 数学へ
にほんブログ村


Maxima on Android version 1.6 リリースしました。Google Playからダウンロード出来ます。Google Playで検索してみて下さい。

  • メニューをサポートしました。ハードウェア/ソフトのメニューキーで機能を呼び出せます。
  • バックボタンによるアプリの終了は無効化して、メニューのQuitメニューで終了するようにしました。
  • 日本語と英語のMaximaマニュアルを同梱し、メニューからアクセス出来るようにしました。
  • メニューの中にGraphメニューを用意して、再計算すること無く、グラフを再描画出来るようにしました。ただし次のMaximaコマンドを実行すると、再描画は出来なくなります。
  • 起動スピードを大幅に高速化しました。
  • セッションを保存するためにssave()とsrestore()を付け加えました。ssave()で保存したセッションは、アプリを終了後、再度起動してもsrestore()で復元することができます。
  • Android 4.2のWebViewにあるバグのために、大きなとじカッコが描画されない不具合がありました。この回避策を実装しました。

2012-11-10

限定記号消去とQEPCAD B

にほんブログ村 科学ブログ 数学へ
にほんブログ村


Maximaも凄いソフトだと思って色々といじって来たのですが、今回ご紹介するQEPCAD Bも相当に凄いソフトだと思います。前回の記事で、

「このような問題に対する答えを一般的に求めるアルゴリズムが存在するのです。」

と書きました。アルゴリズムがあるので当然プログラムで実現することができます。そしてまさにQEPCAD Bは限定記号消去を実現したプログラムとなっています。

QEPCADは限定記号のついた多項式系(多項式の等式と不等式の集合)を入力としてとり、限定記号付きの変数を全て消去した同値な多項式系を計算することができます。

QEPCADのセッションを見てみましょう。まず問題として、「放物線y=a*x^2 + bがx軸と交わるためのa, bの条件を求めよ」を考えることにします(センター試験の問題みたいですね)。前半部分を限定記号のついた多項式系で表してみます。

E x, E y, y=a x^2+b /\ y=0

お使いの環境によってはスラッシュと¥が並んで表示されるかもしれませんし、スラッシュとバックスラッシュが並んで表示されるかもしれません。いずれにしろ論理記号のandを表します。x軸は式で表すとy=0なので、これで正しいことになります。目視でyを消去してE x, a x^2+b=0とすることも出来ます。ではQEPCAD Bを起動してこの問題を解かせてみます。

結果の式は"An equivalent quantifier-free formula:"の後に表示されます。正しいことを確認してみて下さい。


[iMacG5-2F-2:~/Programming/qepcad] yasube% $qe/bin/qepcad
=======================================================
                Quantifier Elimination                 
                          in                           
            Elementary Algebra and Geometry            
                          by                           
      Partial Cylindrical Algebraic Decomposition      
                                                       
               Version B 1.69, 16 Mar 2012
                                                       
                          by                           
                       Hoon Hong                       
                  (hhong@math.ncsu.edu)                
                                                       
With contributions by: Christopher W. Brown, George E. 
Collins, Mark J. Encarnacion, Jeremy R. Johnson        
Werner Krandick, Richard Liska, Scott McCallum,        
Nicolas Robidoux, and Stanly Steinberg                 
=======================================================
Enter an informal description  between '[' and ']':
[ ]                 鍵カッコを入力。鍵カッコの間にコメントを入力出来ます。
Enter a variable list:
(a,b,x,y)              カッコの中に管まで区切って変数を入力します。
Enter the number of free variables:
2                 限定記号のつかない変数の個数を入力します。
                  この場合、最初の2つであるa, bは限定記号のつかない変数です。
Enter a prenex formula:
(E x) (E y) [y=a x^2+b /\ y=0].   式を入力します。まず、限定記号を記述します。次に式そのものを
                  記述します。


=======================================================

Before Normalization >
finish               この行は、このように入力します。

An equivalent quantifier-free formula:

b = 0 \/ [ a > 0 /\ b < 0 ] \/ [ a < 0 /\ b > 0 ]    これが出力の式です。
                  b~0であるか、またはaもbも0ではなくかつaとbの符号が逆である
                  ことが必要十分条件となります。

=====================  The End  =======================

-----------------------------------------------------------------------------
0 Garbage collections, 0 Cells and 0 Arrays reclaimed, in 0 milliseconds.
480603 Cells in AVAIL, 500000 Cells in SPACE.

System time: 18 milliseconds.
System time after the initialization: 10 milliseconds.
-----------------------------------------------------------------------------

2012-11-02

限定記号消去は数式計算

にほんブログ村 科学ブログ 数学へ
にほんブログ村


数式処理の一分野として、限定記号消去と呼ばれる分野があります。

タルスキーという数学者が見つけたのですが、実数を値域とする変数に存在記号や全称記号のついた多変数多項式系(多項式の方程式や不等式の集まり)が与えられたとき、同値な、限定記号のついた変数を全て消去した多項式系が存在し計算出来ます。例えば2変数a, xでxに全称記号がついた多項式系:

For all x, x^2-a > x

が与えられたとき、xを含まない、同値な式は、

4*a +1 < 0

これは確かに、上記の式と同値で、かつ全称記号がついた変数xは消去されています。

この計算はなにを行ったのでしょうか。それは「全てのxについてx^2-a>xを満たすようなaの範囲を求めよ」を解いたことになるのです。

このような問題に対する答えを一般的に求めるアルゴリズムが存在するのです。

2012-10-24

Maximaのコマンドの使い方 example() コマンド

にほんブログ村 科学ブログ 数学へ
にほんブログ村


またまたGoogle Playのコメントで、「使い方の説明が全然ない。例もない、、、」という方がおられました。

実はexample()コマンドやdemo()コマンドは普通に動きます。example()コマンドが使い易いと思います。

(%i1) example();

とやると、例題が用意されているコマンドが全て表示されます。それらの一つを引数にして、例えば

(%i2) example(nroots);

とやると、方程式が一つ表示されて、ある区間における実根の個数が表示されます。

example(ode2); とかexample(linsolve); など色々と楽しめます。