数値計算

1つの関数から2つの値を引き出す

諸事情によりポインタ使って関数から二つの値を返ってくるようにしました。連立方程式を解いてるんでしょうがない。両方一辺に動かさないといけないんで。 関数っていうのは、ある入力に対して1つの出力を返すように出来てる都合上、複数の返り値を手に入れ…

連立方程式をRunge-Kuttaで解く

2階の方程式を間に変数を咬まして1階の方程式2本にして、それをベクトル方程式で解けばおk。更に高階になったら階数-1の次元を持つベクトルを作って、それを行列方程式にしちまえばおk。 例えば、 とかなら、Yというベクトルを、 にして、 とかいう風にすれ…

数値積分

台形公式とかSimpson則とかあって、Numerical Recipes見ると色々と出てくるのだけどなにがなんだか良く分かんないのでこの辺を参考にしてみる。無断リンクだぜ。 http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/Intro2Basic/Simpson.html http://akita-nc…

テンソル解析の記号と行列の積

行列のかけ算は、テンソル解析の書き方で書くと、 ですね。ここでEinsteinの総和規約を使ってます。 っつーことで、数値的に行列の積を求める場合はこれを書き下すだけでOKです。実際かなりふざけたコードになります。なんつーか上の式そのまんまみたいな。 …

CLAPACKで固有値固有ベクトルを求める

やったー、やったよままん、自分でコード組んでCLAPACK動かせたよ。固有値求めるところまではうまくいったんだけど、その後の固有ベクトルを求めるところが上手く行かなくて、ずーっと試行錯誤してて、最終的に作業領域の大きさの指定の不整合で上手くいって…

CLAPACKのルーチンの名前のつけ方

頭の文字でどの変数の型かを選ぶみたいです。zだと複素数で、dだと倍精度実数みたいな感じです。 その次に、行列の種類を選ぶみたいです。一般行列はgeで、エルミート行列なたhe、対称行列はsyでみたいです。 そして最後に求めるものを選ぶ感じです。ぼくの…

色々とあるのです

今日も数値計算です。 どうやらC++のプログラムで、exten "C"とかやって、そこから何かを書くと、その部分はC言語のコンパイラを呼び出してコンパイルしてくれるらしいです。なんつーかこの一週間で数値計算についての知識がかなり増えました。 そして、どう…

固有値と固有ベクトル

なんつーか、固有値に複素数を許す場合の固有値の問題がすげー楽しいです。 別に行列が複素数でなくても固有値が複素数になるような場合は沢山あります。今、行列Aを、 として、固有値をλとすると、固有方程式は、 になります。 ここで中学とか高校でもやる…

CLAPACK使ってみた

取り敢えずサンプルを動かすのには成功しました。参考にしたのは、 http://www.k.mei.titech.ac.jp/~stamura/NumericalComputation-Tips.html#compile-LAPACK http://www.cazoo.jp/calcsoft/library/lapack/clapack/usage/dgeev/index.html で、上の方はコン…

C言語で複素数を扱う

Numerical Recipesをはじめ、色んなところで、C言語では複素数をサポートしてないので、実部と虚部を構造体のメンバにして、そいつらの間の計算の規則を云々とか書いてあるわけだが、そんなダサダサなことしないで、人様の作ったパッケージを使った方が良い…

LAPACKインスコした

なんつーかLAPACK++のインスコに挫折しました。だってmakefileどうやって書けば良いか分かんねーんだもんよ。でもってLAPACKの方には既にLinux用のmakefileが入ってるので、それを使いましたよ。 っつーかLAPACK++のマニュアルが超不親切で、「makefileの設…

固有値固有関数

