倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

不完全ベータ関数の公式あれこれ

不完全ベータ関数の Wikipedia ページに載っている公式を導いていきます。 定義 変数が特定の値をとる場合 a, b の交換 a, b の昇降 a の昇降 b の昇降 0 ≦ x ≦ 1 の範囲外の値 x < 0 x > 1 正規化された不完全ベータ関数 変数が特定の値をとる場合 a, b の…

逆双曲線関数を対数関数で表す

もう少し双曲線関数の公式シリーズ(目次)。 双曲線関数は指数関数を用いて定義されるので、逆双曲線関数は対数関数で表すことができます。 今回はその表式を導きます。逆正弦関数 の関係があるとき、 より ここで とおくと この についての2次方程式を解く…

もう少し双曲線関数の公式 ~目次~

このシリーズでは、『もしも高校で双曲線関数をやったなら』シリーズの続きで、少々高校数学を逸脱する公式を扱っていきます。【シリーズ記事の目次】 複素変数の双曲線関数 双曲線関数の冪級数展開 逆双曲線関数を対数関数で表す 逆双曲線関数の定義域を実…

複素関数としての逆三角関数

もう少し三角関数の公式シリーズ(目次)。 以前の記事(『逆三角関数の定義域を実数全体に拡張する』、『逆三角関数の公式:純虚数の引数』)で実関数としての逆三角関数を少し複素数に拡張しましたが、今回は回りくどいことをせずに定義域・値域ともに複素…

逆双曲線関数の定義域を実数全体に拡張する

もう少し双曲線関数の公式シリーズ(目次)。 今回は逆双曲線関数の定義域を実数全体に拡張します。 双曲線関数の正弦・余割は値域が実数全体をとるので、その逆関数の定義域はすでに実数全体です。 よってこれらは拡張の必要がありません。導く公式は、 を…

逆三角関数の定義域を実数全体に拡張する

もう少し三角関数の公式シリーズ(目次)。 今回は逆三角関数の定義域を実数全体に拡張することを考えます。三角関数の正接・余接は値域が実数全体なのでその逆関数の定義域は問題なく実数全体になっているのですが、正弦・余弦は値域が に限定されているの…

逆双曲線関数の公式:純虚数の引数

もう少し双曲線関数の公式シリーズ(目次)。 今回は逆双曲線関数の引数が純虚数の場合を考えます(けっこう高校数学を逸脱してますが)。 導く公式は を逆双曲線関数として、実数 に対して を満たす実数 を で表す式です。【目次】 逆正弦関数 【別導出】 …

逆三角関数の公式:純虚数の引数

もう少し三角関数の公式シリーズ(目次)。 今回は逆三角関数の引数が純虚数の場合を考えます。 導く公式は を逆三角関数として、実数 に対して を満たす実数 を で表す式です。【目次】 正弦 【別導出】 余弦 【別導出】 正接 余接 正割・余割 まとめ 【修…

「2つのボールをぶつけると円周率がわかる」のを他の言語でシミュレーションしてみた

ここ1年くらいまとものコードを書いてなかったので、ちょっとリハビリに「「2つのボールをぶつけると円周率がわかる」らしいのでシミュレーションしてみた」で書いていた Groovy コードを他の言語で書き直してみました。 Java Scala Go Rust そのまま移植す…

Go で 2-Qubit System (Multi-Qubit System)

Go で量子コンピューティングシリーズ(目次)。 今までは1つの qubit だけを扱っていましたが、量子コンピューティングの特筆すべき性質は複数の qubit が量子もつれを起こしている系から得られます。 今回は2つの qubit からなる 2-qubit 系を表す qubits2…

Go で量子鍵配送 (Quantum Key Distribution) もう少し B92 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は前回見た B92 プロトコルに対して BB84 プロトコルでやったような分析をしていきます。 理論的な値は「『Quantum Computing: A Gentle Introduction』の演習問題を解く 2.11」で計算しています。【この…

Go で量子鍵配送 (Quantum Key Distribution) B92 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は B92 プロトコル。B92 プロトコルは BB84 プロトコルに比べて直感的に分かりにくい処理(エンコード・デコード*1)をしますが、古典チャネルでの通信が BB84 プロトコルに比べて半分で済みます。 その…

Go で量子鍵配送 BB84 プロトコルでイヴがランダムに基底を選ぶ場合

Go で量子コンピューティングシリーズ(目次)。 今回は BB84 プロトコルで、アリスとボブがエンコード・デコードに使う基底をイヴが知らずに、ランダムな基底を使って盗聴を行う場合を見ていきます。 アリスとボブのコードは今までと同じです。各種の理論値…

Go で量子鍵配送 (Quantum Key Distribution) もう少し BB84 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は前回見た BB84 プロトコルの特徴をもう少し詳しく見ていきます。【この記事の内容】 長さ n の鍵を生成するために必要な qubit 数 盗聴に気づく確率 イヴが正しい鍵のビット値を得る割合 盗聴に気づい…

Go で量子コンピューティング ~目次~

