ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

曲線・曲面の多項式コミュの役立つ計算機ソフト

  • mixiチェック
  • このエントリーをはてなブックマークに追加
曲面とか曲線を描いたり、式を計算するのに役立つソフト
に関しての情報です。フリーソフトを中心にしてます。

■グレブナ基底計算など

RISA/ASIR
 http://www.math.kobe-u.ac.jp/Asir/asir-ja.html
 ... 代数曲線の描画機能もあります
CoCoA 
 http://cocoa.dima.unige.it/
Singular 
 http://www.singular.uni-kl.de/
 
■曲線・曲面の描画
 
surf http://surf.sourceforge.net/
POV-Ray http://www.povray.org/
 ... CGソフトで、代数曲面の描画機能もあります。
 
 
・足りないと思うので他にあったらここへどうぞ。
・速さなど機能比較などもどうぞ。
 個人的に、RISA/ASIRよりCoCoAのほうが速い場合
 が結構あると思います。
 

コメント(42)

[補足]

KNOPPIX/Math/Download

http://geom.math.metro-u.ac.jp/wiki/index.php?cmd=read&page=%5B%5BKNOPPIX%2FMath%2FDownload%5D%5D

のリンク先から、私の場合は
knoppix_20031119-20040202-math.iso
というファイルを使いました。
Mac OS Xでもfinkというパッケージマネージャを導入すれば、
surf、pTeX、Macaulay2、maxima、TeXmacsを含む数千の
オープンソースソフトウェアが利用可能です。

http://fink.sourceforge.net/
・情報どうもありがとうございます。
日々進歩するソフトウェアですので、
これからも、補充いだだければ幸いです。

・Macユーザーの方ならばCoCoAというと別の
もの(プログラムのほうの)を思い出すことでしょう。
CMC-曲面(平均曲率一定曲面)の作成には
CMClabが楽でいいみたいです

使い方は
http://geom.math.metro-u.ac.jp/wiki/index.php?[[JavaCMCLab]]


僕はいつもMathematicaで書いてますが、
フリーソフトではないので・・・
http://www.wolfram.com/
曲線を描画する方法を考えるのが楽しいです。
ぜひ、KSEGを使ってみてください。

http://www.mit.edu/~ibaran/kseg.html

KNOPPIX/Math に収録していますが、
Windows 版もあります。
また、Fink を使えば、MacOS X にもインストールできます。
狂授さんによる「Maxima入門ノート」が公開されました。
http://mixi.jp/view_diary.pl?id=45871562&owner_id=9599
標準では、gnuplot を用いて描画しますが、組み込みのOpenMath、
外部ビューアの Geomview などを用いて、曲線や曲面を描画できます。
どうもありがとうございます。

Maximaは関数の不定積分や
代数方程式や微分方程式の厳密解も少なからず計算できる
いいソフトですね。
皆様ぜひ一度は使ってみましょう。Windowsでも使えます。
非線形都市さん、こんにちは。
Maxima入門ノートはWindowsを想定して書かれているようです。
数式処理ソフトを使うのが初めての方でも、気軽に読めるのではないでしょうか?

Maximaは Linux, MacOS X でも動きますが、変わったところでは
Zaurus でも動いているのを見たことがあります。
gnuplot の替わりに QtPlot を使って描画します。
携帯端末で数式処理ができるとは、すごい世の中になったものです。
皆様、連休をいかがお過ごしですか? (↑返事書き忘れました)

 私は連休を使ってプログラム言語のRubyを
身に付けようと思って少し勉強してみました。

 練習で有限体上の行列環の右(左)イデアルとか計算させて
みたりしています。Rubyには行列や集合の演算を
楽に行えるメソッドが用意されていて快適です。

 ところで本題ですが、Rubyでグレブナ基底を計算
できるライブラリがあり、早速使って見ました。
神戸大の児玉氏の以下のサイトから得られます。

http://www.math.kobe-u.ac.jp/HOME/kodama/tips-RubyPoly.html

 例えば次のような使い方が出来ます。
(デカルトの正葉線のパラメータ表示から変数tを
消去しています)

#######################################################
require "polynomialm.rb"
require "gbasem.rb"

