Haskell
連立一次方程式 が与えられた場合, まず(1)式を9で割って(1)'とする. (2)式から(1)'式に2を掛けたものを引くとの項が消える. (3)式に(1)'式を足すとの項が消える. (4)式から(1)'式を引くとの項が消える.同様にして, 2番目の式を利用して, 3番目以降の式のyを…
例として を考える. この方程式を上から順に対角線上の変数について解くと となる. に適当な値を入れて右辺を計算し、 得られた値を新たなとして、計算を繰り返す. 漸化式で書くと import Text.Printf import Debug.Trace import Control.Monad n = 4::Int d…
非線形方程式の解法(2分法)を利用して2の平方根を求める 1. まず, 条件 を満たす点 を考えると, 関数 の解は, 区間 の中に存在する. 2. 次に, 区間 の中点 を考えると, であれば, 解は区間 の中に存在し, 同様に, であれば, 区間 の中に存在する. 3. この…
初速 250 km/h で, 45°の角度で打ったボールの軌跡をオイラー法で計算する (空気抵抗係数を 0.01 で計算) 重力による鉛直方向の減速分は, 重力加速度を g, 時間を t とすると, 空気抵抗による水平方向の減速分は,速度を v, 速度の水平方向成分を vx, 空気抵…
πの求め方 積分(ロンバーグ積分) まず, T1,1 から Tn,1 を, 台形則を使って求める. 次に, T2,2 から Tn,n まで, 以下の計算を行う. import Text.Printf import Control.Monad f::Double->Double f x = 4 / (1 + (x * x)) -- Richardsonの補外法 rich_sub n […
πの求め方 積分(Simpson則) import Text.Printf import Control.Monad f::Double->Double f x = 4 / (1 + (x * x)) main = do forM_ ([1..5::Integer]) $ \j -> do let n = 2 ^ j let a = 0.0 let b = 1.0 let h = (b - a) / (fromIntegral n) -- シンプソン…
をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. import Text.Printf import Control.Monad -…
πの求め方 積分(中点則) f::Double->Double f x = 4 / (1 + (x * x)) import Text.Printf import Control.Monad forM_ ([1..10::Integer]) $ \j -> do let n = 2 ^ j let a = 0.0 let b = 1.0 let h = (b - a) / (fromIntegral n) -- 中点則で積分 let a2 = …
Scala object Scala0101 { def main(args:Array[String]) { println(3 + 5) println(3 - 5) println(3 * 5) println(Math.pow(3, 5)) println(5 / 3) println(5.0 / 3) println(5 / 3.0) println(5 % 3) printf("%d\n", 3 * 5) print(3 * 5 + "\n") println(…
本日発売! さまざまな言語で数値計算 第2巻 数値積分作者: 山岡直樹出版社/メーカー: ForNext発売日: 2013/12/01メディア: Kindle版この商品を含むブログ (5件) を見る πの求め方 積分(台形則) f::Double->Double f x = 4 / (1 + (x * x)) -- 台形則 trape…
πの求め方 こう書いてもおk import Text.Printf import Control.Monad -- 自作の逆正接関数 myAtan::Double->Double->Int->Double->Double myAtan x x2 n t = let m = (fromIntegral (n `div` 2)) denom = (m * m * x2) / ((fromIntegral n) + t) num = n -…
Compile and Execute Programs Online fizzbuzz :: Int -> String fizzbuzz x | x `mod` 15 == 0 = "FizzBuzz" | x `mod` 3 == 0 = "Fizz" | x `mod` 5 == 0 = "Buzz" | otherwise = show x main = do putStr $ unlines $ map fizzbuzz [1..100] Compiling t…