2つの複素数 z₁ = a + bi、z₂ = c + di の実部・虚部を入力し、計算したい演算(+−×÷)を選んでください。下の数式は入力欄と連動していて、数式の数字の部分を直接書き換えても計算できます。
このページでできること
- 2つの複素数 \(z_1 = a+bi\)・\(z_2 = c+di\) の足し算・引き算・掛け算・割り算を、実部・虚部を入れて演算を選ぶだけでその場で計算できます
- 答えは \(\dfrac{11}{25} + \dfrac{2}{25}i\) のような約分済みの分数(厳密値)の \(a+bi\) 形で表示。割り算では、分母の共役複素数を掛けて分母を実数にする「分母の実数化」の途中式が、掛け算では展開して \(i^2\) を \(-1\) に置き換える過程が見られます
- おまけとして、計算結果の共役複素数 \(\overline{z}\) と絶対値 \(|z|\) も表示します。絶対値は \(|3+4i| = 5\)、\(|1+i| = \sqrt{2}\) のように、√を簡約した厳密値で答えます
- 計算結果は複素数平面(ガウス平面)の図でも確認でき、\(z_1\)・\(z_2\)・計算結果の点の位置関係が一目でわかります
- 実部・虚部には小数・負の数のほか、3/4 のような分数も入力できます
この計算は何の役に立つ?
家庭のコンセントに来ている交流は、電圧・電流が波のように揺れ、部品によって波のタイミング(位相)がずれます。電気工学では、この「大きさ」と「ずれ」を1つの複素数(インピーダンス)にまとめて表し、回路の計算を複素数の四則演算だけで済ませるのが標準のやり方です。
電気主任技術者や電気工事士の試験にも複素数の計算が登場します。スマホの充電器から発電所まで、交流が流れる場所の設計は複素数の計算に支えられています。
音や電波のような「波」は、複素数を使ったフーリエ変換という計算で「どの高さの音(周波数)がどれだけ含まれるか」に分解できます。スマホの通信(Wi-Fi・5G)、音楽の圧縮、ノイズ除去、音声認識は、内部でこの複素数の計算を大量に行っています。
波の「大きさ」と「タイミング」を1つの数で同時に扱えるのが複素数の強みで、信号処理の分野では実数より複素数の方が主役です。フーリエ変換そのものは大学以降で学ぶ内容ですが、その中で行われているのは数学IIで学ぶ複素数の掛け算と足し算です。
飛行機の自動操縦・ドローン・ロボットのように「揺れを抑えて安定させる」機械の設計では、システムの性質を表す方程式の解(複素数)が複素数平面のどこにあるかで、安定か不安定かを判定します。解の実部が負なら揺れが収まり、正なら発散する、という具合です。
複素数平面上の解の配置が、そのまま「安全に飛べるかどうか」の判断材料になっている分野です。この安定判別を扱う制御工学は、大学以降で学ぶ内容です。
平面上の点 \((x,\ y)\) を複素数 \(x+yi\) とみなすと、絶対値1の複素数を掛けるだけで「原点の周りの回転」が計算できます。例えば \(i\) を掛けると90度回転します。2Dゲームでキャラクターや弾の向きを回す計算に、この性質がそのまま使えます。
3Dゲームやスマホの姿勢検出で使われるクォータニオン(四元数)は、この「複素数で回転を表す」考え方を3次元に拡張したものです。
二次方程式は判別式 \(D = b^2 - 4ac\) が負のとき実数の解を持ちませんが、複素数まで数の世界を広げると、\(x^2 = -1\) にも解 \(x = \pm i\) があり、どんな二次方程式・三次方程式も必ず解を持ちます(代数学の基本定理)。
「解なし」で終わっていた計算に例外がなくなるため、数学だけでなく物理や工学の理論も複素数を前提に組み立てられています。数学IIの複素数の計算は、その入口にあたります。
式と図
用語・記号の解説
記号
| \(i\) | アイ | 虚数単位。2乗すると \(-1\) になる数(\(i^2 = -1\))として定められています。imaginary number(想像上の数)の頭文字に由来します。 |
| \(z\) | ゼット | 複素数を表すのによく使われる文字。実数の変数を \(x\)・\(y\) で表すのと区別するため、複素数には \(z\)・\(w\) を使う慣例があります。 |
| \(z_1,\ z_2\) | ゼットいち・ゼットに | 1つ目・2つ目の複素数。右下の小さい数字(添え字)は「何番目か」を表す番号で、右上に書く累乗の指数とは別物です。 |
| \(a,\ b,\ c,\ d\) | エー・ビー・シー・ディー | このページでは \(z_1 = a+bi\) の \(a\) が実部・\(b\) が虚部、\(z_2 = c+di\) の \(c\) が実部・\(d\) が虚部です。決まった数を表すときはアルファベットの最初の方の文字を使う慣例があります。 |
| \(\overline{z}\) | ゼットバー | \(z\) の共役複素数。\(z = a+bi\) に対して虚部の符号だけを変えた \(a-bi\) のことです。上の横線(バー)は「対になる相手」を表す記号です。 |
| \(|z|\) | ゼットの絶対値 | 複素数 \(z\) の絶対値。複素数平面での原点から \(z\) までの距離で、\(|a+bi| = \sqrt{a^2+b^2}\) と計算します。実数の絶対値記号と同じ縦棒2本で書きます。 |
用語
| 複素数 | ふくそすう | \(a+bi\)(\(a\)・\(b\) は実数)の形で表される数。実数と虚数をまとめた広い数の世界で、複素数の範囲ならどんな二次方程式も必ず解を持ちます。 |
| 虚数 | きょすう | 実数でない複素数のこと。\(a+bi\) で虚部 \(b\) が 0 でないものを指します。「虚(うそ)の数」という名前ですが、電気や物理の計算で現実に役立っている数です。 |
| 虚数単位 | きょすうたんい | \(i\) のこと。\(i^2 = -1\) となる数として定められ、すべての虚数は \(i\) を使って表されます。 |
| 実部 | じつぶ | \(a+bi\) の \(a\) のこと。複素数の「実数の部分」で、複素数平面では横軸(実軸)方向の座標にあたります。 |
| 虚部 | きょぶ | \(a+bi\) の \(b\)(\(i\) は含めない)。複素数平面では縦軸(虚軸)方向の座標にあたります。例えば \(3-2i\) の虚部は \(-2\) です。 |
| 純虚数 | じゅんきょすう | 実部が 0 で虚部が 0 でない複素数(\(2i\)、\(-3i\) など)。複素数平面では虚軸の上に乗ります。 |
| 共役複素数 | きょうやくふくそすう | \(a+bi\) に対する \(a-bi\) のこと。教科書によっては「共役な複素数」とも書かれます。掛けると \((a+bi)(a-bi) = a^2+b^2\) という 0 以上の実数になるのが最大の特徴で、割り算の分母の実数化で活躍します。「共役」は「対(つい)になって働く」という意味です。 |
| 絶対値 | ぜったいち | 複素数平面での原点からの距離 \(\sqrt{a^2+b^2}\) のこと。実数の絶対値(数直線での 0 からの距離)を平面に広げたものです。 |
| 複素数平面 | ふくそすうへいめん | 横軸に実部・縦軸に虚部をとり、複素数 \(a+bi\) を点 \((a,\ b)\) として表す平面。ガウス平面とも呼ばれます。高校では数学Cで詳しく学びますが、複素数を「見える」ようにする道具として、このページでも図に使っています。 |
| 実軸 | じつじく | 複素数平面の横軸で、実数が並ぶ軸。実数は虚部 0 の複素数なので、実軸の上に乗ります。 |
| 虚軸 | きょじく | 複素数平面の縦軸で、純虚数(\(2i\) のような実部 0 の複素数)が並ぶ軸。 |
| 分母の実数化 | ぶんぼのじっすうか | 分母が複素数の分数で、分母の共役複素数を分母・分子の両方に掛けて、分母を実数に直すこと。中学3年で学ぶ「分母の有理化」(分母から√を消す操作)の複素数版です。 |
| 展開 | てんかい | かっこの付いた式のかっこを外して、項の足し算・引き算の形に直すこと。\((a+b)(c+d) = ac+ad+bc+bd\) のように、片方のかっこの各項をもう片方の各項すべてに掛けます。 |
| 同類項 | どうるいこう | 文字の部分が同じ項のこと。複素数の足し算・引き算では、\(i\) の付いた項(虚部)と付いていない項(実部)をそれぞれ同類項としてまとめます。 |
| 判別式 | はんべつしき | 二次方程式 \(ax^2+bx+c=0\) の解の種類を判定する式 \(D = b^2-4ac\) のこと。\(D < 0\) のとき実数の解はありませんが、複素数の範囲では \(x = \dfrac{-b \pm \sqrt{-D}\,i}{2a}\) という虚数解を持ちます。複素数が高校数学に登場する一番の入口です。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 文字式の展開と同類項(中学2〜3年) |
|
| 平方根と根号(中学3年) |
|
| 分母の有理化(中学3年) |
|
| 座標平面と三平方の定理(中学1年・3年) |
|
| 二次方程式と判別式(中学3年〜高校 数学I) |
|
| 分数の計算(小学5年〜中学1年) |
|
Excelで計算する方法
| z₁の実部 a | 1 |
| z₁の虚部 b | 2 |
| z₂の実部 c | 3 |
| z₂の虚部 d | 4 |
| 複素数 z₁ | =COMPLEX(B1,B2) |
| 複素数 z₂ | =COMPLEX(B3,B4) |
| 和 z₁+z₂ | =IMSUM(B5,B6) |
| 差 z₁−z₂ | =IMSUB(B5,B6) |
| 積 z₁×z₂ | =IMPRODUCT(B5,B6) |
| 商 z₁÷z₂ | =IMDIV(B5,B6) |
| 実部 a | 3 |
| 虚部 b | 4 |
| 複素数 z | =COMPLEX(B1,B2) |
| 共役複素数 | =IMCONJUGATE(B3) |
| 絶対値 |z| | =IMABS(B3) |
| z₁の実部 a | 1 |
| z₁の虚部 b | 2 |
| z₂の実部 c | 3 |
| z₂の虚部 d | 4 |
| 分母 c²+d² | =B3^2+B4^2 |
| 商の実部 (ac+bd)÷(c²+d²) | =(B1*B3+B2*B4)/B5 |
| 商の虚部 (bc−ad)÷(c²+d²) | =(B2*B3-B1*B4)/B5 |
1つ目の表は z₁ = 1+2i、z₂ = 3+4i の例で、和は "4+6i"、差は "-2-2i"、積は "-5+10i"、商は "0.44+0.08i" と表示されます(結果は数値ではなく文字列です)。
2つ目の表は z = 3+4i の例で、共役複素数は "3-4i"、絶対値は 5 になります(IMABSだけは普通の数値を返します)。
3つ目の表は、割り算を複素数関数に頼らず「分母の実数化」の公式どおりに計算して確かめる表です。商の実部は 0.44(= 11/25)、虚部は 0.08(= 2/25)になり、IMDIVの結果と一致します。「^」はべき乗、「*」は掛け算、「/」は割り算の記号です。
Googleスプレッドシートで計算する方法
| z₁の実部 a | 1 |
| z₁の虚部 b | 2 |
| z₂の実部 c | 3 |
| z₂の虚部 d | 4 |
| 複素数 z₁ | =COMPLEX(B1,B2) |
| 複素数 z₂ | =COMPLEX(B3,B4) |
| 和 z₁+z₂ | =IMSUM(B5,B6) |
| 差 z₁−z₂ | =IMSUB(B5,B6) |
| 積 z₁×z₂ | =IMPRODUCT(B5,B6) |
| 商 z₁÷z₂ | =IMDIV(B5,B6) |
| 実部 a | 3 |
| 虚部 b | 4 |
| 複素数 z | =COMPLEX(B1,B2) |
| 共役複素数 | =IMCONJUGATE(B3) |
| 絶対値 |z| | =IMABS(B3) |
| z₁の実部 a | 1 |
| z₁の虚部 b | 2 |
| z₂の実部 c | 3 |
| z₂の虚部 d | 4 |
| 分母 c²+d² | =B3^2+B4^2 |
| 商の実部 (ac+bd)÷(c²+d²) | =(B1*B3+B2*B4)/B5 |
| 商の虚部 (bc−ad)÷(c²+d²) | =(B2*B3-B1*B4)/B5 |
Pythonで計算する方法
from fractions import Fraction
import math
# z1 = a + bi、z2 = c + di の実部・虚部(3/4 のような分数は Fraction(3, 4) と書ける)
z1_real, z1_imag = Fraction(1), Fraction(2)
z2_real, z2_imag = Fraction(3), Fraction(4)
# 和・差:実部同士・虚部同士をまとめる
add_real, add_imag = z1_real + z2_real, z1_imag + z2_imag
sub_real, sub_imag = z1_real - z2_real, z1_imag - z2_imag
# 積:展開して i^2 = -1 を代入した結果の公式 (ac-bd) + (ad+bc)i
mul_real = z1_real * z2_real - z1_imag * z2_imag
mul_imag = z1_real * z2_imag + z1_imag * z2_real
# 商:分母の実数化。分母は c^2 + d^2 という実数になる
denominator = z2_real ** 2 + z2_imag ** 2
div_real = (z1_real * z2_real + z1_imag * z2_imag) / denominator
div_imag = (z1_imag * z2_real - z1_real * z2_imag) / denominator
# 商の絶対値:実部の2乗と虚部の2乗を足して平方根をとる
abs_squared = div_real ** 2 + div_imag ** 2
abs_value = math.sqrt(abs_squared)
# a+bi 形の文字列にする(虚部が負のときは -2 - 2i のように引き算の形で表示する)
def to_complex_str(real, imag):
sign = "-" if imag < 0 else "+"
return f"{real} {sign} {abs(imag)}i"
print(f"和: {to_complex_str(add_real, add_imag)}")
print(f"差: {to_complex_str(sub_real, sub_imag)}")
print(f"積: {to_complex_str(mul_real, mul_imag)}")
print(f"商: {to_complex_str(div_real, div_imag)}")
print(f"商の絶対値の2乗(分数): {abs_squared}")
print(f"商の絶対値(小数): {abs_value}")
数式記述言語(LaTeX等)での書き方(コピペ可)
(a+bi) + (c+di) = (a+c) + (b+d)i
(a+bi) + (c+di) = (a+c) + (b+d)i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi><mi>i</mi><mo>)</mo>
<mo>+</mo>
<mo>(</mo><mi>c</mi><mo>+</mo><mi>d</mi><mi>i</mi><mo>)</mo>
<mo>=</mo>
<mo>(</mo><mi>a</mi><mo>+</mo><mi>c</mi><mo>)</mo>
<mo>+</mo>
<mo>(</mo><mi>b</mi><mo>+</mo><mi>d</mi><mo>)</mo><mi>i</mi>
</mrow>
</math>
(a+bi) + (c+di) = (a+c) + (b+d)i
ComplexExpand[(a + b I) + (c + d I)]
evalc((a + b*I) + (c + d*I));
z = (a + b*1i) + (c + d*1i);
(a+bi)+(c+di)=(a+c)+(b+d)i
(a+bi)(c+di) = (ac−bd) + (ad+bc)i
(a+bi)(c+di) = (ac-bd) + (ad+bc)i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>(</mo><mi>a</mi><mo>+</mo><mi>b</mi><mi>i</mi><mo>)</mo>
<mo>(</mo><mi>c</mi><mo>+</mo><mi>d</mi><mi>i</mi><mo>)</mo>
<mo>=</mo>
<mo>(</mo><mi>a</mi><mi>c</mi><mo>−</mo><mi>b</mi><mi>d</mi><mo>)</mo>
<mo>+</mo>
<mo>(</mo><mi>a</mi><mi>d</mi><mo>+</mo><mi>b</mi><mi>c</mi><mo>)</mo><mi>i</mi>
</mrow>
</math>
(a+bi)(c+di) = (ac-bd) + (ad+bc)i
ComplexExpand[(a + b I) (c + d I)]
evalc((a + b*I) * (c + d*I));
z = (a + b*1i) * (c + d*1i);
(a+bi)(c+di)=(ac-bd)+(ad+bc)i
(a+bi)/(c+di) = (ac+bd)/(c²+d²) + {(bc−ad)/(c²+d²)}i
\frac{a+bi}{c+di} = \frac{ac+bd}{c^{2}+d^{2}} + \frac{bc-ad}{c^{2}+d^{2}}\,i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mfrac>
<mrow><mi>a</mi><mo>+</mo><mi>b</mi><mi>i</mi></mrow>
<mrow><mi>c</mi><mo>+</mo><mi>d</mi><mi>i</mi></mrow>
</mfrac>
<mo>=</mo>
<mfrac>
<mrow><mi>a</mi><mi>c</mi><mo>+</mo><mi>b</mi><mi>d</mi></mrow>
<mrow><msup><mi>c</mi><mn>2</mn></msup><mo>+</mo><msup><mi>d</mi><mn>2</mn></msup></mrow>
</mfrac>
<mo>+</mo>
<mfrac>
<mrow><mi>b</mi><mi>c</mi><mo>−</mo><mi>a</mi><mi>d</mi></mrow>
<mrow><msup><mi>c</mi><mn>2</mn></msup><mo>+</mo><msup><mi>d</mi><mn>2</mn></msup></mrow>
</mfrac>
<mi>i</mi>
</mrow>
</math>
(a+bi)/(c+di) = (ac+bd)/(c^2+d^2) + ((bc-ad)/(c^2+d^2))i
ComplexExpand[(a + b I)/(c + d I)]
evalc((a + b*I) / (c + d*I));
z = (a + b*1i) / (c + d*1i);
(a+bi)/(c+di)=(ac+bd)/(c^2+d^2)+((bc-ad)/(c^2+d^2))i
|a+bi| = √(a²+b²)
\lvert a+bi \rvert = \sqrt{a^{2}+b^{2}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mo>|</mo><mi>a</mi><mo>+</mo><mi>b</mi><mi>i</mi><mo>|</mo>
<mo>=</mo>
<msqrt>
<mrow><msup><mi>a</mi><mn>2</mn></msup><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></mrow>
</msqrt>
</mrow>
</math>
|a+bi| = sqrt(a^2+b^2)
ComplexExpand[Abs[a + b I]]
abs(a + b*I);
r = abs(a + b*1i);
|a+bi| = √(a^2+b^2)
ChatGPT に聞いて計算してもらう方法
あなたは数学(複素数)の計算アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 2つの複素数 z1 = 1 + 2i、z2 = 3 + 4i について、次の内容をそれぞれ示してください。 1. 和 z1 + z2、差 z1 − z2、積 z1 × z2(a+bi 形で) 2. 商 z1 ÷ z2(約分済みの分数の a+bi 形で。分母の実数化の途中式も) 3. 商の共役複素数と絶対値(絶対値は根号を簡約した厳密値と小数の両方で) Pythonでは標準ライブラリの fractions モジュールを使って実部・虚部を厳密に計算し、計算に使った式と実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