Monomial.setTermOrder("deglex")
list=[PolyM("-x*(t^3+1)+3*t"),PolyM("-y*(t^3+1)+3*t^2")]

GBase.getGBase(list)

GBase.printGb
#######################################################

・実行結果
GBase[
x^(3)+y^(3)-3x*y
y^(2)*t+x^(2)-3y
y*t^(2)+x-3t
x*t-y
]

 Rubyをお使いの方でまだ知らなかったという方も、
これから使おうという方も、
この機会に是非お試し下さい。
KSEG について、あちこちで話をしているのですが、このソフトウェアは
生で見てもらわないとわかりにくい部分があります。

もうすぐ公開予定の KNOPPIX/Math/ICMS2006 で
KSEG の描画過程を vnc2swf を用いて Flash に落せるようになりました。
試験的に公開していますので、良かったら見てください。

http://holst.sm.fukuoka-u.ac.jp/~hamada/kseg/
K3DSurf という中々の優れものを見つけました。POV-Ray と組み合わせることもできます。

http://k3dsurf.sourceforge.net/

Linux 版しか試していませんが、Windows 版や MacOS 版もあるようです。

もうすぐ公開する KNOPPIX/Math/2007 DVD にも収録しますので、お楽しみに。
>11
ずいぶん、遅いふぉろーですが、Ruby polynomial は面白いですよね。
他にも原先生の Ruby algebra もあります。
すでにメジャーになっているプログラミング言語に対して、
クラスライブラリとして数式処理機能を備えたものが徐々に増えてきたようです。
今後、注目ですね。

>12
自己フォローです。KSEG の描画過程に付いては、
http://geom.math.metro-u.ac.jp/wiki/index.php?KSEG
にまとめておきました。
曲線等の描画にMathematicaをお使いの方も多いと思いますので,今更ながらですが,イベントのアナウンスをさせてください.

日本Mathematicaユーザー会,形の科学会,東京電機大学の合同で,「講演会-Mathematicaと形の科学-」というのが今週末に東京神田の東京電機大学で開かれます.曲線・曲面の多項式に近いような遠いような,もし興味を持たれましたら,ユーザー会のウェブサイトをご覧ください.
http://www.jp-mathusers.org/
KNXM様・あまてぃあす様

 ご紹介及びフォローをどうもありがとうございます。
豊富なソフトウェアの機能を持て余すことなく
どう使いこなすかがますます重要になるのでしょう。

> クラスライブラリとして数式処理機能を備えたものが
> 徐々に増えてきたようです。

 こういった言語で既に公開されていて、安定して使えて
再配布もできるといったものがございましたら、
このトピックスにてご紹介下さい。

 個人的な意見としましては数式処理ソフト固有の
スクリプト言語ですと、Visual Studioやeclipceの
ような快適なコーディングはなかなか実現しにくい
のではというふうに思います。
 Rubyはeclipceでも使えるのでそのあたりを期待し
ていたりしました。
非線型都市様、

> こういった言語で既に公開されていて、安定して使えて
>再配布もできるといったものがございましたら、
>このトピックスにてご紹介下さい。

では、まずは国産のものから
Python 上で動く数論ツールとして NZMATH というプロジェクトがあり、
首都大学東京で開発、公開されています。ライセンスはBSDです。
http://tnt.math.metro-u.ac.jp/nzmath/

大部分は英語ですが、UserManual もあります。
http://nzmath.sourceforge.net/doc/?UserManual

日本語の解説については、ワークショップの講演記録がこちら。
http://tnt.math.metro-u.ac.jp/%7Etetsushi/presentations/okayama2005/

今後がとても楽しみなプロジェクトのひとつです。
ご紹介ありがとうございます。
Pythonを始めてみようという動機になります。
Linuxに既に入っていたので少しだけ見てみました。
いずれヘビーユーザーになりたいものです。C言語と合わせて使うとよさそうです。

余談: 今日で運営期間が777だそうですので、あやかりたいものです。
グラフィックス機能がかなり強化された
Mathematica 6 日本語版が近々リリースされますが,
日本Mathematicaユーザー会のワークショップで,
それらの機能の紹介とダイナミック変数の実例の講演が
6/30(Sat)に杉並区で予定されています.

