C++

C++ - ISS 位置・速度(BLH(WGS84)座標)一覧 JSON 生成!  (2021-07-14)

前回、 C++ で NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(JST; 日本標準時)の ISS の位置・速度(WGS84 座標; いわゆる、緯度・経度・高度(BLH)という座標)を、 SGP4 アルゴリズムを用いて計算しました。 今回は、応用として、10秒間隔で2日分の JSON データ...

C++ - ISS 位置・速度(BLH(WGS84)座標)の算出!  (2021-06-30)

前回、 C++ で NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(UT1; 世界時1)の ISS の位置・速度(TEME 座標)を、 SGP4 アルゴリズムを用いて計算しました。 今回は、これの応用で、取得した TEME 座標を WGS84 座標(いわゆる、緯度・経度・高度(BLH)という座...

C++ - ISS 位置・速度(TEME 座標)の算出!  (2021-06-16)

C++ で、 NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(UT1; 世界時1)の ISS の位置・速度(TEME 座標)を、 SGP4 アルゴリズムを用いて計算してみました。 過去には Ruby, Python, Fortran で実装しています。(但し、 Ruby, Python 版はブ...

C++ - WGS84 (BLH) 座標 -> ENU 座標 変換!  (2021-05-19)

前々回と前回、 BLH 座標(WGS84 の緯度(Beta)/経度(Lambda)/楕円体高(Height))から ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標への変換や、その逆の変換の処理を C++ で実装しました。 C++ - WGS84 (BL...

C++ - ECEF 座標 -> WGS84 (BLH) 座標 変換!  (2021-05-12)

先日、 WGS84(World Geodetic System 1984) 測地系の緯度(Beta)/経度(Lambda)/楕円体高(Height)を ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標に変換する方法を C++ で実装しました。 C++ -...

C++ - WGS84 (BLH) 座標 -> ECEF 座標 変換!  (2021-05-05)

WGS84 の緯度(Beta)/経度(Lambda)/楕円体高(Height)を ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標に変換する処理を C++ で実装してみました。 過去には Python, Ruby, Fortran で実装しています。 ...

C++ - 日・月の出・南中・入時刻の計算!  (2021-04-28)

C++ で、日・月の出・南中・入時刻を計算してみました。(出・入はその時の方位角、南中はその時の高度も) 過去には Ruby, Fortran95 で行っています。 Ruby - 日・月の出・入・南中計算 gem の作成! Fortran - 日・月の出・南中・入時刻の計算!

C++ - JPL 天文暦データから惑星間の距離を計算!  (2021-04-21)

NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している太陽・月・惑星の暦の最新版 DE430 には太陽・月・惑星の位置(ICRS座標系)の情報が格納されています。 それらの値を使用して、太陽・月・その他惑星の任意の2天体間の距離を C++ で計算し...

C++ - JPL DE430 データから太陽・月の視位置を計算!  (2021-03-17)

C++ で、 NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している太陽・月・惑星の暦の最新版 DE430 からデータを取得し、太陽と月の視位置を高精度で計算してみました 過去には Ruby, Fortran95 で行っています。 Ruby...

C++ - JPL 天文暦データから ICRS 座標を計算!  (2021-03-10)

前回、 NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 のバイナリ形式のデータを C++ で読み込んでみました。 C++ - JPL 天文暦バイナリデータの読み込み! 今回は、読み込んだデータから ...

C++ - JPL 天文暦バイナリデータの読み込み!  (2021-03-03)

NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 のバイナリ形式のデータを C++ で読み込んでみました。 過去には Ruby, Python, Fortran95 で行っています。 Ruby - JP...

C++ - 太陽・月の視位置計算(海保略算式版)!  (2021-02-25)

C++ で、海上保安庁・海洋情報部の「コンピュータによる天体の位置計算式」を利用して、太陽や月の視位置等を計算してみました。 過去には Ruby, Python, Fortran95 で行っています。 Ruby - 太陽・月の視赤経・視赤緯等の計算(海保略算式版)! Ruby - 太陽・月の視黄経・...

C++ - グリニッジ恒星時の計算(IAU2006 理論)!  (2021-02-17)

グリニッジ視恒星時(GAST; Greenwich Apparent Sidereal Time)、グリニッジ平均恒星時(GMST; Greenwich Mean Sidereal Time)、分点均差(EE; Equation of Equinoxes )の計算を C++ で行いました。(使用するのは IAU2...

C++ - 2つの時刻の平均!  (2021-02-10)

2つの timespec 型の時刻の平均を求める処理を実装してみました。 と言っても、単純な四則演算(&剰余)です。

C++ - バイアス・歳差・章動の適用!  (2021-02-03)

赤道直交座標にバイアス・歳差・章動の回転を適用する処理を C++ で実装してみました。 過去には Ruby, Fortran95 で実装したことがあります。(Python でも作成したことがあるが、ブログ記事にはしていない) Ruby - バイアス・歳差・章動の適用(by 自作 gem ライブラリ)! ...

C++ - 章動の計算(IAU2000A 理論)!  (2021-01-27)

天体の回転に使用する章動の計算を C++ で行いました。(使用するのは IAU2000A 理論) 過去には Ruby, Python, Fortran95 で行っています。 Ruby - 章動の計算(IAU2000A 理論)! Python - 章動の計算(IAU2000A 理論)! Fortr...

C++ - 赤道・黄道座標の変換!  (2021-01-20)

赤道直交座標と黄道直交座標や、直交座標と極座標の相互変換を C++ で行いました。 過去には Ruby, Python, Fortran95 で行っています。 Ruby - 赤道・黄道座標の変換(by 自作 gem ライブラリ)! Python - 赤道・黄道座標の変換! Fortran - 赤...

C++ - 平均黄道傾斜角の計算!  (2021-01-13)

平均黄道傾斜角(地球自転軸の傾き、地球公転面と赤道のなす角)の計算を C++ で行いました。 23.4度等と簡単に表すことが多いですが、実際は時々刻々と変化しております。 天文や暦等を正確に計算する際に必要になってきます。 過去には Ruby, Python で行っています。 Ruby - 平均黄道傾斜...

C++ - 各種時刻系の換算!  (2021-01-06)

暦計算や天文計算を行う際に必要な各種時刻系換算を C++ で行いました。 過去には Ruby, Python, Fortran95 で行っています。 Ruby - 各種時刻系の換算! Python - 各種時刻系の変換! Fortran - 各種時刻系の換算!

C++ - ローレンツ・アトラクタ(Runge-Kutta 法)  (2020-12-16)

C++ でローレンツ・アトラクタの計算をしてみました。 今回は、微分方程式の近似解法に Runge-Kutta(ルンゲ=クッタ)法を使用します。 前回は、微分方程式の近似解法に Euler(オイラー)法を使用しています。 C++ - ローレンツ・アトラクタ(Euler 法)

C++ - ローレンツ・アトラクタ(Euler 法)  (2020-12-09)

C++ でローレンツ・アトラクタの計算をしてみました。 今回は、微分方程式の近似解法に Euler(オイラー)法を使用します。 過去には Ruby や Python で同様のことをしています。 Ruby - ローレンツ・アトラクタ(Euler 法)! Python - ローレンツ・アトラクタ(Eul...

C++ - 数式文字列 => 逆ポーランド記法 変換&計算(二分木使用)!  (2020-12-02)

C++ で、入力した数式の文字列を逆ポーランド記法(RPN; 後置記法)に変換する処理を実装してみました。(ついでに、後置・中置・前置記法での計算も) 前回・前々回はスタックを使用した処理についてでした。 C++ - 数式文字列 => 逆ポーランド記法 変換! C++ - 逆ポーランド記法の評価...

C++ - 逆ポーランド記法の評価(計算)!  (2020-11-25)

前回、 C++ で、入力した数式の文字列を逆ポーランド記法(RPN; 後置記法)に変換する処理を実装してみました。(スタック使用) C++ - 数式文字列 => 逆ポーランド記法 変換! 今回は、出力された逆ポーランド記法での表現を読み込んで計算する処理を実装してみました。

C++ - 数式文字列 => 逆ポーランド記法 変換(スタック使用)!  (2020-11-18)

C++ で、入力した数式の文字列を逆ポーランド記法(RPN; 後置記法)に変換する処理を実装してみました。 今回はスタックを使用した処理です。(後日、二分木を使用した処理についても紹介予定) 逆ポーランド記法の数式文字列から値を計算する処理(逆ポーランド計算機)については、次回紹介予定です。 ちなみに、過去には...

C++ - Vincenty 法による地球楕円体上の位置計算!  (2020-10-21)

地球楕円体上の任意の2地点間の距離やそれぞれから見た方位角、また、1地点から見た方位角・距離にある地点の位置等を計算するために Vincenty 法なるアルゴリズムが存在します。 前回、 C++ で「地球楕円体上の任意の2地点間の距離やそれぞれから見た方位角」の計算処理を実装してみました。 今回は、 C++ で...

C++ - Vincenty 法による地球楕円体上の距離計算!  (2020-10-14)

地球楕円体上の任意の2地点間の距離やそれぞれから見た方位角、また、1地点から見た方位角・距離にある地点の位置等を計算するために Vincenty 法なるアルゴリズムが存在します。 今回、 C++ で「地球楕円体上の任意の2地点間の距離やそれぞれから見た方位角」の計算処理を実装してみました。 過去には、 Rub...

C++ - ケンドール順位相関係数の計算!  (2020-10-07)

C++ でケンドールの順位相関係数(Kendall’s Rank Correlation Coefficient)の計算をしてみました。 過去には Ruby や Fortran で行っています。 Ruby - ケンドール順位相関係数の計算! Fortran - ケンドール順位相関係数の計算!

C++ - スピアマン順位相関係数の計算!  (2020-09-30)

C++ でスピアマンの順位相関係数(Spearman’s Rank Correlation Coefficient)の計算をしてみました。 過去には Ruby や Fortran で行っています。 Ruby - スピアマン順位相関係数の計算! Fortran - スピアマン順位相関係数の計算!

C++ - ランク付け(同順位は中央順位法で)!  (2020-09-23)

前回、 C++ で複数の整数入力値にランクを付ける処理(同順位考慮)を実装してみましたが、今回はその発展形として、同順位(タイ)がある場合は中央(平均)順位(mid-rank)法で順位を付けるようにしてみました。

C++ - 二項係数の計算!  (2020-09-09)

C++ で二項係数の計算をしてみました。(各種計算式を使用して) 過去には Ruby や Fortran で計算しています。 Ruby - 二項係数の計算! Fortran - 二項係数の計算!

C++ - 実数判定(正規表現)!  (2020-09-02)

C++ で文字列が実数か否かを正規表現を使用して判定する方法についてです。 (別途作成予定のツールで部品として使用するための事前準備)

C++ - 整数判定(正規表現)!  (2020-08-26)

C++ で文字列が整数か否かを正規表現を使用して判定する方法についてです。 (別途作成予定のツールで部品として使用するための事前準備)

C++ - 階乗計算(with GMP)!  (2020-08-19)

C++ で任意精度算術ライブラリ GMP(The GNU Multi Precision Arithmetic Library) を使って、階乗の計算をしてみました。

C++ - 3次スプライン補間!  (2020-08-12)

C++ で3次スプライン補間のアルゴリズムを実装してみました。 過去には Ruby, Python, Fortran で実装しています。 Ruby - 3次スプライン補間! Python - 3次スプライン補間! Fortran - 3次スプライン補間!

C++ - LU 分解(クラウト法(Crout method))!  (2020-08-07)

C++ で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「クラウト法(Crout method)」です。 過去には Ruby, Fortran で実装しています。 Ruby - LU 分解(クラウト法(Crout method))! Fortran - LU 分解(ク...

C++ - LU 分解(内積形式ガウス法(inner-product form))!  (2020-08-02)

C++ で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「内積形式ガウス法(inner-product form)」です。 過去には Ruby, Fortran で実装しています。 Ruby - LU 分解(内積形式ガウス法(inner-product form))! ...

C++ - LU 分解(外積形式ガウス法(outer-product form))!  (2020-07-28)

C++ で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「外積形式ガウス法(outer-product form)」です。 過去には Ruby, Fortran で実装しています。 Ruby - LU 分解(外積形式ガウス法(outer-product form))! ...

C++ - 重回帰分析(2次多項式モデル)!  (2020-07-18)

C++ で、数値からなる同サイズの配列3個を説明変数2個・目的変数1個とみなして重回帰式を計算する方法についての記録です。(今回は2次多項式モデル) 連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2 つの配列から重回帰分析(...

C++ - 重回帰式計算(説明変数3個)!  (2020-07-13)

C++ で、数値からなる同サイズの配列4個を説明変数3個・目的変数1個とみなして重回帰式を計算する方法についての記録です。 連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 重回帰式計算(説明変数2個)(その2)!

C++ - 重回帰式計算(説明変数2個)!  (2020-07-08)

C++ で、数値からなる同サイズの配列3個を説明変数2個・目的変数1個とみなして重回帰式を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 重回帰式計算(説明変数2個)(その2)!

C++ - 単回帰分析(2次曲線回帰)の決定係数計算!  (2020-07-03)

C++ で単回帰分析(2次曲線回帰)の決定係数を計算してみました。 過去には Fortran 等で実装しています。 Ruby - 単回帰分析(2次曲線回帰)の決定係数計算! Fortran - 単回帰分析(2次曲線回帰)の決定係数計算!

C++ - 単回帰分析(線形回帰)の決定係数計算!  (2020-06-27)

C++ で2つの単回帰分析(線形回帰; 単回帰直線)の決定係数を計算してみました。 過去には Fortran 等で実装しています。 Ruby - 単回帰分析(線形回帰)の決定係数計算! Fortran - 単回帰分析(線形回帰)の決定係数計算!

C++ - 単回帰曲線(e指数回帰モデル)の計算!  (2020-06-22)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(e指数回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(e指数回...

C++ - 単回帰曲線(指数(ab指数)回帰モデル)の計算!  (2020-06-17)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(指数(ab指数)回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線...

C++ - 単回帰曲線(べき乗回帰モデル)の計算!  (2020-06-12)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(べき乗回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(べき乗回...

C++ - 単回帰曲線(分数(逆数)回帰モデル)の計算!  (2020-06-07)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(分数(逆数)回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(分...

C++ - 単回帰曲線(自然対数回帰モデル)の計算!  (2020-06-02)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(自然対数回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(自然対...

C++ - 単回帰曲線(ルート回帰モデル)の計算!  (2020-05-28)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(ルート回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(ルート回...

C++ - 単回帰曲線(4次回帰モデル)の計算!  (2020-05-23)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(4次回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(4次回帰モ...

C++ - 単回帰曲線(3次回帰モデル)の計算!  (2020-05-18)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(3次回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(3次回帰モ...

C++ - 単回帰曲線(2次回帰モデル)の計算!  (2020-05-13)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(2次回帰モデル)を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。 過去には Fortran 等で実装しています。 Fortran - 2つの配列から単回帰曲線(2次回帰)...

C++ - 単回帰直線の計算!  (2020-05-08)

C++ で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰直線を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去法」を使用します。(分散/共分散を使用する方法(実際にはその変形版)もある) 過去には Fortran 等で実装しています。 Fortran ...

C++ - CSV データ読み込み!  (2020-04-07)

かつて、 C++ で CSV データを読み込む方法について記録しました。 C++ - CSV データ読み込み! 今回も同様のことをしてみましたが、ある(古めの)書籍に掲載されていたものをほぼそのまま実装してみました。 プログラミング作法 - Amazon.co.jp