サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
TGS2024
d.hatena.ne.jp/mscp
スクリプト前回は Lisp を C/C++ から動的に扱いましたが、今回は Python で同じことをやってみましょう。Python のほうがコードが複雑に見えるかもしれませんが、こちらはドキュメントが豊富で理解しやすいです。まずは、C/C++ から Python の関数を呼ぶコード #include #include // スクリプト文字列 const char *script = "def multiply(a,b):\n" " return a*b\n"; int main( int argc, const char *argv ) { PyObject *global, *func; // Python インタプリタの起動 Py_Initialize(); // スクリプトの読み込み PyRun_SimpleString(script); // スクリプトの関数への参照を取得
実装 Poisson Image Editing は Siggraph 2003 で発表された画像合成手法の論文です。 http://research.microsoft.com/vision/cambridge/papers/perez_siggraph03.pdf http://portal.acm.org/citation.cfm?id=882269 実際に実装して検証しました。実はこれ、一見難しそうだけど実装は凄く簡単です。論文の中にはたくさん数式がありますが、実装するのに必要なのは (7) 番目と (11) (12) だけです。これ、そのまま解こうとするとドでかい行列を Ax=b の形に持っていって反復法で解くことを想像するのですが、よく見てみると左辺第二項を右辺に移項してやって、両辺を | Np | で割ってやるとそのままガウス・ザイデル法の解法に持っていくことが出来ます。結果
プログラム, 勉強移流方程式 は双曲型に分類される非線形微分方程式で,大抵の場合解析解が存在しません.産業界ではこの方程式の解を時間と空間に離散化して近似計算しています.今回,この移流方程式を数値的にさまざな手法で計算・比較してみました.基本は,まずこの移流方程式の成分をすべて展開してみます すると, を成分とすると移流方程式の核は となることが分かります.つまり, が計算できれば任意の次元に容易に展開出来そうです.今回,この一次元の移流方程式を計算する関数をプログラミングして,その精度を比較しました.評価は,2次元 Rigid Body Rotation で行いました.このテストは,ある空間上の一点を中心として反時計に回る渦の流速場に沿って単純な濃度場をぐるっと一周させるとどうなるかを観測するものです.具体的には,このような 渦巻状の流れにそって,矩形領域を流して一周させ,どれだけ形が
プログラム並列処理はいくつか方法がある。有名所を挙げれば Boost、Java、pthread、OpenMP、MPI、NSOperation、Windows Thread などなど…. その中で、OpenMP と pthread が使えるようになったので比較してみた。今回は円周率πを両手法で効率良く計算することを目指す。使用する並列化の理論の元となる数式は で、積分範囲をスレッド毎に分割することで高速化を実現する。まずは OpenMP を用いたコード #include #include #include #define F(X) 4.0L/(1.0L+(X)*(X)) #define THREAD 2 #define ITERATION 100000000 int main(int argc, char *argv[]) { long double x0, x1, h, sum =
プログラム任意の次数で、スプライン補間をする関数を書きました。ご自由にお使い下さい。補間の拘束条件は、奇数番目の曲線は両端に自然スプライン条件を、偶数番目の曲線は左端だけに自然スプライン拘束条件を与えています。使用するには、GNU Scientific Library のライブラリが必要です。 #include #include #include static double pown( double v, int n ) { return n 0 ? 0.0 : powf(v,n); } static int factorial( int n ) { if( n 0 ) return 1; return n ? n*factorial(n-1) : 1; } /* * order: 次数 * n: 点の数 * pts: プロット値 * c: 多項式の係数 a_1, b_1, c_1
勉強スプライン補間とは、大雑把に言えば多項式 を区間毎に作って、なめらかに離散点を繋ぐ事をいいます。もちろん"補間"ですから、その境目が分からないようにかつ、人間がフリーハンドで繋いだような形になっていればベストです。 具体的な定義と、その生成方法は Wikipedia に書いてあります。http://en.wikipedia.org/wiki/Spline_interpolation その中でも、最大次数が3次である多項式関数で補間した曲線を Cubic Spline といいます。今回、これを手作業で算出する手順を紹介します。とにかくすぐに使いたいって人は既存のライブラリ ( GSL とか ) にあるスプライン補間計算 API を使うと良いでしょう。 具体的な計算例は次の通りです。まず、補間したい点を4点プロットします。 この場合、X = 1, 2, 3, 4 で Y = 2.7, 6,
プログラム並列処理はいくつか方法がある。有名所を挙げれば Boost、Java、pthread、OpenMP、MPI、NSOperation、Windows Thread などなど.... その中で、OpenMP と pthread が使えるようになったので比較してみた。今回は円周率πを両手法で効率良く計算することを目指す。使用する並列化の理論の元となる数式は で、積分範囲をスレッド毎に分割することで高速化を実現する。まずは OpenMP を用いたコード #include #include #include #define F(X) 4.0L/(1.0L+(X)*(X)) #define THREAD 2 #define ITERATION 100000000 int main(int argc, char *argv[]) { long double x0, x1, h, s
このページを最初にブックマークしてみませんか?
『d.hatena.ne.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く