凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

数値計算

C++で2次元ポアソン方程式を解く

前回のエントリ(d:id:hecomi:20100717:1279390033)では1次元のポアソン方程式を解いたので2次元を解いてみようと思います.理論は2次元になっただけでほぼ同じです. 使用プログラム ベクトルセット等: calc.h 3次元プロットに対応したCGnuplot: gnuplot.…

C++で1次元ポアソン方程式を解く

理論 シンプルなタイトルですが,やってることもシンプルです.まずは1次元ポアソン方程式を見てみましょう. ここでVはポテンシャル,xは位置,ρは電荷密度,εは誘電率です.式を見ると微分が含まれていますね.コンピュータで微分を解くためには種々の方法…

boost::lambdaを使って2行で方程式の解を求める

方程式の答え簡単に出ないかなー…,と考えてるあなた.boost::lambdaを使えば「2行」で解けます. boost::function<double(double)> f = _1*_1 - 3*_1 + 2; // f(x) = (x-1)(x-2) std::cout << root(0.6, 1.3, f) << std::endl; // 1 /* std::cout << root(1.3, 2.4, f) << s</double(double)>…

boost::lambdaで積分計算 其の二

前のエントリ(d:id:hecomi:20100712)で,「boost::lambdaで積分計算」というソレらしい題名を付けたにも関わらず,sinやcosにバインドしただけ.というお粗末な内容になっていたので,今回はもっとガッチリとやってみます. 関係の無い人は聞き流して欲しい…

boost::lambdaで積分計算

boost::lambdaについて boost::lambdaはC++でlambda expressionを可能にしてくれる,なんというか非常に気持ち悪いながら,強力且つ便利なものです. 記法については,boostのページ(http://www.boost.org/doc/libs/1_35_0/doc/html/lambda.html(自分は余…

C++による線形補間

MathcadをC++に翻訳しよう,という試みをしているので,積分やら挟み打ち法によるroot計算やらを実装したいのですが,その一貫として線形補間クラスを作成しました. 中身は至ってシンプルで, x, y配列(vectorなど)を与える それぞれの配列が2個以上デー…