より長いコードの一部として、複素数の引数である量phi1とphi2(サイズ128x128の行列)が得られます。今はMATLABで以下の量を定義する: matlabのtan inverseが正しい値を与えない
alpha=phi1-phi2;
S1=cos(alpha);
S2=sin(alpha);
K=atan2(S2,S1);
今、Kは、αに等しくなければなりません。したがって、行列Bは、次のように定義されます。
B=K-alpha;
はゼロにする必要がありますが、結果は異なるものになります。 Bのいくつかの要素はゼロであるが、それらの多くは6.2832(すなわち2pi)の値を有する。 これがなぜ起こっているのでしょうか?
実際、phi1とphi2はMATLABで角度評価されます。したがって、その範囲は-piとpiの間にある。アルファを評価するとき、値の範囲は-piとpiの間にはありません。したがって、atan2は正確なアルファ値を与えていません。しかし、事実は、ベータ= phi1 + phi2を与える別の式があるので、正確なアルファ値が欲しいということです。私の主な目的は、S1とS2とベータ方程式からアルファを導出してphi1を評価することです。そのためには、正確なアルファ値が必要です。しかし私が何を試しても、私は正確にアルファを取り出すことができません。誰でも何か提案してもらえますか? –