Mathematica for studentのFit関数でエラー

なんか、うまくいきませんなぁ。
二種類くらいのエラーにあたって。


うち一種類は、原因がはっきり出てるんですな。
FitというかFindFit使って。
a+be^x みたいなののxのFitはできるんだけれども、a+be^{cx}みたいに、指数にパラメータ入れると、100回以内に収束しませんでした、いわれます。
これは、先駆者らに聞いて、カイ2乗分布か何かを使ってその最小値を自分で求めろ、という話になりました。


で、もう一つのエラー。Fit関数で33個のListをFitしようとすると
Unable to set worker thread stacksize to 4194304
Perhaps try reducing KMP_STACKSIZE or increasing your shell stack limit.
abort: fatal stacksize problem.
とか。一行目にピリオドがねぇ!とかいう細かいツッコミはともかく。
スタックサイズを上の数字に設定できませんでした、とかいわれてるのですな。
色々ググってみたものの、うまい情報があるようには思えなかったのですなー。


freeコマンドで、使用中のメモリサイズとか仮想メモリサイズとか見れるのだけれども・・・それでも35Mは空いているように見えるんですな。意味分かってない人の目なので、何か見るとこ間違ってるかもしれないけど。

limitコマンドでstacksizeの見てみると、8Mに設定されてました。
ので、32Mとか、大幅に上昇させてみたけれども・・・状態は変わりません。


MathematicaでMaxMemoryUsed[]とかいうのがあるけど、それを見ると3Mくらいの値が出ます。これを超えた、上記4194304のメモリを確保しようとして、エラーが出てるんですかね?

プロセスを走らせながらMathematica使っていたので、そのせい?とか思い、プロセス完全に止めて再起動してMathematica起動・・・それでもダメ。

微妙にMathematicaで使えるメモリサイズが増えたりするけど、だめぽ。
結局、あきらめたわけです。


Fitに使う、サンプルのListのサイズが元々33だったのですが。
これをTakeして減らしてみると・・・16個のListまで、Fitできました。

もしかしてこれは・・・Student版の使用制限に引っかかってる可能性が高い?
某所のpdf文書
http://math.uc.edu/~halpern/Mathematicafall04/Mathematicabook18.pdf
から抜粋。
This student version is supposedly fully configured and contains all the packages. The usual limitation on
a student version is the so-called stack size or the amount of volatile memory that the kernel will draw for storing
information as the commands are executed. For example, student Mathematica accepts a very large matrix but
only be able to execute a routine on a very small matrix.
・・・これ?
Student版の制限はいわゆるスタックサイズで、例えば大きいサイズの行列を受け入れはするけども、小さい行列のルーチンのみしか実行できないと。

確か、どっかに、Student版に機能的な制限はないって書いてなかったか?
・・・・・・・機能的(ソフト的)な制限はないけれども、ハード的な制限はあるとか、そういうオチですか?



※追記:Wolfram内のページを見た結果
メモリ制限の話、はっきりと書いてないなぁ。上の抜粋が英語のpdfからになっているのも、日本語のページがなかったからで。
確かに、どこかで日本語で読んだ覚えはあります。そして上記オチは、「メモリ容量は機能面に入らないのか?」という意味のオチでした。分かりにくかったか・・・。
その1:
http://www.wolfram.com/products/student/mathforstudents/qa.html#difference
Q: Mathematica for Students はプロフェッショナル版のMathematica と何が違うのですか.
Mathematica for Students はMathematica と全く同じように機能しますが,学生用の価格でご提供するものです.処理スピード,出力,機能すべてにおいて,プロフェッショナル版のMathematica と同じだといえます.主な違いとしては,以下のようなものが挙げられます.
Mathematica for Students は認定された教育機関に所属する学生が,個人のコンピュータで使用するためのものです.ご購入の際には,学生証明が必要です.
Mathematica for Students のご使用には,登録とパスワードが必要です.・Mathematica for Students を登録して,パスワードを取得するためには,Wolfram Researchの製品登録ページをご利用になるか,電子メール,ファックス,郵送でWolfram Researchまでご連絡ください.
Mathematica for Students でも,ヘルプブラウザでMathematica ブックがご覧いただけますが,プロフェッショナル版に付属している印刷版は含まれていません.印刷版のお求めは,Mathematica ブックストアでどうぞ.
Mathematica for Students でドキュメントを印刷すると,各ページにフッタが付きます.この「Printed by Mathematica for Students」というフッタは削除することができません.


その2:
http://support.wolfram.com/studentmathematica/reference/differences.html
スチューデント(Student)バージョンとプロフェッショナルバージョンの主な違いは価格(スチューデントバージョンの方が安価になっています),ライセンス(スチューデントバージョンの使用は,法的に学生として登録された方に限られています)で,その他に,ソフトウェアに影響をおよばさない機能の違いもあります.

ソフトウェア自体では次のような違いがあります.
スチューデントバージョンには,学生用のソフトウェアと分かるように様々な違いが組み込まれています.例えば,$Versionの値や起動時のスクリーンの違いがあり,また印刷したページには「"Mathematica for Students"」という語句が表示されます.

印刷されたマニュアルは含まれていません.ヘルプブラウザを通して,オンラインでマニュアルを読むことができます.



※追記(7/8):
結局、Students版でないMathematica4.1(4.2かも)が研究室にあったので、そっちで試して上手くいっています。
やっぱり、スタックサイズに制限あるんとちゃうのかと。
また、こっちはWindows版なので、samba経由でFitするListをReadListして読み込んでいますが・・・保存する際、なんかパーミッションエラー的なものが出るので、Windows内に保存してからまたsamba経由でコピーして戻す、みたいなことをやっています。
加えて言うなら、Fit時のパラメータを自由に指定できるFindFitはMathematica5の新機能で、4では使えません。でも、\exp (-ax)aみたいなパラメータ指定がしたいので、仕方なくMathematicaプログラミングで最小ニ乗法使ってます。
ケッコウブンポウウトオシイ
マンドクサ('A`)