C++ - 連立方程式解法(ガウスの消去法(ピボット選択))! (2022-05-25)
かつて、連立方程式を「ガウスの消去法」で解くアルゴリズムを C++ で実装したことを紹介しました。 C++ - 連立方程式解法(ガウスの消去法)! しかし、計算途中で対角成分がゼロになるケースでは計算ができませんでした。 今回はその問題を解決すべく、「ガウスの消去法(ピボット選択)」で解くアルゴリズ...
かつて、連立方程式を「ガウスの消去法」で解くアルゴリズムを C++ で実装したことを紹介しました。 C++ - 連立方程式解法(ガウスの消去法)! しかし、計算途中で対角成分がゼロになるケースでは計算ができませんでした。 今回はその問題を解決すべく、「ガウスの消去法(ピボット選択)」で解くアルゴリズ...
かつて、連立方程式を「ガウスの消去法」で解くアルゴリズムを Fortran95 で実装したことを紹介しました。 Fortran - 連立方程式解法(ガウスの消去法)! しかし、計算途中で対角成分がゼロになるケースでは計算ができませんでした。 今回はその問題を解決すべく、「ガウスの消去法(ピボット選択...
Debian GNU/Linux 11 へ最新版 GCC をソースビルドでインストールする方法についての記録です。
Debian GNU/Linux 10.9.0 へ最新版 GCC をソースビルドでインストールする方法についての記録です。
前回、 Fortran 95 で余因子展開による行列式の計算を行いましたが、今回は、それを応用して、逆行列の計算を行ってみました。 少し前に、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 逆行列の計算(余因子行列を使用)!!
Fortran 95 で余因子展開による行列式の計算を行ってみました。 少し前に、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 行列式の計算(余因子展開による)!
重回帰分析における自由度調整済み決定係数の計算を Fortran 95 で行ってみました。 前回、同じことを Ruby で Array クラスを拡張する方法で実装しています。 Ruby - 重回帰分析・自由度調整済み決定係数の計算!
以前、 Fortran 95 で、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」を計算する方法を紹介しました。 Fortran - 重回帰式計算(説明変数2個)! Fortran - 重回帰式計算(説明変数2個)(その2)! 今回は、説明(独立)変数3個の場合の重回帰式を計算してみまし...
Fortran 95 でケンドールの順位相関係数(Kendall’s Rank Correlation Coefficient)の計算をしてみました。
Fortran 95 でスピアマンの順位相関係数(Spearman’s Rank Correlation Coefficient)の計算をしてみました。
地球楕円体上の任意の2地点間の距離やそれぞれから見た方位角、また、1地点から見た方位角・距離にある地点の位置等を計算するために Vincenty 法なるアルゴリズムが存在します。 前回、 Ruby で実装してみました。 Ruby - Vincenty 法による地球楕円体上の距離/位置計算! 今回は、...
Fortran の 2003 以降ではオブジェクト指向のプログラミンが可能となっております。 ソースの作成方法について記録しておきます。
過去に、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」の計算を Fortran 95 で実装しました。 Fortran - 2 つの配列から重回帰式計算! 今回は、重回帰式を2次多項式にしてみました。 前回、同じことを Ruby で Array クラスを拡張する方法で実装しています。 ...
以前、 Fortran 95 で、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」を計算する方法を紹介しました。但し、平方和/積和の行列を作成してからその行列(連立方程式)を解く方法でした。 Fortran - 重回帰式計算(説明変数2個)! 今回は、直接、行列(偏微分後の連立方程式)を解く方...
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(e指数回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(指数(ab指数)回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(べき乗回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(分数(逆数)回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(自然対数回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(ルート回帰モデル)を計算してみました。(連立方程式の解法にはガウスの消去法を使用)
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして4次の単回帰曲線を計算してみました。(連立方程式の解法にはガウスの消去法を使用) 前回は3次回帰モデルについて行なっています。 Fortran - 2つの配列から単回帰曲線(3次回帰モデル)計算!
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして3次の単回帰曲線を計算してみました。(連立方程式の解法にはガウスの消去法を使用) 過去には2次回帰モデルについて行なっています。 Fortran - 2つの配列から単回帰曲線(2次回帰)計算! Fortran - ...
Fortran 95 で2つの単回帰分析(2次曲線回帰)の決定係数を計算してみました。 過去には Ruby で Array クラスを拡張して行なっています。 Ruby - 単回帰分析(2次曲線回帰)の決定係数計算!
Fortran 95 で2つの単回帰分析(線形回帰; 単回帰直線)の決定係数を計算してみました。 過去には Ruby で Array クラスを拡張して行なっています。 Ruby - 単回帰分析(線形回帰)の決定係数計算!
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(2次回帰)を計算する方法についての記録です。 ※今回は連立1次方程式を解くのに「ガウスの消去」を使用。 前回は連立1次方程式を解くのに分散/共分散を使用する方法(実際にはその変形版)を使用しました。 For...
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰曲線(2次回帰)を計算する方法についての記録です。 過去には、単回帰直線(1次回帰)を計算する方法についての紹介しまいた。 Fortran - 2 つの配列から単回帰直線計算!
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰直線を計算する方法についての記録です。 今回は連立1次方程式を解くのに「ガウスの消去」を使用します。 過去にも行いましたが、その際は連立1次方程式を解くのに分散/共分散を使用する方法(実際にはその変形版)を使用しました。...
連立1次方程式を LU 分解を用いて解くアルゴリズムを Fortran 95 で実装してみました。 (使用する LU 分解法は「外積形式ガウス法(outer-product form)」) 前回 Ruby で同じことをしました。 Ruby - LU 分解を用いた連立1次方程式の解法!
Fortran 95 で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「クラウト法(Crout method)」 過去には Ruby で同じことをしました。 Ruby - LU 分解(クラウト法(Crout method))!
Fortran 95 で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「内積形式ガウス法(inner-product form)」 過去には Ruby で同じことをしました。 Ruby - LU 分解(内積形式ガウス法(inner-product form))!
Fortran 95 で正方行列の LU 分解アルゴリズムを実装してみました。 今回使用する分解法は「外積形式ガウス法(outer-product form)」 過去には Ruby で同じことをしました。 Ruby - LU 分解(外積形式ガウス法(outer-product form))!
前々回と前回、 BLH 座標(WGS84 の緯度(Beta)/経度(Lambda)/楕円体高(Height))から ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標への変換や、その逆の変換の処理を Fortran 95 で実装しました。 Fortran ...
先日、 WGS84(World Geodetic System 1984) 測地系の緯度(Beta)/経度(Lambda)/楕円体高(Height)を ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標に変換する方法を Fortran 95 で実装しました。 ...
WGS84 の緯度(Beta)/経度(Lambda)/楕円体高(Height)を ECEF(Earth Centered Earth Fixed; 地球中心・地球固定直交座標系)座標に変換する処理を Fortran 95 で実装してみました。 過去には Python, Ruby で実装しています。 Py...
Fortran 95 で「3次スプライン補間」のアルゴリズムを実装してみました。
Fortran 95 で「べき剰余」のアルゴリズムを実装してみました。
Fortran 95 で、説明(独立)変数2個、目的(従属)変数1個の「重回帰式」を計算する方法についての記録です。
Fortran 95 で、数値からなる同サイズの配列2つを説明変数・目的変数とみなして単回帰直線を計算する方法についての記録です。
Fortran 95 で、数値からなる同サイズの配列2つを2つの確率変数とみなして相関係数を計算する方法についての記録です。
Fortran 95 で(離散)フーリエ変換を実装する方法についての記録です。
Fortran 95 でフーリエ級数展開を実装する方法についての記録です。
Fortran 95 でニュートン補間を行う方法についての記録です。
Fortran 95 でラグランジュ補間を行う方法についての記録です。
Fortran 95 で \(\cos(x)\) のテイラー展開を計算する方法についての記録です。
Fortran 95 で \(e^x\) のテイラー展開を計算する方法についての記録です。
Fortran 95 で各種ソート処理のアルゴリズムを実装してみました。
Fortran 95 でヒープ(上方移動・下方移動)のアルゴリズムを実装してみました。
Fortran 95 で線形計画法を「シンプレックス法」で解くアルゴリズムを実装してみました。
Fortran 95 で「ガウスの消去法」による連立方程式の解法を実装する方法についてです。
Fortran 95 で「ガウス・ジョルダン(ピボット選択)法」による連立方程式の解法を実装する方法についてです。
Fortran 95 で「ガウス・ジョルダン法」による連立方程式の解法を実装する方法についてです。
Fortran 95 で、 Box-Muller 法を使って正規乱数を生成してみました。
前回、 Fortran 95 で NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(UT1; 世界時1)の ISS の位置・速度(TEME 座標)を、 SGP4 アルゴリズムを用いて計算しました。 今回は、これの応用として、取得した TEME 座標を WGS84 座標(いわゆる、緯度・経度・高度...
Fortran 95 で、 NASA 提供の最新の TLE(2行軌道要素形式)から任意の時刻(UT1; 世界時1)の ISS の位置・速度(TEME 座標)を、 SGP4 アルゴリズムを用いて計算してみました。
Fortran 95 で多倍長演算ライブラリ FMLIB を使用して円周率を計算してみました。(Chudnovsky の公式、 BSA(Binary Splitting Algorithm) 法を使用)
Fortran 95 で多倍長演算ライブラリ FMLIB を使用してネイピア数を計算してみました。
Fortran 90/95 で多倍長演算をすべく、ライブラリ FMLIB をインストールしました。
Fortran 95 で、日・月の出・南中・入時刻を計算してみました。(出・入はその時の方位角、南中はその時の高度も) 過去に Ruby で行ったことはありましたが。 Ruby - 日・月の出・入・南中計算 gem の作成!
Fortran 95 で、海上保安庁・海洋情報部の「コンピュータによる天体の位置計算式」を利用して、太陽や月の視位置等を計算してみました。 過去に Ruby や Python で行ったことはありましたが。 Ruby - 太陽・月の視赤経・視赤緯等の計算(海保略算式版)! Ruby - 太陽・月の視黄...
Fortran 95 で、 NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している太陽・月・惑星の暦の最新版 DE430 からデータを取得し、太陽と月の視位置を高精度で計算してみました。 過去に Ruby で行ったことはありましたが。(Python...
赤道直交座標にバイアス・歳差・章動の回転を適用する処理を Fortran 95 で実装してみました。 過去には Ruby のライブラリを作成たことがありましたが。(Python でも作成したことがあるが、ブログ記事にはしていない) Ruby - バイアス・歳差・章動の適用(by 自作 gem ライブラリ...
前回、NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 のバイナリ形式のデータを Fortran 95 で読み込みました。 Fortran - JPL 天文暦バイナリデータの読み込み! 今回は、読み込...
NASA の機関である JPL(Jet Propulsion Laboratory) が惑星探査用に編纂・発行している月・惑星の暦の最新版 DE430 のバイナリ形式のデータを Fortran 95 で読み込んでみました。 過去には Ruby や Python でも行いましたが。 Ruby - JPL ...
グリニッジ視恒星時(GAST; Greenwich Apparent Sidereal Time)、グリニッジ平均恒星時(GMST; Greenwich Mean Sidereal Time)、分点均差(EE; Equation of Equinoxes )の計算を Fortran 95 で行いました。(使用する...
天体の回転に使用する章動の計算を Fortran 95 で行いました。(使用するのは IAU2000A 理論) 過去には Ruby や Python でも行いましたが。 Ruby - 章動の計算(IAU2000A 理論)! Python - 章動の計算(IAU2000A 理論)!
赤道直交座標と黄道直交座標や、直交座標と極座標の相互変換を Fortran 95 で行いました。 過去には Ruby や Python でも行いましたが。 赤道座標と黄道座標、直交座標と極座標の変換! Ruby - 赤道・黄道座標の変換(by 自作 gem ライブラリ)! Python - 赤道...
暦計算や天文計算を行う際に必要な各種時刻系換算を Fortran 95 で行いました。 過去には Ruby や Python でも行いましたが。 Ruby - 各種時刻系の換算! Python - 各種時刻系の変換!
以前、複数存在する DE430 のテキスト形式データファイルを1つのバイナリ形式のファイルにコンバートする方法についての記録しました。 JPL 天文暦データのバイナリ化! 但し、 FORTRAN 77 のソースコードでした。 今回、 Fortran 95 に移植しました。以下、その記録です。
Fortran 95 で、数値積分(台形則/シンプソン則による定積分)行ってみました。
Fortran 95 で、非線形方程式をニュートン法を使って解いてみました。
Fortran 95 で、非線形方程式を二分法を使って解いてみました。
Fortran 95 で、複素数の収束による方法で 2D フラクタルを描画してみました。
Fortran 95 でセル・オートマトンの実装を試してみました。
Fortran 95 でスタックの実装を試してみました。 (応用で、逆ポーランド記法による電卓も作成)
Fortran 95 でフィボナッチ数列の計算をしてみました。
Fortran 95 で1次元配列の各要素の逆数平均(Rosseland Mean)を計算してみました。
Fortran 95 で階乗の計算をしてみました。(あまりに簡単なアルゴリズムですが)
Fortran 95 で最大公約数の計算をしてみました。(単純なアルゴリズムですが)
Fortran 95 で行列とベクトルの積を計算してみました。
Fortran 95 でベクトルの内積を計算してみました。
LMDE 2 (Linux Mint Debian Edition 2) へ最新版 GCC をソースビルドでインストールする方法についての記録です。
今回は、 Fortran95 でポインタを使用して連結リストを生成する方法についてです。
今回は、 Fortran95 で英文の小文字を全て大文字に変換する方法についてです。
今回は、 Fortran95 で素数の一覧を算出する方法についてです。
今回は、 Fortran95 での倍精度浮動小数点数の指定方法についてです。
今回は、 Fortran95 で級数を計算してみただけです。
以前、線形合同法を使用して一様乱数を生成する C++ コードや Ruby スクリプトを紹介しました。 C++ - 一様乱数(線形合同法)! Ruby - 一様乱数(線形合同法)! 今回は、同じアルゴリズムを Fortran90/95 で実装してみました。 アルゴリズムについては、上記 C++ の記...
前回、「月・惑星の暦 JPL DE430 について」という記事を公開しました。(DE430 は、NASA の機関である JPL(Jet Propulsion LaboratoryJPL) が惑星探査用に編纂・発行している月・惑星の暦の最新版) 今回は、複数存在する DE430 のテキスト形式データファイルを1つ...
こんばんは。 パッケージでインストールされる GCC(GNU Compiler Collection) はバージョンが若干古く、新しいバージョンで搭載された機能を試す(使用する)ことができません。 (例えば、旧バージョンでは boost ライブラリを使用しなければならなかった “regex” が標準で使用できる...
パッケージでインストールされる GCC(GNU Compiler Collection) はバージョンが若干古く、新しいバージョンで搭載された機能を試す(使用する)ことができません。 (例えば、旧バージョンでは boost ライブラリを使用しなければならなかった “regex” が標準で使用できるようになっている...
前々回、前回は、C++, Ruby による「最小二乗法」のアルゴリズムを紹介しました。 C++ - 最小二乗法! Ruby - 最小二乗法! 今回は、同じアルゴリズムを Fortran 95 で実現してみました。アルゴリズムについては、上記リンクの記事を参照してください。
これまで、円周率を Arctan 系の公式で多桁計算する C++, Ruby アルゴリズムを紹介しました。 C++ - 円周率計算(Arctan 系公式(その2))! Ruby - 円周率計算(Arctan 系公式(その2))! (上記のリンクの記事より以前にも同様な記事を紹介していますが、改良前...
Cygwin 上で Fortran を使えるようにしてみました。 大学時代に FORTRAN77(パンチカード式)に少しだけ触れた程度でしたが、思い出す意味も含めてコンパイルできる環境を準備してみました。 Fortran は現在、オブジェクト指向プログラミングのできる Fortran2003 が最新のようですが...