ご興味のある方は
http://mixi.jp/view_community.pl?id=46499
を御覧ください.
久しぶりに3D-XplorMathを試してみたら、日本語化されたJavaバージョンなど、非常に面白いことになっていました。

ぜひ、皆さん遊んでみてください。
Download から 3D-XplorMath-J をダウンロードすれば、
Windows 上でも使えるはずです。

http://3d-xplormath.org/
ご紹介ありがとうございます。
さっそく少し使わせていただきました。
(最初はeclipseからでしたがexeがあるのに気づきました)

パラメータ曲面が絵画のように鮮やかに描かれ、
さらにペー関数などの等角写像の図といった
珍しい図も満載ですね。

ソースコードは公開されているのでしょうか?
JavaDocは以下で公開されているようですね。
http://3d-xplormath.org/j/javadoc/index.html
KNXMさん

3D-XplorMathを紹介していただきましてありがとうございます。
ソースコードは

http://3d-xplormath.org/j/

の下のほうで公開しています。BSDライセンスですのでご自由に
お使い下さい。なにか面白いexhibitができましたら送って
いただければ3DXMのギャラリーに追加することができます。

3DXMを楽しんでいただけたら幸いです。
ぴんか。さん、ソースコードの場所ありがとうございます。
KNOPPIX 上の Java VM でも問題なく動きますね。
あとは、メニューの日本語化方法ですが、もしもわかったらで良いので
教えてください。
メニューの日本語化方法についてですが、本当ならデフォルトの言語設定を読み込んで自動的に日本語で起動するはずなんですが、なぜかうまくいきません。後で原因をチェックしてみますが今のところオプションで言語を指定して起動してください。
具体的にはコマンドラインで .jar ファイルが保存してあるディレクトリに移動して

java -jar -Duser.language=jp 3D-XplorMath-J.jar

と入力してください。それから、アニメーションを描かせようとするとメモリーを大量に使うので、あらかじめメモリーの割り当てを増やして起動することをお勧めします。次のようにオプションで指定してください。

java -jar -Xmx256m 3D-XplorMath-J.jar

今日ようやく時間がとれたので、日本語のウェブページを更新しました。こちらにも日本語で起動する方法を書いておきました。

http://tmugs.math.metro-u.ac.jp/s-3dxm/j/index-j.html

よろしくお願いします。
3D-XplorMath-J のメニューが自動的に日本語で起動しない問題について原因がわかりました。問題を修正したので、現在DLできるプログラムはダブルクリックで自動的に日本語モードで起動します。逆に上のコマンドオプション -Duser.language=jp はもう効きませんのでご注意下さい。
ぴんか。さん、3D-XplorMath-J の更新情報をありがとうございました。

ところで、話はかわりますが、
現在、神戸大学で「計算による数理科学の展開」というプロジェクトより
様々な数学ソフトウェアに関するビデオが公開されています。

http://www.math.kobe-u.ac.jp/cm/
からビデオアーカイブを辿ると、閲覧できます。

プログラミング言語 Ruby への代数実装の話や
surf を用いた陰関数による曲面の描画など、様々な講演が
紹介されていますので、よろしくお願いいたします。
2年前のU-20プログラミング・コンテスト団体部門最優秀賞受賞作品として、
PenGraph というグラフ描画ソフトウェアがあります。

http://www.geocities.jp/hensatibu/appli.html

からダウンロードできますので、みなさんためしてみて下さい。
私の携帯は古いので、動作が遅かったのですが、最近の携帯ならば
もんだいなく動くと思います。

