裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

負の数の平方根(虚数の冪乗)

2023年03月15日 | ブログラミング

-2 の平方根を求めてみる

Python は (-2)**0.5 で求めることができる。しかし,誤差が表示される。虚数単位は j で表される。

>>> (-2)**0.5
(8.659560562354934e-17+1.4142135623730951j)

numpy.sqrt(-2) ではエラーになる。

>>> import numpy as np
>>> np.sqrt(-2)
<stdin>:1: RuntimeWarning: invalid value encountered in sqrt
nan

虚数として与えるとちゃんと計算する。

>>> np.sqrt(-2+0j)
1.4142135623730951j

R ではどうか。

> options(digits=16)
> (-2)^0.5
[1] NaN

> (-2.0+0i)^0.5
[1] 0+1.414213562373095i

Octave はどうか。

>> (-2)^0.5
ans =  8.659560562354932e-17 + 1.414213562373095e+00i

sqrt() は誤差を含まない。

>> sqrt(-2)
ans =                  0 + 1.414213562373095i

Julia では?

julia> (-2)^0.5
ERROR: DomainError with -2.0:
Exponentiation yielding a complex result requires a complex argument.

Replace x^y with (x+0im)^y, Complex(x)^y, or similar.

単にエラーを出すだけではなく,解決方法を提案してくれる。

julia> (-2+0im)^0.5
0.0 + 1.4142135623730951im

sqrt() も,解決方法を提案してくれる。

julia> sqrt(-2)
ERROR: DomainError with -2.0:
sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).

julia> sqrt(Complex(-2))
0.0 + 1.4142135623730951im

 

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 算額(その163) | トップ | 算額(その164) »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事