Fortran

C++ - 連立方程式解法(ガウスの消去法(ピボット選択))!  (2022-05-25)

かつて、連立方程式を「ガウスの消去法」で解くアルゴリズムを C++ で実装したことを紹介しました。 C++ - 連立方程式解法(ガウスの消去法)! しかし、計算途中で対角成分がゼロになるケースでは計算ができませんでした。 今回はその問題を解決すべく、「ガウスの消去法(ピボット選択)」で解くアルゴリズ...

Fortran - 連立方程式解法(ガウスの消去法(ピボット選択))!  (2022-05-18)

かつて、連立方程式を「ガウスの消去法」で解くアルゴリズムを Fortran95 で実装したことを紹介しました。 Fortran - 連立方程式解法(ガウスの消去法)! しかし、計算途中で対角成分がゼロになるケースでは計算ができませんでした。 今回はその問題を解決すべく、「ガウスの消去法(ピボット選択...

Fortran - 逆行列の計算(余因子行列を使用)!  (2020-03-28)

前回、 Fortran 95 で余因子展開による行列式の計算を行いましたが、今回は、それを応用して、逆行列の計算を行ってみました。 少し前に、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 逆行列の計算(余因子行列を使用)!!

Fortran - 行列式の計算(余因子展開による)!  (2020-03-23)

Fortran 95 で余因子展開による行列式の計算を行ってみました。 少し前に、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 行列式の計算(余因子展開による)!

Fortran - 重回帰分析・自由度調整済み決定係数の計算!  (2020-03-03)

重回帰分析における自由度調整済み決定係数の計算を Fortran 95 で行ってみました。 前回、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 重回帰分析・自由度調整済み決定係数の計算!

Fortran - 重回帰式計算(説明変数3個)!  (2020-02-26)

以前、 Fortran 95 で、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」を計算する方法を紹介しました。 Fortran - 重回帰式計算(説明変数2個)! Fortran - 重回帰式計算(説明変数2個)(その2)! 今回は、説明(独立)変数3個の場合の重回帰式を計算してみまし...

Fortran 2003 - Vincenty 法による地球楕円体上の距離/位置計算!  (2019-09-29)

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

Fortran - 2 つの配列から重回帰分析(2次多項式モデル)!  (2019-09-17)

過去に、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」の計算を Fortran 95 で実装しました。 Fortran - 2 つの配列から重回帰式計算! 今回は、重回帰式を2次多項式にしてみました。 前回、同じことを Ruby で Array クラスを拡張する方法で実装しています。 ...

Fortran - 重回帰式計算(説明変数2個)(その2)!  (2019-09-11)

以前、 Fortran 95 で、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」を計算する方法を紹介しました。但し、平方和/積和の行列を作成してからその行列(連立方程式)を解く方法でした。 Fortran - 重回帰式計算(説明変数2個)! 今回は、直接、行列(偏微分後の連立方程式)を解く方...

Fortran - 2つの配列から単回帰曲線(4次回帰モデル)計算!  (2019-08-14)

Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして4次の単回帰曲線を計算してみました。(連立方程式の解法にはガウスの消去法を使用) 前回は3次回帰モデルについて行なっています。 Fortran - 2つの配列から単回帰曲線(3次回帰モデル)計算!

Fortran - 2つの配列から単回帰曲線(3次回帰モデル)計算!  (2019-08-11)

Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして3次の単回帰曲線を計算してみました。(連立方程式の解法にはガウスの消去法を使用) 過去には2次回帰モデルについて行なっています。 Fortran - 2つの配列から単回帰曲線(2次回帰)計算! Fortran - ...

Fortran - 単回帰分析(線形回帰)の決定係数計算!  (2019-06-29)

Fortran 95 で2つの単回帰分析(線形回帰; 単回帰直線)の決定係数を計算してみました。 過去には Ruby で Array クラスを拡張して行なっています。 Ruby - 単回帰分析(線形回帰)の決定係数計算!

Fortran - 2つの配列から単回帰曲線(2次回帰)計算(Ver.2)!  (2019-06-20)

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

Fortran - 2つの配列から単回帰曲線(2次回帰)計算!  (2019-06-17)

Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(2次回帰)を計算する方法についての記録です。 過去には、単回帰直線(1次回帰)を計算する方法についての紹介しまいた。 Fortran - 2 つの配列から単回帰直線計算!

Fortran - 2つの配列から単回帰直線計算(Ver.2)!  (2019-06-14)

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

Fortran - LU 分解を用いた連立1次方程式の解法!  (2019-06-05)

連立1次方程式を LU 分解を用いて解くアルゴリズムを Fortran 95 で実装してみました。 (使用する LU 分解法は「外積形式ガウス法(outer-product form)」) 前回 Ruby で同じことをしました。 Ruby - LU 分解を用いた連立1次方程式の解法!

Fortran - LU 分解(クラウト法(Crout method))!  (2019-05-29)

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

Fortran - LU 分解(内積形式ガウス法(inner-product form))!  (2019-05-26)

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

Fortran - LU 分解(外積形式ガウス法(outer-product form))!  (2019-05-23)

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

Fortran - WGS84 (BLH) 座標 -> ENU 座標 変換!  (2019-05-11)

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

Fortran - ECEF 座標 -> WGS84 (BLH) 座標 変換!  (2019-05-08)

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

Fortran - WGS84 (BLH) 座標 -> ECEF 座標 変換!  (2019-05-05)

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

Fortran - ISS 位置・速度(WGS84(BLH) 座標)の算出!  (2019-02-14)

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

Fortran - ISS 位置・速度(TEME 座標)の算出!  (2019-02-11)

Fortran 95 で、 NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(UT1; 世界時1)の ISS の位置・速度(TEME 座標)を、 SGP4 アルゴリズムを用いて計算してみました。

Fortran - 日・月の出・南中・入時刻の計算!  (2019-01-24)

Fortran 95 で、日・月の出・南中・入時刻を計算してみました。(出・入はその時の方位角、南中はその時の高度も) 過去に Ruby で行ったことはありましたが。 Ruby - 日・月の出・入・南中計算 gem の作成!

Fortran - 太陽・月の視位置計算(海保略算式版)!  (2019-01-21)

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

Fortran - JPL DE430 データから太陽・月の視位置を計算!  (2019-01-18)

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

Fortran - バイアス・歳差・章動の適用!  (2019-01-15)

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

Fortran - JPL 天文暦データから ICRS 座標を計算!  (2019-01-12)

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

Fortran - JPL 天文暦バイナリデータの読み込み!  (2019-01-09)

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

Fortran - 章動の計算(IAU2000A 理論)!  (2019-01-03)

天体の回転に使用する章動の計算を Fortran 95 で行いました。(使用するのは IAU2000A 理論) 過去には Ruby や Python でも行いましたが。 Ruby - 章動の計算(IAU2000A 理論)! Python - 章動の計算(IAU2000A 理論)!

Fortran - 赤道・黄道座標の変換!  (2018-12-29)

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

Fortran - 各種時刻系の換算!  (2018-12-26)

暦計算や天文計算を行う際に必要な各種時刻系換算を Fortran 95 で行いました。 過去には Ruby や Python でも行いましたが。 Ruby - 各種時刻系の換算! Python - 各種時刻系の変換!

JPL 天文暦データのバイナリ化(Fortran 95 Ver.)!  (2018-12-23)

以前、複数存在する DE430 のテキスト形式データファイルを1つのバイナリ形式のファイルにコンバートする方法についての記録しました。 JPL 天文暦データのバイナリ化! 但し、 FORTRAN 77 のソースコードでした。 今回、 Fortran 95 に移植しました。以下、その記録です。

Fortran - 階乗の計算!  (2018-11-17)

Fortran 95 で階乗の計算をしてみました。(あまりに簡単なアルゴリズムですが)

Fortran - 一様乱数(線形合同法)!  (2017-05-02)

以前、線形合同法を使用して一様乱数を生成する C++ コードや Ruby スクリプトを紹介しました。 C++ - 一様乱数(線形合同法)! Ruby - 一様乱数(線形合同法)! 今回は、同じアルゴリズムを Fortran90/95 で実装してみました。 アルゴリズムについては、上記 C++ の記...

JPL 天文暦データのバイナリ化!  (2016-04-18)

前回、「月・惑星の暦 JPL DE430 について」という記事を公開しました。(DE430 は、NASA の機関である JPL(Jet Propulsion LaboratoryJPL) が惑星探査用に編纂・発行している月・惑星の暦の最新版) 今回は、複数存在する DE430 のテキスト形式データファイルを1つ...

GCC - 最新版をソースビルドでインストール(on CentOS)!  (2014-10-02)

こんばんは。 パッケージでインストールされる GCC(GNU Compiler Collection) はバージョンが若干古く、新しいバージョンで搭載された機能を試す(使用する)ことができません。 (例えば、旧バージョンでは boost ライブラリを使用しなければならなかった “regex” が標準で使用できる...

GCC - 最新版をソースビルドでインストール(on Linux Mint)!  (2014-09-30)

パッケージでインストールされる GCC(GNU Compiler Collection) はバージョンが若干古く、新しいバージョンで搭載された機能を試す(使用する)ことができません。 (例えば、旧バージョンでは boost ライブラリを使用しなければならなかった “regex” が標準で使用できるようになっている...

Fortran - 最小二乗法!  (2014-03-04)

前々回、前回は、C++, Ruby による「最小二乗法」のアルゴリズムを紹介しました。 C++ - 最小二乗法! Ruby - 最小二乗法! 今回は、同じアルゴリズムを Fortran 95 で実現してみました。アルゴリズムについては、上記リンクの記事を参照してください。

Fortran - 円周率計算(Arctan 系公式)  (2013-04-17)

これまで、円周率を Arctan 系の公式で多桁計算する C++, Ruby アルゴリズムを紹介しました。 C++ - 円周率計算(Arctan 系公式(その2))! Ruby - 円周率計算(Arctan 系公式(その2))! (上記のリンクの記事より以前にも同様な記事を紹介していますが、改良前...

Cygwin - Fortran95 を使う!  (2012-03-27)

Cygwin 上で Fortran を使えるようにしてみました。 大学時代に FORTRAN77(パンチカード式)に少しだけ触れた程度でしたが、思い出す意味も含めてコンパイルできる環境を準備してみました。 Fortran は現在、オブジェクト指向プログラミングのできる Fortran2003 が最新のようですが...