スクリーンショットや利用方法などは、
http://www.jipdec.jp/procon/2005/nyusen/iPenGraph.pdf
から参照できます。
PenGraph のダウンロードサイトへのQRコードを作ったので、良かったら利用してください。
surfer という新しいプロジェクトが始まっているようです。
http://www.imaginary2008.de/surfer.php
Windowsでも動きますので、ぜひお試しください。
ドキュメントもたっぷりついています。ただし、ドイツ語ですが、、、(^^;

http://www.imaginary2008.de/
も面白そうです。
ご返答が遅れましたが、
いつもご紹介下さりありがとうございます。
surferを使わせていただきました。
知らない曲面の例がいろいろとありました。
計算速度も速く優れていました。

描画方法で、二段階の解像度で描いている所も参考となりました。

英語版や日本語版が出るとより良いです。
曲面の解説内容は学生の方は読解にチャレンジしてみると
語学の講義に意欲がわくかもしれませんね。
surferのGalleryの曲面には、本コミュニティでは登場しなかったような
曲面が多数あります。
surferのドキュメントの Eine Chmutov Oktik の文章から引用しますと、

"Auch in der Gleichung kann man dies recht leicht erkennen:
Chm_d : T_d(x)+T_d(y)+T_d(z)+1=0.
wobei T_d das sogenannte Tchebychev Polynom ist (Build links)."

とあります。
このT_dはT_8(x)=128*x^8-256*x^6+160*x^4-32*x^2+1で、
これをほかにいろいろチェビシェフ多項式を計算して T_p(x)+T_q(y)+T_r(z)+1=0
の曲面を描いてみるという楽しみ方もあると思います。
例. (8*x^4-8*x^2+1)+(4*y^3-3*y)+(8*z^4-8*z^2+1)+1=0 などです。
数式処理ソフトMacaulay2
http://www.math.uiuc.edu/Macaulay2/
を力量不足であまりご紹介できていなかったのですが、
コミュニティの話題としてはずっと取り上げたい題材でした。
Macaulay2 にある cotangentSheaf という関数は、なかなか興味深いと思います。
たとえば次のような使いかたをします。(スペース位置を少し変えています)
///////////////////////////////////////////

i1 : R=QQ[x,y,z]/(x^3+y^3+z^3)

o1 = R

o1 : QuotientRing

i2 : F=cotangentSheaf Proj R

       1
o2 = OO
     Proj(R)

o2 : coherent sheaf on Proj(R), free

i3 : HH^0(F)

      1
o3 = QQ

o3 : QQ-module, free

///////////////////////////////////////////

上でx^3+y^3+z^3 というのは射影代数曲線の定義式(同次式)です。
この多項式や、HH^0の0をいろいろと変えて実験をしてみると、
だいたい次のような法則性があるということに気づきます。

(ここでHH^0(F)の出力結果のQQ^1などの指数の値を dim HH^0(F)と書きます。)

(i) 有理曲線のの多項式で、特異点が有理型(A_n,D_n,E_n)だけのとき、
 dim HH^0(F) = Milnor数の和(?)
 例. 4次曲線の特異点が A_1 , A_2 , A_2 だけからなるとき dim HH^0(F) = 5

(ii) 非特異d次曲線の多項式ならば 
 F = OO_Proj(R)^1 (-(d-3)) ,
 (とくに d=3 のとき OO_Proj(R)^1 ),
 dim HH^0(F) = (d-1)(d-2)/2 ,

(iii) dim HH^1(F)=1 , dim HH^2(F)=0

(ii)は代数幾何の本にある種数公式とSerreの双対性定理の系のようですし、
(i)は既存の何かの定理としてあるかもしれませんし、反例があるかもしれません。
条件を有理型と楕円型特異点にまで広げても大丈夫そうですが、
もっと複雑な特異点の場合は和は上の式のようにはならないようです。
その例は、
x^5+y^5-3*x^2*y^2 , x^5-3*x^2*y^2+x*y^4+y^4 , x^6+y^6+2*x^2*y^3
などです。(Milnor数はSingularで確かめました)

・さらに種数gが 1<=g<=(d-1)(d-2)/2-1 の場合に法則性があるでしょうか?
・さらに曲面の場合は同様な法則性はあるでしょうか?

用語の解説は省きますが、定義を理解するほどの予備知識がなくても
実験が出来るので層のコホモロジー群に親しみがわくのでは?とおもいます。
いろいろとお試しください。
どうもご無沙汰です。
20番の文の 3D-XplorMath-J をまた使ってみました。

常微分方程式でリミットサイクルが代数曲線になるような式を入れてみました。

3D-XplorMath-Jの"User ODE 2D 1stOrder(Autonomous)"の設定のデフォルトが

x'(x,y)= -y + c*x*(1 - x^2 - y^2)
y'(x,y)= x + c*y*(1 - x^2 - y^2)

となっておりまして、
これを一般化して f(x,y) を(実係数)n次多項式として、f_x,f_yをfの偏導関数として

x'(x,y)= f_y(x,y) - x * f(x,y)
y'(x,y)= -f_x(x,y) - y * f(x,y)

と設定すると、
f(x,y)=0の曲線へと
いろいろな初期値からの解曲線が
まとわりつく様子が見られます。

例として以下のものなどを挙げておきます。
1. f(x,y)=(x^2+y^2-1)(x^2+y^2-4)
2. f(x,y)=x^4+y^4-1
3. f(x,y)=(x^2+y^2+12*x+9)^2-4*(3+2*x)^3)

