アプリ版:「スタンプのみでお礼する」機能のリリースについて

MS-Excel には IM で始まる複素数用の組み込み関数が多数用意されています。その中で平方根を求める IMSQRT() という関数があります。これを使って、例えば次のような計算をさせてみました。( 数値は小数点以下4桁で四捨五入して3桁に丸めています。また、入力引数は実際には虚数単位 i 、虚部並びに加減演算子 +- の間は、隙間を開けずに詰めて入力する約束ですが、この質問では読み易くするために空白を挿入しています。)
IMSQRT( "4 + 3 i" ) = 2.121 + 0.707 i
IMSQRT( "4 - 3 i" ) = 2.121 - 0.707 i
IMSQRT( "-4 + 3 i" ) = 0.707 + 2.121 i
IMSQRT( "-4 - 3 i" ) = 0.707 - 2.121 i

しかし、結果には下記のような不合理があるように思います。
√( -4 - 3 i ) = √(( -1)*( 4 + 3 i )) = i √( 4 + 3 i )
上記の計算結果に従えば = -0.707 + 2.121 i となって、矛盾が出てきてしまいます。
更に
√( 4 - 3 i ) = √(( -1)*( -4 + 3 i )) = i √( -4 + 3 i )
上記の計算結果に従えば = -2.121 - 0.707 i となって、やはり矛盾が出てきてしまいます。

そもそも、x^2 = 3 の解は √3 と -√3 であり、一般に a ≧ 0 として実数の範囲では √a ≧ 0 ですが、複素数 a + b i は a, b ともに正にも負にもなり、マイナスのつかない √ はどちらなのだろうという疑問から考え始めたのです。
尚、入力引数の実部が正の時は極座標形式で表現することを考えると IMSQRT の入力引数の虚部の符号と結果の虚部の符号が同じになるように決めれば合理的であるように思えますが、実部が負で虚部も正負両方の場合まで拡げると適切な決め方は思い当たりません。
そもそも √( -1 ) ≡ i と定義するところにヒントはありそう ( 偏角が -π/2 の側を虚数単位と定義しても違った複素数の計算体系は組立てられそうに思えます。) なのですが、どうもすっきりと納得する結論を求められません。
どなたか、ご教示を願います。

A 回答 (6件)

だからさ、あなたの法則(根号の中の-1はiで括りだせる)


を許すと

1=√(1)=√((-1)(-1))=i√(-1・1)=i・i√(1)=-1
と破綻してて、複素数うんぬんの前に駄目。
不便でも不合理な法則は捨てるしか無いのですよ。
    • good
    • 0
この回答へのお礼

本件、№ 4 の方の回答で納得して締切っております。ありがとうございました。

お礼日時:2020/07/03 14:31

そもそも複素数にいく前から, 一般には


√(-a) ≠ i√a
なんですけどね.

高校でやると思ったんだけど... 今は違うのかなぁ.
    • good
    • 0
この回答へのお礼

本件、№ 4 の方の回答で納得して締切っております。ありがとうございました。

お礼日時:2020/07/03 14:31

複素数の √ の不合理について考えているのか


MS-Excel の IMSQRT() の不合理について考えているのか
には自覚的であったほうがいいと思いますが...

今回の「不合理」は、単にあなたの計算間違いです。
√( ( -1)( 4 + 3 i ) ) = √(-1)・√(4 + 3 i) は、
というか一般に √(ab) = (√a)(√b) は
複素√ では成立しません。 式に登場する 3 個の √ を
それぞれ二価の値から適切に選べば成立する
という意味では、ちゃんと成立するんですけどね。

√ を一価関数にするために一律のルールを定めてしまったら、
ルールをどのように定めても、√(ab) = (√a)(√b) が
成立しないような例は必ず現れます。だから、開なおって
複素√ は多価関数だと言ったりするのです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。複素関数 ( 解析関数というべきかもしれませんが) の f(z) = z^(1/2 ) では √(ab) = (√a)(√b) が一般には成り立たないこともあることを理解しました。ただ、私のように数学を技術計算の手段として主に使っている人間にはヤッパリちょっと ?! です。例えば、√( ( 5+bi )^2) = -5 -bi とした時には b→0 とした極限で√(5^2) = -5 となるような不合理を避ける必要があり、√ の2価の関数値を区別したい希望があります。私の質問への下記の № 3 ( by "kairou"氏 ) の回答を見て、私と似たような誤解をする方もいることを知りましたが、その回答の中の № 6 ( by "お茶碗持つ方"氏 ) に
「 √ の定義の仕方にもよるのですが、割と一般的なのは極座標で表現した時に偏角が 0≦θ<πとなるのが √ で、π≦θ<2π となるのが -√ と表記する方法です。これならば √(実数} の拡張と考えても矛盾は起こりません。」
というような意見も出ています。これに基づいて IMSQRT() の出力を書き直せば
√( "4 + 3 i" ) = 2.121 + 0.707 i
√( "4 - 3 i" ) = -2.121 + 0.707 i
√( "-4 + 3 i" ) = 0.707 + 2.121 i
√( "-4 - 3 i" ) = -0.707 + 2.121 i
となりますが、やはり私の言う√( -1) = i を前提 ( この前提は上記の"お茶碗持つ方"氏の方針に合致 ) とする「不合理」は解消されません。
尚、MS-Excel の IMSQRT() は極座標表示で偏角が -π/2 ~ π/2 の範囲の値が表示されるようなアルゴリズムとなっているようです。

お礼日時:2020/06/30 20:41

まさか 下記の質問と 同一人では 無いですよね。


どちらも、ココに登録して 直ぐで 同一種の 質問ですが。
https://oshiete.goo.ne.jp/qa/11732051.html
上記に 答えのヒントがあるように思いますが。

虚数 そのものが 架空の数字ですから、定義次第で
どうにでもなる と云ったら 云い過ぎですかね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。№ 4 の "ありものがたり"氏への回答へのお礼を参照ください。

お礼日時:2020/06/30 20:43

>√( -4 - 3 i ) = √(( -1)*( 4 + 3 i )) = i √( 4 + 3 i )


>上記の計算結果に従えば = -0.707 + 2.121 i となって、矛盾が出てきてしまいます。

これはたんに根号の中から-1を引っ張りだすとiに変わる
というあなたの作った規則とExcelの計算法との整合の問題。

昨日、同じ質問に答えたけど
複素数の平方根は2価だけど
-90度<偏角≦90度 の方を根号の返す直にする
のは結構広く用いられてる。

-180度<偏角≦180度の数の根号が返す値は
偏角が半分になる。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。№ 4 の "ありものがたり"氏への回答へのお礼を参照ください。

お礼日時:2020/06/30 20:44

そもそも、Excelの組み込み関数はアルゴリズムを公開してないので 技術計算には使ってはいけませんよ。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。№ 4 の "ありものがたり"氏への回答へのお礼を参照ください。

お礼日時:2020/06/30 20:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!