Go
対称行列 の非対角成分のうち絶対値が最大の成分を とするとき, その他の対角成分を , その他の非対角成分を とした行列 を考える. に と, 転置行列 を左右からかけてできた行列 の固有値と固有ベクトルは元の行列 から変化しない. これを相似変換という. と…
対称行列 を 正規直交行列 と 右三角行列 の 積に分解し, 逆順に掛けたものを新たな として 処理を反復すると, 元の行列の固有値が対角成分に並んだ右三角行列に収束する. package main import "fmt" import "math" const N = 4 // QR分解で固有値を求める f…
対称行列 を 左三角行列 と 右三角行列 の 積に分解し, 逆順に掛けたものを新たな として 処理を反復すると, 元の行列の固有値が対角成分に並んだ右三角行列に収束する. package main import "fmt" import "math" const N = 4 // LR分解で固有値を求める fun…
正方行列 の逆行列を求め として反復法で最大固有値を求めれば, その逆数が最小固有値になる. 逆行列を計算するより, を解いた方が簡単. 逆べき乗法ともいう. package main import "fmt" import "math" const N = 4 func main() { var a [N][N]float64 = [N]…
の正方行列 と 次元のベクトル について (ただし ) が成り立つとき を固有値, を固有ベクトルという. 最初に適当なベクトル から始めて を反復すると は行列 の最大固有値に対応する固有ベクトルに収束する. 固有値はレイリー(Rayleigh)商 により求める. べ…
例として を考える. この方程式を上から順に対角線上の変数について解くと となる. に適当な値を入れて右辺を計算し、 得られた値を新たなとして、計算を繰り返す. 漸化式で書くと package main import "fmt" import "math" const N = 4 func main() { var a…
非線形方程式の解法(2分法)を利用して2の平方根を求める 1. まず, 条件 を満たす点 を考えると, 関数 の解は, 区間 の中に存在する. 2. 次に, 区間 の中点 を考えると, であれば, 解は区間 の中に存在し, 同様に, であれば, 区間 の中に存在する. 3. この…
をエルミート補間で近似する2個の関数値 f(x0), f(x1) と,それぞれの微分係数f'(x0), f'(x1) とを 与えられたとき, 与えられた2個の関数値を通る53次式を求めるには, まず次のような表を作る. このとき, . あとは, ニュートン補間と同じ この式を使って,…
をネヴィル補間で近似する与えられた5個の関数値 f(x0), f(x1), f(x2), f(x3), f(x4) を通る4次式は、次のようにして求めることができる. (1) (2) (3) (4) (5) これらの式を使って, 与えられた点以外の点の値を求める. package main import "fmt" import "…
をニュートン補間で近似する与えられた4個の関数値 f(x0), f(x1), f(x2), f(x3) を通る3次式を求める場合, まず次のような表を作る. このとき, と定義する. これを x0とx1 の第1差分商, または1階差分商という. 同様に と定義し, これを x0, x1, x2 の第…
をラグランジュ補間で近似する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.…
πの求め方 積分(台形則) 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 :=…