- ベストアンサー
複素数の固有値の求めるプログラムについて
ranxの回答
- ranx
- ベストアンサー率24% (357/1463)
一部訂正。 typedef double[2] complex; ↓ typedef double complex[2]; ですね。(最近Javaばかりやってたもんでつい...。) コンパイラによっては、 typedef double *complex; でないと、関数定義が通らないかもしれません。
関連するQ&A
- 行列の固有値と固有空間
R= cosθ -sinθ sinθ cosθ の行列の固有値、固有空間を求める問題なのですが、(θは実数) 複素数の範囲で考えるといわれたので、とりあえず、固有値を求めたら、λ=cosθ±isinθ となりました。 このあとをどうしていいのかわからないんです。 本で調べてみたら、sinθ=0のとき、固有空間は全空間。 sinθ≠0のとき、・・・は、理解できなくてわからなかったのですが、 どうしてこういう場合わけをして、こうなるのかわかりません。 よかったら教えてください。
- ベストアンサー
- 数学・算数
- エルミート行列以外にも固有値が実数になるか
http://okwave.jp/qa/q8156118.html に「エルミート行列の固有値は必ず実数になる」ことが証明されていました。 その内容の逆「実数の固有値をもつ行列はすべてエルミートである」は真でしょうか。 すくなくとも「エルミート行列以外にも固有値が実数になる」と言えれば、事例があれば、「エルミート行列の固有値は必ず実数になる」は真ではなく偽となるでしょう。 偽が明確になるとブラケット演算に偏りがちな量子力学に新たな発展の道が生まれると思います。複素数でシュレディンガー波動方程式の解を考えることに意義が生まれます。私はトンネル共鳴現象やエバネッセント波もそうではないかと思うのです。エバネッセント波という光子の現象がありますが、光速度が0で、あるミクロンの領域だけに明るい領域ができたり、物質に吸引や反発力を作用しています。
- 締切済み
- 数学・算数
- Cでの複素数の表し方
lapackで行列の固有値を求めようとしています。言語はCです。 行列要素を入力したいのですが、例えば A[2]=c2*sqrt(3)fi (c2はdouble型の定数)と入力してもfiの部分を読み取ってくれません。 ただ、これを数字で入力(例えば、A[2]=2.34fi)すると、きちんと虚部を認識してくれます。 どこが間違っているのか、どなたか教えて下さい。 また、説明不足がありましたらご指摘下さい。
- ベストアンサー
- C・C++・C#
- CLAPACKでの複素数の扱いについて
CLAPACKを使って連立一次方程式、固有値問題を解くプログラムを 作成しています。dgesv_などの倍精度浮動小数点に対するルーチンは 扱うことができたのですが、複素数に対するルーチンを扱うときに 引数等をどのようにしたら良いか全くわかりません。分かる方が いたら教えてください。 使用言語はC言語で、複素数の定義は struct complex{ double real; double image; } としています。
- ベストアンサー
- C・C++・C#
- 非対称行列の固有値と正定値性について
画像にあるように、非対称な行列について質問があります。 ある英語の本の問題で、画像に書いてある行列について以下のような問があります。 Is the matrix positive definite? (これは正定値行列ですか?) 正定値行列がわからなかったので、調べたのですが、普通は対称行列に対して求めるもので、非対称な行列に対してそもそも取り扱われていないようでした。 また、正定値行列は固有値が全て正であるとのことだったのですが、この行列の固有値を求めたところ、複素数が出てきました。 これって正定値行列かどうか、判定することができるのでしょうか?
- ベストアンサー
- 数学・算数
- C言語の複素数についてです。
C言語で複素数を使うことになりましたが、複素数をプログラム上でどう使うかわかりません。 粒子の複素屈折率を計算してシミュレーションするというものです。 その複素屈折率は 0.57+2.74i と表されます。iが虚数です。 一般的にCプログラムで複素数を使えるようにする一番簡単な方法はなんでしょうか? 具体的に参考にできるプログラムコードとかあれば是非教えて下さい。 #define complex とか使うのでしょうか? おそらくcomplexというものを使うんだとは思います。実数部と虚数部を分けて考えるのでしょうか。 C言語、いまいちよくわからなくて……どなたか詳しい方、教えて下さい。
- ベストアンサー
- C・C++・C#
- fortran 固有値
プログラミング初心者です。 http://www.netlib.org/toms/496 ↑このサブルーチン(複素数からなる行列の固有値と固有ベクトルを求めるプログラム)を使いたいのですが、勉強不足のため、それすらできません。多分、配列の宣言の仕方がまずいと思うのですが… mainプログラムはどのように書けばいいのでしょうか? よろしくお願いします。 行列は3*3で試しています。 ↓これが今のプログラムです。 complex A,B,X,EIGA,EIGB integer N,NA,NB,NX,ITER dimension A(N,N),B(N,N),X(N,N),EIGA(N),EIGB(N),ITER(N) logical WANTX N=3 NA=3 NB=3 NX=3 A(1,1)= : A(3,3)= call LZHES(N,A,NA,B,NB,X,NX,WANTX) call LZIT(N,A NA,B,NB,X,NX,ANTX,ITER,EIGA,EIGB) end
- ベストアンサー
- その他(プログラミング・開発)