PlayerをMathematicaとして使う方法」を、Rubyコードを書くことで「もっと簡単」「わずか3ステップ」にしてみました。Mathematicaはプログラミング言語であり、優れた開発環境です。数式処理言語としてスタートしたMathematicaですが、今では汎用言語と言っても良いくらいに、さまざまなことができるようになっています。そんなMathematicaの「玉にキズ」な点が「お値段」です。ホームエディション」が発売されています。今の円相場なら295ドルは2万3千円ほどになりそうなものですが、残念ながら、日本では(消費税を含めて)7万350円とかなりのお値段になってしまいます。呼ばれていたもの)で、汎用的な計算をさせよう」という要望です。Mathematicaで作られたコードを実行することができまずが、ユーザが任意の数式を入力して処理させることはできません。Playerに任意の処理をさせてしまおうというアイデアです。Playerで再生させる」というアイデア・実装です。Playerは「”決まった一定のURL”から数式を読み込む」という「非任意」の処理をしているように見えて、実は”そのURL”が出力する数式を任意に変化させることで、任意の数式処理をさせてやる、ということです。Playerに実行させることができます。PlayerをMathematicaとして使う方法」で書かれている「ローカル・コンピュータに、PHPをインストールして・HTTPサーバを動かす」という手順は少しばかり面倒です。そこで、Rubyで同じことをもっと簡単にさせることができるコードを書いてみました。与えられた数式を記憶し・返すというWEBアプリをRubyで書いてみたのです。3にアクセスすれば、Mathematicaと同等の機能を使うことができます。3の左側の領域で数式を入力し”TAB”キーを押します。すると、(Rubyで書かれたローカルで動く)HTTPサーバがその数式を記憶します。HTTPサーバへと数式を探しに行き、結果として、任意のMathematicaプログラムを処理した結果が実行される、というわけです。Playerをダウンロード&インストールしておくことも必要です。3とRubyで書いたWEBサーバで下記コードを実行させてみた際の実行結果です。音楽教室の必需品、ルートヴィヒ・ヴァン・ベートーヴェンの姿が浮かび上がります。3にアクセスする」のわずか3ステップです。PlayerをMathematicaとして使う方法」をRubyでもっと簡単にしてみたので、次は数式処理のみならず汎用処理が可能なプログラム言語であるMathematicaで、何かの処理をさせてみたくなります。手始めに、何かをしてみようとなると「オッパイ的なHelloWorld」を作ってみたくなります。タイムリーなことに「おっぱい(曲面)方程式を作り出した」という世紀の大発見がありました。3でおっぱい(曲面)方程式を描いてみました。描いた結果が右上画像です。最初のプログラム(HelloWorld)を書いたなら、次はちょっとカスタマイズして「プログラミングの楽しさを知る」というのが、学びの王道です。そこで、少しだけMathematicaの機能を使ってカスタマイズしてみた結果が下のようすです。「おっぱい肌色方程式」を曲面を塗りつぶす色に対して適用させることで、もっと写実的!?にビジュアリゼーション(可視化)してみました。「オレもやりたい」と思ったならば、やることはとても簡単です。PlayerをMathematicaとして使うことができるようにして、後は下記のコードを貼り付け・演算ボタンを押すだけ、です。「Mathematicaを持っている」という人であれば「下記のコードをコピペするだけ」で終わりです。それだけの作業で、グリグリとおっぱいを後ろから前から眺めることができます。LightPink]],"辺りの記述には、各自それぞれ意見があることでしょう。0.5]の比率(色)に関する部分...そうしたパラメータ(関数)をほんの少し変えただけで、驚くほど印象が変わるものです。"0.45"を"0.35"に、"0.5"を"0.7"に変えてみたのが、右の「おっぱい曲線方程式」です。これだけでも、ずいぶんとニュアンスが変わって見えるものです。0.3でも0.4でもなく、0.45(とか0.35)にするといった小数点以下さらに数桁にこだわるのが「匠(たくみ)のワザ」なのです。...こうしたカスタマイズを繰り返すことで「あなた好みのおっぱい(曲面)方程式」を作り出してみるのも興味深いのではないでしょうか。PlayerをMathematicaとして使う方法」を利用した)Mathematica版ハロー・ワールドを今日は学んでみました。それにしても、おっぱいの世界は実に奥が深いものですねぇ。この続編が、下記の「エクセルで「バスト(曲面)方程式」を描いてみよう!?」です。Player活用)は敷居が高いだろうから、エクセル版も作ってみました。TweetMathematicaは数式処理を行うためのシステムをLISP風に実装したような「プログラミング言語」です。「Mathematicaにおけるプログラムの高速化手法)」は色々ありますが、今日書くのは「お気楽・超簡単な、Mathematicaのメモ化(memoization)関数作成テクニック」です。メモイズ(メモ化=memoization)は、呼び出し時引数と結果をキャッシュし、次回呼び出し時の再計算を不要にする」というテクニックです。膨大な回数の計算を行うように見えて、それらの計算の中で「何回も同じ計算(=引数が同じ関数の呼び出し)」が行われている場合、メモ化を行えば処理時間を大幅に短縮することができます。「お気楽・超簡単なMathematicaのメモ化(memoization)関数作成テクニック」は、たったこれだけ(のコード)です。f(x)つまり、(たとえば)xを引数に持つ関数hoge[x]の遅延評価呼び出しで宣言しつつ、「遅延評価が行われた際には、その引数による計算をした上で、その計算結果で(呼び出し引数)に対する関数の”(即時)定義”を行う処理を行うように書く」ことで、「呼び出し時引数と結果をキャッシュする関数」を定義することができる、というわけです。計算するのには、耐えきれないほどの時間が掛かってしまいます。2]fib[100]の計算結果は一瞬で"354224848179261915075"と表示されるはずです。Mathematicaは関数(というかシンボル)呼び出し時は、常に引数に「パターンマッチング」を行った上で、「(パターンマッチングの結果に応じて)どのような処理を行うか・どのような値を返すか」を行うかを判断・切り替えます。そのため、上記のようなコードを書くだけで、関数の引数に応じて計算を行ったりキャッシュ値を返したり...という処理を(いともたやすく)実装することができるのです。「(膨大な回数の計算を行うように見えて)実は何回も同じ計算をする」という処理をMathematicaで書く場合には、こんな「お気楽・超簡単なMathematicaのメモ化(memoization)関数作成テクニック」を使ってみると、きっと驚くほどの高速化が実現できるはずです。GeoGebraというソフトがあります。数式を入れると、その数式に対応するオブジェクトが表示され(数式を変更するとそれに応じてオブジェクトも変形し)、オブジェクトを移動、変形させると数式も自動的に変更される...というソフトウェアです。版の開発も進められています。5のブラウザ上で動くWEB版も開発されています。このWEB版GeoGebraにアクセスすると、アニメかマンガのヒロインみたいな女の子周りの視線計算をすることができます。描き出されること自体はごく当たり前の「幾何学」であったとしても、その幾何学が描くキャラクターが格好いい女の子!となると、意外なほどに目を惹き・面白く感じてしまうものです。ハロー・オッパイ!のように、「目や心を惹く何か」を数式で描き出し、それを動的に動かしてみる...という世界が似つかわしいのかもしれません。「ミニスカートの幾何学」カリキュレータを作ってみました。いうものかというと、「ミニスカートの幾何学~32cmの攻防戦~」の計算をユーザがグラフィカル・ユーザーインターフェースを使って自由に行うことができるものです。具体的には、「階段の角度」や「スカートの長さ」を自由に変えて、ミニスカートの幾何学を勉強することができる、というものです。インタラクティブに図示した図を(大雑把に言えば)、パラメータを適当に動かすことでアニメーションにする...という具合で作られています。Hirabayashi)ムダサイエンティスト(他称)。(サイエンス・アイ新書)」など。