この式の背景ですが f(x(t),y(t))→0 , (t→∞) という要請を課して、
曲線f(x,y)=0の上では、
x'(x,y)= f_y(x,y)
y'(x,y)= -f_x(x,y)
という関係が成り立っているようにしてこしらえた式です。

参考文献
リミットサイクルについてはWikipediaに解説がありました。
http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%9F%E3%83%83%E3%83%88%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB
ご紹介をこのトピックでも幾つかしていただいたMathematicaと
関連した話題です。

Wolfram|Alpha
http://www.wolframalpha.com/

の入力として、2変数多項式 f(x,y) をTeXの式でいろいろ入れてみると
それぞれの等高線や z=f(x,y) の曲面の図など出てきたりするので、
面白いものが出来たと思います。
別の使い方も試してみたい所です。

3変数多項式の図はいまは出てきてないですが出てくるといいと思います。
分類上の性質も出てくるとよりよいでしょう。

今後の進展に期待しています。
Wolfram|Alphaとはまた別ですが、

efunda webMathematica Calculators
http://www.efunda.com/webM/home/webM_home.cfm

というものがありまして、

・Implicit Plot
・Parametric Curve
・Parametric Surface
という機能が当トピックと関係する内容です。

使えるといいのですが、メンバー登録がいるようです。
そのため私はレポートできませんが、
どなたかご使用された方はいらっしゃるでしょうか?
KNOPPIX 6.2 に入っていたのですが、kdeedu の Step が面白いです。http://edu.kde.org/step/

物理シミュレータですが、軌跡描画機能を備えていますので、
なかなか面白い曲線が描けます。

まだ、使い方がよくわからないのですが、
上記の図はグラフ機能でリサージュを描いたようです。
どうもご無沙汰しております。
数学ソフトウェアはその間にも日々進化しているようです。

数学セミナー9月号に「数学を発展させるコンピュータソフト」という
特集が組まれていましたので、お知らせします。

本トピックスに興味がございましたら、
情報源として有益と思います。

参照
http://www.nippyo.co.jp/magazine/5383.html
WebGLでつくられImplicit function plotter

Klein bottleや、Gyroid(似)の曲面が描けます。
https://developer.cdn.mozilla.net/media/uploads/demos/g/u/guska076/1f2b2abce4f159de89108615cd77349c/implicit-equation-3d_1371322341_demo_package/index.html

■Klein bottle
(x*x+y*y+z*z+2*y-1)*((x*x+y*y+z*z-2*y-1)*(x*x+y*y+z*z-2*y-1)-8*z*z)+16*x*z*(x*x+y*y+z*z-2*y-1)=0
■Gyroid(似)の曲面
cos(x) * sin(y) + cos(y) * sin(z) + cos(z) * sin(x)=0
40のサイトは自分で式を入力してdrawできますが、
なぜだか球は描画してくれない。。
x*x + y*y + z*z = 1
他の例はかなり描画してくれるものが多い
Mathematica9以降では(現10)
ContourPlot3Dで Implicit functionを描画するように仕様がかわっているようです。
http://reference.wolfram.com/language/ref/ContourPlot3D.html

WolframAlphaでは簡単なものしか描画できないので、Mathematica必要かなあ、、
http://www.wolframalpha.com/input/?i=graph+x%5E2+%2B+y%5E2+%2B+z%5E2++%3D+3

ログインすると、残り4件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

曲線・曲面の多項式 更新情報

曲線・曲面の多項式のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング