ONLY DO WHAT ONLY YOU CAN DO

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

数値計算

3冊同時に Amazon Top 10

C++で常微分方程式(オイラー法)

初速 250 km/h で, 45°の角度で打ったボールの軌跡をオイラー法で計算する (空気抵抗係数を 0.01 で計算) 重力による鉛直方向の減速分は, 重力加速度を g, 時間を t とすると, 空気抵抗による水平方向の減速分は,速度を v, 速度の水平方向成分を vx, 空気抵…

C++で常微分方程式(ホイン法)

初速 150 km/h で, 45°の角度で投げたボールの軌跡をホイン法で計算する (空気抵抗を考慮しない) #include <iostream> #include <iomanip> #include <math.h> using namespace std; // 重力加速度 const double g = 9.8; // 水平方向の速度 double fx(double t, double vx) { // 水平方</math.h></iomanip></iostream>…

C++で常微分方程式(オイラー法)

初速 150 km/h で, 45°の角度で投げたボールの軌跡をオイラー法で計算する (空気抵抗を考慮しない) #include <iostream> #include <iomanip> #include <math.h> using namespace std; int main(void) { // 角度 double degree = 45; double radian = degree * M_PI / 180.0; // 初速 150</math.h></iomanip></iostream>…

C++で常微分方程式(オイラー法)

をオイラー法で近似する #include <iostream> #include <iomanip> #include <math.h> using namespace std; // 元の関数 double f(double x); // 導関数 double fd(double x); // Euler法 void euler(double x, double y, int n, double max); int main(void) { double x = 0.0; double </math.h></iomanip></iostream>…

JScriptで関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. // データ点の数 var N = 7 var x = [] var …

VBScriptで関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. Option Explicit 'データ点の数 - 1 Private…

「関数の近似」本日発売

本日発売 さまざまな言語で数値計算 第3巻 関数の近似作者: 山岡直樹出版社/メーカー: ForNext発売日: 2014/01/01メディア: Kindle版この商品を含むブログ (2件) を見る 既刊 さまざまな言語で数値計算 第1巻 級数展開・連分数展開作者: 山岡直樹出版社/メ…

Haskell で 積分(ロンバーグ積分)して π を求める

πの求め方 積分(ロンバーグ積分) まず, 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 […

Haskell で 積分(Simpson則)して π を求める

πの求め方 積分(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) -- シンプソン…

F#で関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. module Fs0701 // データ点の数 - 1 let N =…

Scalaで関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. object Scala0701 { // データ点の数 - 1 va…

Clojureで関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. (def N 7) ; 元の関数 (defn f[x] (+ (- x (…

Haskellで関数の近似(ラグランジュ補間)

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

Haskell で 積分(中点則)して π を求める

πの求め方 積分(中点則) 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 = …

Adaで関数の近似(ニュートン補間)

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

Adaで関数の近似(ネヴィル補間)

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

Adaで関数の近似(ラグランジュ補間)

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

Pascalで関数の近似(ニュートン補間)

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

Pascalで関数の近似(ネヴィル補間)

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

Pascalで関数の近似(ラグランジュ補間)

をラグランジュ補間で近似するn+1個の点 (x0, y0), (x1, y1) … (xn, yn) が与えられているとき, これらすべての点を通る n次式は次のように表すことができる. この式を使って, 与えられた点以外の点の値を求める. Program Pas0701(arg); {$MODE delphi} uses…

C++で関数の近似(スプライン補間)

をスプライン補間で近似する複数の点が与えられているとき, これらを1つの多項式でつなげるのではなく, 2点ずつの区間に分けて, 小区間ごとに別々の3次式を設定する.(1) 連立1次方程式をたてる (2) 連立1次方程式を解いて si を求める(3) 区間 xi 〜 xi+1…

C++で関数の近似(スプライン補間)

LaTeX で出力してみた。 スプライン補間そのものの説明は、後日。 参考文献

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

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

C++で関数の近似(エルミート補間)

をエルミート補間で近似する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 "…

C++で関数の近似(ネヴィル補間)

をネヴィル補間で近似する与えられた5個の関数値 f(x0), f(x1), f(x2), f(x3), f(x4) と、 未知の点を通る4次式を求める場合, 次のような順序で計算する. (1) (2) (3) (4) (5) これらの式を使って, 与えられた点以外の点の値を求める. #include <iostream> #include <iomanip></iomanip></iostream>…

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

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

C++で関数の近似(ニュートン補間)

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

VB.NETで関数の近似(ラグランジュ補間)

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