ONLY DO WHAT ONLY YOU CAN DO

こけたら立ちなはれ 立ったら歩きなはれ

Go

Go 言語で固有値を求める (ヤコビ法)

対称行列 の非対角成分のうち絶対値が最大の成分を とするとき, その他の対角成分を , その他の非対角成分を とした行列 を考える. に と, 転置行列 を左右からかけてできた行列 の固有値と固有ベクトルは元の行列 から変化しない. これを相似変換という. と…

Go 言語で固有値を求める (QR分解)

対称行列 を 正規直交行列 と 右三角行列 の 積に分解し, 逆順に掛けたものを新たな として 処理を反復すると, 元の行列の固有値が対角成分に並んだ右三角行列に収束する. package main import "fmt" import "math" const N = 4 // QR分解で固有値を求める f…

Go 言語で固有値を求める (LR分解)

対称行列 を 左三角行列 と 右三角行列 の 積に分解し, 逆順に掛けたものを新たな として 処理を反復すると, 元の行列の固有値が対角成分に並んだ右三角行列に収束する. package main import "fmt" import "math" const N = 4 // LR分解で固有値を求める fun…

Go 言語で固有値・固有ベクトルを求める (逆反復法)

正方行列 の逆行列を求め として反復法で最大固有値を求めれば, その逆数が最小固有値になる. 逆行列を計算するより, を解いた方が簡単. 逆べき乗法ともいう. package main import "fmt" import "math" const N = 4 func main() { var a [N][N]float64 = [N]…

Go 言語で固有値・固有ベクトルを求める (反復法)

の正方行列 と 次元のベクトル について (ただし ) が成り立つとき を固有値, を固有ベクトルという. 最初に適当なベクトル から始めて を反復すると は行列 の最大固有値に対応する固有ベクトルに収束する. 固有値はレイリー(Rayleigh)商 により求める. べ…

Go言語 で連立一次方程式を解く(ヤコビの反復法)

例として を考える. この方程式を上から順に対角線上の変数について解くと となる. に適当な値を入れて右辺を計算し、 得られた値を新たなとして、計算を繰り返す. 漸化式で書くと package main import "fmt" import "math" const N = 4 func main() { var a…

Go言語で非線形方程式を解く (2分法)

非線形方程式の解法(2分法)を利用して2の平方根を求める 1. まず, 条件 を満たす点 を考えると, 関数 の解は, 区間 の中に存在する. 2. 次に, 区間 の中点 を考えると, であれば, 解は区間 の中に存在し, 同様に, であれば, 区間 の中に存在する. 3. この…

Go言語で関数の近似(エルミート補間)

をエルミート補間で近似する2個の関数値 f(x0), f(x1) と,それぞれの微分係数f'(x0), f'(x1) とを 与えられたとき, 与えられた2個の関数値を通る53次式を求めるには, まず次のような表を作る. このとき, . あとは, ニュートン補間と同じ この式を使って,…

Go言語で関数の近似(ネヴィル補間)

をネヴィル補間で近似する与えられた5個の関数値 f(x0), f(x1), f(x2), f(x3), f(x4) を通る4次式は、次のようにして求めることができる. (1) (2) (3) (4) (5) これらの式を使って, 与えられた点以外の点の値を求める. package main import "fmt" import "…

Go言語で関数の近似(ニュートン補間)

をニュートン補間で近似する与えられた4個の関数値 f(x0), f(x1), f(x2), f(x3) を通る3次式を求める場合, まず次のような表を作る. このとき, と定義する. これを x0とx1 の第1差分商, または1階差分商という. 同様に と定義し, これを x0, x1, x2 の第…

Go言語で関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. package main import "fmt" import "math" c…

さまざまな言語で四則演算と数値の出力

VBScript WScript.Echo 3 + 5 WScript.Echo 3 - 5 WScript.Echo 3 * 5 WScript.Echo 3 ^ 5 WScript.Echo 5 / 3 WScript.Echo 5 \ 3 WScript.Echo 5 Mod 3 WScript.StdOut.Write 3 * 5 & vbNewLine WScript.StdOut.WriteLine 3 * 5Z:\>cscript //nologo 0101.…

Go言語で 積分(台形則)して π を求める

πの求め方 積分(台形則) package main import "fmt" import "math" func main() { const a = 0 const b = 1 // 台形則で積分 var n int = 2 for j := 1; j <= 10; j++ { var h float64 = (b - a) / float64(n) var s float64 = 0 var x float64 = a for i :=…