タグ

mathematicaに関するGlnのブックマーク (6)

  • マンデルブロ集合をOpenCLで描く(Mathematica) | 配電盤

    CUDAを使ってマンデルブロ集合の描画を3桁速くする方法を以前紹介したのですが、同じことをOpenCLでやってみます。NVIDIAのGPUを搭載していないノートPCを使うことが多くなった自分用のメモでもあります。書き換え方は、OpenCLLink プログラミングで紹介されています。 書き換えたコードは以下の通りです(RSSリーダーでは表示されないかもしれません)。 最初に作成したコードをCore i7-3612QM 2.1GHz上で実行するのと比べて、ここで作成したコードをIntel HD Graphics 4000上で実行すると、3桁くらい速くなります。 Manipulateを使ってインタラクティブに描くコードは以下の通りです(RSSリーダーでは表示されないかもしれません)。 似たような話がMathematicaのマニュアルにも載っていますが、ここで書いたコードなら、描画の中心もインタラ

    マンデルブロ集合をOpenCLで描く(Mathematica) | 配電盤
  • Zernike多項式 - その9 Mathematicaのコード:腰も砕けよ 膝も折れよ:So-net blog

    さて、それではMathematicaのコード体。とはいうものの、誰がいったい待っているのか、超マイナーサンプルコード。まあ、MathematicaのPackageのサンプルとして見られないことはない。 体その他のアーカイブ。 いつものようにzip解凍してできたtarファイルを % tar xvf zernike.tar で展開すると % ls -l total 224 -rw-r--r-- 1 decafish decafish 61440 4 7 13:04 ZernikePolynomials.m -rw-r--r--@ 1 decafish decafish 39999 4 7 13:02 ZernikePolynomials.nb -rw-r--r--@ 1 decafish decafish 10576 4 7 13:01 example-i.nb % の三つのファイルができ

  • Zernike多項式 - その8 使用例その2:腰も砕けよ 膝も折れよ:So-net blog

    前回、比較的簡単な単位円内の回転対称な関数をZernike多項式を使って展開した。もうひとつのちょっとだけ違った例。と、また例によって限界について。 もうひとつの例 さて、ではもうひとつの例として同じ円筒型で中心位置をずらしたもの (1/4,0)の位置を中心として半径1/2の内部は1 その外は0 でやってみる。 これは回転対称にはならないけどy方向には対称になっている。同じように80個までで係数を計算すると、 In[78]:= coef2=Table[ (Integrate[zernikeCartesianPolynomial[p][x, y], {x, -1/4, 3/4}, {y, 0, Sqrt[1/4 - (x - 1/4)^2]}] + Integrate[zernikeCartesianPolynomial[p][x, y], {x, -1/4, 3/4}, {y, -Sqrt

  • Zernike多項式 - その7 Mathematica関数を使う:腰も砕けよ 膝も折れよ:So-net blog

    ちょっと時間があいたけど前回の続き。今日は使用例。 使用例 いつものようにZernikePolynomials.mを$PathのどこかにOpticsフォルダを作ってそこにコピーする。そのあと Needs["Optics`ZernikePolynomials`"]; として読み込む。 Packageで定義されたシンボルは で確認できる。usage messageも書いてあるのでシンボルをクリックすると簡単なヘルプが表示される。 とりあえず例えばfringe orderで最初の16項を極座標とデカルト座標で書いてみると あってるかどうかは、まあ僕が20年近く使っているのでおっけーでしょう、たぶん。 トリビアルな関数の展開例 実際に単位円の中で定義される簡単な関数をZernike多項式で展開してみよう。 例のひとつ目は、 原点を中心として半径1/2の内部は1 その外は0 というような円筒型の関数

  • Zernike多項式 - その6 Mathematica関数の中身:腰も砕けよ 膝も折れよ:So-net blog

    前回やったZernike多項式用のMathematica関数。その中身について。 Packageの中身 Mathematica Packageの中身は見てもらうのが一番手っ取り早いけどいくつか特徴的なところを上げておく。 動径関数は zernikeRFunction = If[TrueQ[$VersionNumber >= 6.0], ZernikeR, zernikeRGeneralFunction]; となっていて、バージョンをチェックして6.0以上だったら組み込みのZernikeRを使い、以下なら式-12を展開したものを使うようにしている。従って6.0以前でもこのPackageは利用可能(のはず)である。 デカルト座標での式は極座標から変換している。 Expand[TrigExpand[ zernikePolarDoubleIndexedPolynomial[n, m][r, t]]

  • Zernike多項式 - その5 Mathematica関数:腰も砕けよ 膝も折れよ:So-net blog

    横浜の家から仙台の貸しマンションに戻ってきた。 昨日のピアノの発表会での娘はショパンのプレリュードOp.28の一番最後の24番ニ短調。全然練習してない上に、先週は泊まりがけの新入社員研修でピアノにさわってない状態だというわりには一カ所弾き直した以外はミスタッチもほとんど無く、面目は保っていた。その点はたいしたもの。しかし音楽はショパンの「プレリュード」というよりは「鉄工所」あるいは「京浜急行のガード下」「NCドリルマシン」とでも言うべきものだった。まあ、彼女はそういうキャラだし。 さて、気を取り直して光学の計算で使いやすいようなZernike多項式のMathematica関数を書く。 MathematicaによるZernike多項式の表現 Mathematicaには6.0から標準関数としてZernikeRが導入された。これは動径関数Rnm(ρ)そのものである。 Zernike多項式は動径関

  • 1