忍者ブログ
20080511~ 13と7と11の倍数の論理積は13と7と11の積の倍数である。 和ァ・・・
[7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

内緒.jpg
んだよjpgかよふざけんなよ!@橋田
(意訳:無理してコピペることもないのよ。バグがあるかもしれないし)



昨日、逆行列を求めるのに
複素数の割り算のときに絶対値とか複素共役を前もって必要としたのと同様に

行列式とか混沌アジョイントとか転置とかが前もって必要で
ネストにしなきゃならないとか言ったと思うんですが

よく考えたら、たとえば行列の足し算で、行列としての変数が2つでなければならない理由なんてないですよね。
3つ目の変数を演算結果の行列とするのもありじゃないですか

それならネストで苦労することもないかも。


でもふと気になったんですが、これはまだ動的メモリ確保もなにもやってないレベルなんですが
変数が確保したメモリ領域ってちゃんと解放されてるんでしょうか
なんかモヤモヤします。



それと、Excelで割りとよくやる計算で、
複素数z全体にマイナスの符号をつけるのに(-zという複素数)
imsub(0,z)
とかいうやり方をよくやるんですが

あまりお気に召していないのです。

スカラー倍だって、スカラーを「何分の1」としておけば、割り算になることですし
行列同士の割り算だって、逆行列を求めて掛け算するくせに。
ベクトルだってクーロンの法則でやるみたいに、r^2に反比例した「ベクトル」を求めるなら
|r|^3というスカラーで割ってやってからの、分子にrというベクトルを掛け算するじゃないですか

ここはもうちょっとなんかこう、足し算の逆元的な表現にしたいなと
いやむしろ二の補数てきな!符号の反転って関数にしたいな。


まあ、二項演算子のままなのは別にいいんです。まだ不慣れだから。
それこそネストしてやりゃあいい
msum(m1,msum(m2,m3))


まあそれいっちゃ、Excelで複素数が配列関数ではなく文字列扱いなのはめっちゃイラつきますがもう慣れました。orz




ライブラリ関数を作るたびに、「lとかいう変数が使われてないんですがそれは」
って警告が増えてピキピキします^ω^#

この警告消したい。l使ってるだろ!いい加減にしろ!
というか、見直したい気持ちはすごくあります。はい



きっとこれから、行列同士の積とか行列式あたりで
行数だか列数だかで割った商やあまりが出てくると思うとオラwktkすっぞなんですが
いかんせん今日は天気が悪いため、あまり乗り気じゃありません

拍手[0回]

PR
複素数の構造体とライブラリがとりあえずできたから

行列とその演算に立ち入ろう

と思ったらいきなりポインタが立ちはだかった。


行列という配列を構造体で演算するというのはどうもマイナーらしい。

よし、じゃあポインタを改めて学べるぞぉ~


え!?ポインタでやる場合ファンクションじゃなくてプロシージャなんすか!?

ネスト大丈夫!?


とりあえずスカラー倍と行列同士の和と差は求まったけど

掛け算やったら次、割り算に行く前に
逆行列に行く前に
転置に行く前に
余因子展開に行く前に
行列式やらなきゃならんですよね!?


つまり
行列A/行列B=A×inv(B)=A×adj(B)/det(B)=A×(t(det,-det,+・・・,det)/det(B))

になるわけですが、まじ不安まーじーでぇー


そして僕の大好きな、行数で割った商とあまりが出てくるんですねわかります
何次元だろうがコンピュータにとっては1次元配列だからね。
いいよなーコンピュータこいつらって無理数の発想とかなさそうで。シンプルな世界うらやましい
Q.お前は惑星ソラリスか!A.いいえ、惑星コンピュータです



暫定かどうかわかんないけど、一旦構造体語でやっといてからポインタ語にコンパイルしたほうがいいかもしんない


GYOとRETUがごちゃ混ぜにならないうちに、defineしておいた。
gyoとretuは当面の間、3か4でdefineしたままでstaticに行こう。こえーもん

拍手[0回]

多次元内の直線とかを、ほぼ統一的に表せて、なんかこう3Dモデリングの際のポリゴンとかに向いてるっぽいことはなんとなく、wikiを見てわかってはいたけど、


実際演習してて分かったのは、
たとえば平面内の直線など、おそらくn次元空間のn-1次元以下の物体を表す式は、色々な表現のしかたがあるということだ。


それは例えるなら、原始ピタゴラス数を説明する際に、
アスペクト比が同じ旧式のテレビでも、インチ数の異なるテレビが無数にあり、
しかもセンチに直すこともできてしまう。

これでは唯一無二の規格とは言えないので、互いに素の整数同士で結ぶ基準が必要がある


というのと似ていると思う。


ヘッセ標準形というのは、たとえば平面内の直線を、原点から直線までの最短距離を明確にするように規格化して数式を唯一無二の形で表現すること。
それにともない、法線ベクトルの向きも二次的、自動的に明確になるという、便利な代物であることがわかった。



学業時代にカリキュラムに含まれていなかったのは、僕が電気電子出身だったからというのもあるだろう。
プログラミングでいえば、構造体やポインタ、オブジェクト指向など、直接関係ないカリキュラムはほとんど含まれていなかった。
数学でも同様に、ヘッセ標準形は直接関係ないのでカリキュラムに含まれなかったのだろう
こういう知識がそこらじゅうに転がっていると思うとゾッとする




いわゆる学者というものは、たとえ分野が細分化された現代においても、少なくとも「物理王に俺はなる」くらいのことはやってて当たり前なのだろう?

拍手[1回]

昨日は言いたいことを一部書き間違えていました。

defineではなくtypedefを知らなかったって書きたかったんです。
疲れてたんですね。


それはそうと、せっかくc言語で複素数の超基礎的な構造体とライブラリ関数を作ったので、
実用は置いといても、エクセルのユーザー定義関数に移植してみたいですよね。

まさかVBに構造体の概念がないなんてことはないでしょうし…うん。


こんな風に部品化していったら、3Dレンダリングツールをエクセルで作るのも楽でしょうなあ

まああくまでグラフで表現するならワイヤーフレームかドットフレームに限られると思いますが。

それでも、ボーンの概念をまとめておくにはうってつけです。

たかが3次かダミーで4次の行列なんで、メモリの動的確保には及びませんしね、安心ですね

あとはあれです、マクロが嫌なら、アドインにできたりしないでしょうか。
それから、配列関数の作り方を学びましょう。コントロールシフトエンターのアレです

クォータニオンの代わりはロドリゲスの回転公式がやってくれるので、複素行列の出番はないですね。
あるいは、ただの行列だと、リソースを食ったり、遅かったりするのでしょうか。
だとしたらパウリ行列としてクォータニオンを登場させてみたらどうでしょうね。それでも遅いかな?



もういっそのこと、クォータニオンの構造体とライブラリを作ったほうがいいんでしょうか


まあ、あくまで自作でアホなことやりたいだけなんで、あまり真面目に捉えないでくださいwwwwww

拍手[0回]

complex構造体を作って
加減乗までやって
割り算をやろうとしたときに、複素共役と絶対値が必要になってくるよね
って必然性でライブラリを追加するあるあるwwww

imdiv(a,b).re=improduct(a,imconjugate(b)).re/imabs(b)/imabs(b);
imdiv(a,b).im=improduct(a,imconjugate(b)).im/imabs(b)/imabs(b);


くっそ楽しいなwwwwwちくしょうwwwwちくしょうwwww

comp型からプログラミング再始動してよかった。
今の今まで、defineがなんなのか、なんのためにあるのか知らなかった・・・


matrix型の構造体を作ることになったら、必然的に動的メモリ確保にもいずれ手を出すことになるだろう


ライブラリを作ってて思った、割りと必然的なオブジェクト指向への要求。
構造体の中に、ライブラリも一緒に配置できればいいよね。
メンバってそういう発想だったのか・・・

やべぇーそのうちまじで再帰とか手ぇ出してぇー
なんなのこの楽しい概念wwwwやっぱお前斎藤っすwwww

拍手[0回]

エルミート行列や対称行列の固有値を求める場合、固有値は必ず実数になる。
また、非負行列の固有値の絶対値のもっとも大きいものは正の実数となる。


これは、5次以上の行列についても言えることなので
5次以上の高次方程式にも、何らかの条件付きで解の公式が存在し
実数解を得る方法が(たぶん代数的に)存在することを示している(たぶん)



固有値を求めるアルゴリズムとして有名なのは、ヤコビ法なのだろう。
固有ベクトルもおそらくヤコビ法がメインだと思う。


が、固有値が重複した場合、ジョルダン標準形が必要となるかもしれず
ヤコビ法だけでは困難かもしれない。


ここに、ジョルダン標準形が必要になる行列を例として挙げる。
 

もはや対称行列でも非負行列ですらないので、ヤコビ法は使えないかもしれないが
ソルバーなどを使って実数直線か複素平面をてさぐっていれば、零点は見つかることだろう。
とりあえず固有値は求まる。


しかし、問題は残る。
固有ベクトルを求める方法はどうなるのだろう?

ジョルダン標準形を算出するコンピュータのアルゴリズムは存在するのかどうか知らないが
手順を見ると、えらく抽象的な内容で、これをコンピュータにさせることはできるのだろうか
と思える内容だった。


そこで、ためしに、少し行列の中身をずらしてみた。

当然、固有値も少し変化し、最大の利点は3次の行列で3重でも2重でもなくなったことだ。
ランク落ちを考慮する必要もない。と、思う

このようにすれば、ヤコビ法でも対角化可能で
ジョルダン細胞は出番すらないらしい。


行列の中身をランダムに選び、その組み合わせから固有値・固有ベクトルを算出する場合
ジョルダン標準形が必要になる確率はぐっと低くなるだろう。


もちろん、根本的にジョルダン標準形が必要な理論であれば仕方がないが
大概の数値計算において、ジョルダン標準形は避けて通ることができるのではないだろうか。


ライブラリの中の固有値・固有ベクトルを求める関数は、僕の知る限りでは
非対称行列に対応していなかった。
もしかしたらジョルダン標準形に関しても、同様なライブラリのままで、ジョルダン標準形には未対応なものが多くあるかもしれない。


昔、物理にはあまり整数論は出てこなかったような気がする。化学にはあったが。
整数論が幅を利かせだしたのは量子力学が脚光を浴び、原子サイズ以下のミクロの現象をガチで考慮し始めたあたりからではないだろうか。


もし、ジョルダン標準形や線形従属・線形独立(ランク落ちやカーネル・イメージ)といった概念が、行列における整数論のような立ち位置であるならば
まだあまり使う機会がなくてもおかしくないのではないか


ただ、べき乗がつきまとうので、チリが山に積もる危険性はぬぐいきれない。かな

拍手[0回]

そういえば、ジョルダン標準形にする際の対角「化」行列P(≠対角行列λ)
って規格化してユニタリにってできないですよね。

隣の固有ベクトルまで巻き添えになって連動しちゃうので、おそらくできないんでしょうね



あ、そういえば。
非対称(非エルミート)行列を対角「化」する行列Pって、
規格化できるとは限らないんですかね?
というか、規格化できたように見えても、それは対角化のための行列ではない感じでしょうか。

Pの行列式が全然1になりませんし、逆行列もなんか変です

今回やった(実数)行列の例では、規格化せずともPの行列式が1になって
でもそれはユニタリではないので、転置(エルミート共役)したものが逆行列ではなかったんですよ

そんなことってあるんだなぁ

拍手[0回]

どうも、こういう規則性があるらしい


 
定数を微分するのは気が引けるけど、なんか楽に書けるので、微分表記してみた。

n次の行列だったら、0階からn-1階微分まであり得るのかな?

拍手[0回]

ふと思ったのですが、ジョルダン標準形を必要とする行列というのはどのくらいニッチな需要なんでしょうか。


ありふれているのか、それとも、一部のマニアな行列さんにだけウケる商品なのか。

たとえば、
ジョルダン標準形を必要とする行列と、それとほんのわずかだけ異なる行列があったとして
その場合、固有値は重なっているように見えても厳密には重なっておらず
したがって固有ベクトルを求める際も、単なる対角化を求めれば済む

ということになるのかならないのか。


サポートが切れてしまって今現在使えないエクセルのアドインで
複素行列に関するライブラリとも呼べるユーザー定義のような関数群があったのですが

行列に実数のランダムな値を入れている限りは
ジョルダン標準形を意識することはなく
気づくこともありませんでした。

まあ当時は存在そのものをほとんど認識していなかったのですから、
気づかないのは当然かもしれません。

しかし、実際、その行列の固有値・固有ベクトルを求めるのにどんな方法を使っていたのか
「ヤコビ法らしい」こと以外はわからず
ヤコビ法のアルゴリズムにも当時はあまり興味がなかったため

まあなんか、「エルミート行列じゃなかったらちゃんと計算されないんだね」
程度の認識しかしていませんでした。


もうちょっとよく観察できたらよかったな・・・
あいつが生き返ってくれればまた使役してあげるのに。


はたして、ジョルダン標準形というのは行列における整数論のような存在なのか否か。

ヤコビ法ははたしてどの範囲まで着実に計算してくれるのか。

ジョルダン標準形を算出するコンピュータのプログラムは存在するのか

エルミートやユニタリとどのような関係があるのか。

高次元の回転との関係はあるのかないのか

ペロンフロベニウスの定理との関係はあるのかないのか



わからないことだらけです。

「謎は解けるばかりか深まっていくばかり」とはよく言いますが
じゃあ逆に「なぞはすべて解けた!」という状況はいかほどあるのでしょうか


イメージとカーネルはわからないし
ランクの計算だっていつだって計算間違いできるよ!

拍手[0回]


一筆書きできる条件は、次数が奇数のノードが0から2つまで。

一筆書きする方法は、奇数次数ノードから始める。
奇数次数ノードが2つなら、終点も奇数次数ノード。
奇数ノードが1つなら、どこで終わってもいい。
奇数ノードがなければどこから始めてどこで終わってもいい。

以上

拍手[0回]

とりあえずちょっと訂正

x^4-x^2+px=0
の解は


であることが、フェラーリの方法からわかった。

カルダノの方法と比べると
λ(λ^3-λ+q)=0
 
なるほどそっくり。

xの絶対値がとれればなあ
あとなんで偏角を3じゃなく2で割ってるのかよくわからない
まあ4次方程式(4分角の定理)だから必要っちゃ必要な手順なんだろうけど、これと符号の件は関連するのかしないのか

理想としては
3じゃなく2で割りながら、符号も含めて一致させたい

もしかして、6分角の公式とかが必要だったりするんじゃねえだろうな
でも6次方程式が出てきたら手に負えんぞ。せめて複3次とかで勘弁してほしい

拍手[0回]

昨日の続き
とりあえず符号は置いといて計算を続けます。



3倍角の公式より


なので


また、二重根号の中身の分子は以下のように因数分解できるため、二重根号は二重根号たりえないことがわかった!

 


倍角(半角)の公式も使って簡素化していく。


として、加法定理を用いて係数を比較すると



よって、


(符号はあとで考える)
というのが、x^4-x^2+px=0の解だと思いますたぶん

拍手[0回]


まあ、単にλ^4-λ^2+pλ=λ(λ^3-λ+p)=0ってだけです。
違うのは、λ=0も解に含まれることですね。


カルダノの方法を純粋に使ったやつと
カルダノの方法を含んだフェラーリの方法とでやって検算してました。



いちおうここまでは合ってるっぽいです。

ここでいうA41というのはλ^3-λ+p=0のpのことです。

θとA41は、次のような関係があるのですが
つまりA41の範囲は|A41|≦2/3/√3になります

これをそのままA41に代入すると、時折符号が反転する(いつもではない)不具合が出るうえに


(赤い±だけ複号同順でない)
ここまで整理したところで、二重根号をどうやってほどけばいいのか難儀してます。

拍手[0回]


複二次な四次方程式の実数解を解析的に解いて、幾何学的な意味を求めるところで力尽きました

規格化された特殊ユニタリ生成子を全部線形結合させたエルミート行列の固有値
を求める方程式は

n-1次の係数がゼロ、n-2次の係数がマイナス1になるため

たとえば4次だったら

λ^4-λ^2+pλ+q=0
といった風になります。

そのうち、p=0に限定したのがこの図となります。
実数解であるために、エルミート行列は0≦q≦1/4を要求する。
(4分角の定理が大変参考になりました)


見ての通り、四次とはいっても、パウリ行列系に毛が生えた程度の二次っぽさなので
対称性がまだすごく高いです。


 
pもqも一般化する前に

q=0で3分角の定理を適用した3次方程式に立ち寄ってみましょう
こちらではちゃんと固有値の対称性が破れてくるんですよね。



カルダノは空で言えるのに
フェラーリはまだなのよね~

どうしても煩雑になってしまう。
(手書きでやってるからかもしれないけど)

p、qともに一般化したら、円がどんな風になるんだろう
1つ増えた自由度で、半径が変わるのか、偏角が変わるのか
それとも平行移動したりするのか

やっぱり解析解を見るのが一番手っ取り早いんだろうなぁ

しかしそれ以前に、二重根号をほどけるかどうかが心配デース

拍手[0回]

8cos^4(θ/4)-8cos^2(θ/4)+1-cosθ=0

を、cos^2(θ/4)=Xとした2次式を解くのは問題なくできる。

cos(θ/4)=±cos(θ/4)、±sin(θ/4)は出せたし

たぶんsin(θ/4)=±cos(θ/4)、±sin(θ/4)だって出せると思う。

でもこれを4次方程式としてフェラーリとカルダノで解くのは結構煩雑

どっかでミスる気がする。というかミスってるのかどうかすらよくわからない。
どの程度細かくしてバグを取ればいいのか。細かくしたら切りがないぞ


もし、4次式が2次式を参考とかゴールフラグにできれば少し荷が軽くなっているのかもしれない。


でも、僕が解きたいのは4分角の定理そのものじゃなくて

4分角の定理を踏み台にした、4次の特殊ユニタリ生成子のエルミート行列の固有値の解析解なんだ。

当然、1次の項が出てきて邪魔なので、複2次として解くことはできなくなる。

1次の項が出てきてもなお、何かしら幾何学的な法則がないか、知りたいんだ。


4次方程式は、内部に3次方程式と2次方程式をマトリョーシカのように搭載してるからなぁ
解析解を求めるとなると記号の付け方がどうしても煩雑になるんだよ。




ちなみに、エルミート行列の固有値を求める方程式を、解析的に整理するのはほぼほぼ諦めましたorz
ミスが多すぎて太刀打ちできない・・・

とりあえず実数解を4つ持つ係数の4次方程式を仮定して、ってやるつもりです


5次?そんな高望みはしません。^^#
そういえば、5次方程式のwikiがあるんですね。何書いてるのかさっぱりわかりませんが!

拍手[0回]



忍者ブログ [PR]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
ブログランキング
ブログランキング参戦中
にほんブログ村 アニメブログ 深夜アニメへ
にほんブログ村 漫画ブログ SF・ファンタジー漫画へ
にほんブログ村 科学ブログ 自然科学へ
よかったらポチッとお願いします^^
最新CM
[12/30 buy steroids credit card]
[09/26 Rositawok]
[03/24 hydraTep]
[03/18 Thomaniveigo]
[03/17 Robertaverm]
最新TB
プロフィール
HN:
量子きのこ
年齢:
43
性別:
男性
誕生日:
1981/04/04
職業:
WinDOS.N臣T
趣味:
妄想・計算・測定・アニメ
自己紹介:
日記タイトルの頭についてるアルファベットは日記の番号です
26進数を右から読みます
例:H→7番目、XP→15(P)×26+23(X)=413番目。
A=0とする仕様につき一番右の桁はAにできませんのでご了承くださいズコー
バーコード
ブログ内検索
アクセス解析