Go で量子コンピューティングシリーズの目次。 Qubit 量子鍵配送 (QKD: Quantum Key Distribution) 枠組み BB84 基本・分析・イヴがランダムな基底で測定する場合 B92 基本・分析 2-Qubit 系(n-Qubit 系) Quantum Computing: A Gentle Introduction (Scien…

Go で量子鍵配送 (Quantum Key Distribution) BB84 プロトコル

Go で量子コンピューティングシリーズ(目次)。 今回は量子鍵配送 (Quantum Key Distribution) の BB84 プロトコルの実装をしていきます。【この記事の内容】 量子鍵配送 BB84 プロトコル Go での実装 bb84.Alice の EstablishKey メソッド bb84.Bob の Est…

Go で量子鍵配送 (Quantum Key Distribution)

Go で量子コンピューティングシリーズ(目次)。 次回から何回かで量子鍵配送 (qkd: quantum key distribution) を3種類ほど実装していく予定ですが、今回はそれらに共通する型などを見ていきます。 実装は直接的には量子鍵配送に関係なのでスルーします。【…

Go で Qubit

Go で量子コンピューティングシリーズ(目次)。 Google Go で量子計算・量子コンピュータの簡単なシミュレータを書いていきます(『Quantum Computing: A Gentle Introduction』の練習問題を解くサポートで)。 今回は準備として 1 qubit 系に関連する型を…

spire で多項式 Polynomial を使ってみる (5) : 多項式で表される特殊関数

spire を使ってみるシリーズ(目次)。 今回は多項式で表される特殊関数に関連する spire.math.poly.SpecialPolynomials クラスのメソッドを見ていきます。SpecialPolynomials クラスでは ルジャンドルの多項式: legendre() ラゲールの多項式: laguerre() …

spire で多項式 Polynomial を使ってみる (4) : 係数・項を扱うメソッド

spire を使ってみるシリーズ(目次)。 今回は Polynomial 型に定義されているメソッドのうち、係数や項を扱うメソッドを見ていきます。 記事中のサンプルコードでは以下の import 分が書かれているものとします: import spire.math._ import spire.implici…

spire で多項式 Polynomial を使ってみる (3) : 代数としてのメソッド

spire を使ってみるシリーズ(目次)。 今回は Polynomial 型に定義されている代数としてのメソッドを見ていきます。 多項式はユークリッド環をなすので、加減乗法と余りのある除算が定義されています。この記事中のサンプルコードでは以下の import 文が書…

spire で多項式 Polynomial を使ってみる (2) : 数学関数としてのメソッド

spire を使ってみるシリーズ(目次)。 今回は Polynomial に定義されている、数学関数に関連するメソッドを見ていきます。 記事中のサンプルコードでは、以下の import 文が書かれているものとします: import spire.math._ import spire.implicits._ 関数…

spire で多項式 Polynomial を使ってみる (1) : ファクトリ・メソッド

spire を使ってみるシリーズ(目次)。 Scala の高速・高精度な数学ライブラリ spire に定義されている、多項式を表す型 Polynomial の基本的な使い方を見ていきます。 今回は Polynomial オブジェクトを生成する、Polynomial コンパニオン・オブジェクトに…

spire を使ってみるシリーズ 目次

Scala の高速・高精度数学ライブラリの spire を使ってみるシリーズの目次記事。github.com 多項式 Polynomial 『ファクトリ・メソッド』 『数学関数としてのメソッド』 『代数としてのメソッド』 『係数・項を扱うメソッド』 『多項式で表される特殊関数』 …

逆正弦関数・逆余弦関数の冪級数展開

もう少し三角関数の公式シリーズ(目次)。 今回は逆正弦関数と逆余弦関数の冪級数展開を見ていきます。 『逆正弦関数・逆余弦関数の高階導関数』で高階導関数を求めましたが、これを使って公式通りに冪級数展開を行うのはちょっと大変なので、別の方法で冪…

逆正弦関数・逆余弦関数の高階導関数

もう少し三角関数の公式シリーズ(目次)。 今回は、『逆三角関数の導関数』の結果を使って、逆正弦関数・逆余弦関数の高階導関数を求めます。逆正弦関数・逆余接関数の導関数は で与えられるのでした。 一応値域を明示してますが、今回は特に使いません。 …

逆正接関数・逆余接関数の冪級数展開

もう少し三角関数の公式シリーズ(目次)。 今回は、前回導いた逆正接関数・逆正接関数の高階導関数を用いて、逆正接関数・逆余接関数の( の周りでの)冪級数展開を導きます(高階導関数を使わずに簡単に導く方法もあります)。 逆正接関数・逆余接関数の高…

逆正接関数・逆余接関数の高階導関数

もう少し三角関数の公式シリーズ(目次)。 以前の記事『逆三角関数の導関数』にて逆正接関数・逆余接関数の導関数を計算しましたが、今回はさらにそれらの高階導関数を計算します。逆正接関数 ・逆余接関数 の導関数は以下で与えられるのでした: これらの…

逆三角関数の導関数

もう少し三角関数の公式シリーズ(目次)。 今回は三角関数の逆関数である逆三角関数の導関数を計算します。逆三角関数は角度にあたる値域に制限を加える必要がありますが、その制限は各逆三角関数の箇所で指定しています。 たぶんここで指定している制限は…

三角関数の3元加法定理

もう少し三角関数の公式シリーズ(目次)。 三角関数の加法定理は高校数学で主要な公式ですが、これを2度使って3つの角度を加える公式も簡単に導くことができます。 まぁ、高校数学の演習問題レベルで、結果を覚えるほどの公式ではありませんが、3つの角度を…