なんつーか、訳あって固有値固有関数を数値的に求める必要が出たのですね。それでMathematica使ったら、N次の正方行列をAとして、 Eigensystem[A];とやったら、それだけで、 {{Eigenvalue1, Eigenvalue2, ..., EigenvalueN}, {1st_Element_of_EigenFunction1…

やること大杉

現在境界値を出す作業をしてます。 特異摂動法をさらにややこしくして、さらに境界層内部をすげー回りくどい解き方で解いてるので、境界層外縁での境界条件がど偉いことになってます。もうね、今シナリオを書いてるんですが、4つくらい手続きを経ないと到達…

行列方程式の固有値問題の構造

これまで固有値問題って何となく固有値を決めて、それを方程式にぶち込んでってやってたんですが、行列を扱うようになってからちゃんとしたformulationが必要になりまして、ちゃんとやることにしました。 今、解くべき方程式は、 で、ここで、解を、固有ベク…

高階微分方程式の数値解法

一般的に微分方程式っていうのはモデルから出発した場合かなり荒い形をしていて、それが計算機で直接扱えるようなものではなかったりします。が、それをどうにか頑張って、近似したりして線形化したりして、Strum-Liouvilleっぽい形にすることが出来ます。変…

行列のかけ算をします

なんかしらのものをFourier変換して波数空間に持ってく訳ですが、波数はkなんですね。同じようにテンソル解析の添字にもkが入ってくるのですよ。っつーことで、これを計算機に移して動かすときにはどっちかを大文字にしないといけなくて何かいけてねーなって…

やっと行列ができました

数値計算が煮詰まりまくりんぐで、エディタの画面を見てるだけでムカムカしてきます。液晶パネルぶん殴りたい感じですが、これ壊したらO(104)円位の金を取られるのだろうなと考えるとそこまで踏ん切りがつきません。 何とかかんとかやっと正しく行列が組めた…

添字の集合のお話

以下、僕の今日のノートの写しです。何つーか、字が汚いので後で読んでも解読できないんっすよね。 添字の集合Uを考える。 その部分集合として、nこの元を持つV1、V2を考える。そこからpこの元を抽出し、新たにv1とv2という集合を生成する。 v1とv2の元を比…

行列を捻り出す

6次元正方行列の小行列式を新しい、20次元の正方行列の要素にしてっていうのをこれからやります。 でもって、それが結構厄介です。 main分の中でうだうだうだーって書けば良い気もしますが、そんなことしても分かりにくくなるので、いずれ外部に関数として放…

今日の予定

そして今日はこれから6つに切られた配列から3つを選ぶプログラムを作成します。次はその名付けられた配列を辞書的に並べ替えるプログラムを作ります。この辺が妥当な線でしょう。その次に小行列式から生成される行列を作るのですが、これはまあ明日か明後日…

行列式むきーーー

つーことでこれからコーディングを開始します。辞書的配列が扱えるのか、行列のかけ算を正しくできるのかから始めます。なんつーか前進差分しかやったこと無い人なので。 なんつーか色々と考えた結果、検算をする段階では実際にかけ算なんてしなくていいし、…

それらしいのが出たっす

数値計算が色々と微妙です。っていっても大体核になる所のコーディングは終わったので、今度は数学的な考察をもとに何をするべきなのかを考えるのですが、何かやること忘れた。なんだっけな。中立安定曲線出すんだっけ。確かそうだった気がする。でもって中…

複素数を戻り値にとる関数

何つーかeiθみたいなのを関数にしたいんですけど、これって出来るのだろうか? 確かC++では複素数は構造体として扱われたと思うんだけど、複素数を戻り値に取る場合は、complexとかで良いのかは甚だ疑問が残る所。なので、ちょっと調べてみる。っつーかこの手…

サンプル書いてみる

取り敢えず操作方法は分かったので、サンプルのコードを書いてみた。やっぱプログラミングの技術は向上してるらしく、文法ミスはない模様。っつーかプログラミング始めた頃に比べれば随分他人にも分かりやすいコードの書き方してるよなあって思う。でもまあ…

C++でファイルストリームを扱う

C++ではファイル操作とは言わないらしい。何かファイルへの入出力っていうことでファイルストリームとか言うみたい。でもって、ストリームっていうのは入出力っていう理解で良いんだろうか?まあ当面は使えりゃ良いんでどうでもいいんだけど。 でもって、ファ…

複素数を扱う

何かC言語で複素数を扱わないといけなくなりました。確かCでは複素数は1×2の配列で定義されてるんだよなあ。結構面倒くさいことになってた気がする。Fortranだともっと楽に使えた気がするんだけどなあ。ちょっと調べてみるかなあ。C++では実装されてるんで、…

キタコレ

数値計算きたっすよ。いい感じです。ドンピシャです。滑らかです。論文クオリティです。ガンガってpublishしまつ。とりあえず中ボスに報告です。その前に全部のケースで試してみるという作業がありますが。でもこれで漸く修論の軛から逃れられそうです。全然…

きてます

いい感じです。どんぴしゃです。別の条件も同じ感じでやってみよう。すげー、俺すげー、マジですげー、よくやった。

アウトオブオーダー

数値計算とっとと終わらせたいんで、ちょっとだけ真面目にやってます。やっぱ残した仕事はとっとと終わらせたいからな。ということで、フローチャートを書いてますよ。俺もフローチャートを書ける人間になったなあとちょっとだけ感心してます。っつーかチャ…

シンプルにやろうかと

これまで難しいことをやろうとしてどつぼに嵌まってたきらいがあるので、シンプルにやろうかと思います。なんつーか5次多項式による補完とかいってお前馬鹿ですかって感じです。そんなの平均値をとるのと大して変わらねーじゃねーかと。 そしてやっぱ問題な…