シンプソン 公式。 C++

[C言語] 数値積分(シンプソンの公式)

シンプソン 公式

関数 の定積分を微小区間に分割して近似値として求める方法を数値積分と言います。 そして、以前「台形則による定積分」についてお話ししました。 まず、台形則では極小区間を直線で近似していたのに対し、シンプソン則では二次曲線で近似します。 前提条件• Scientific Linux 6. 3 64bit での作業を想定。 6 20120305 Red Hat 4. 6-4 1. 000000 積分記号(インテグラル)をイメージして出力しています。 被積分関数を define で定義しているため、関数値 が大きめに丸められており、誤差が若干大きいです。 また、区間分割数を 100 にしていますが、大きな値にすればもっと円周率に近づきます。 さらに、被積分関数によっては台形則より誤差が小さくなったりするので、どちらがよいかは一概には言えません。 タグ: カテゴリー: , 更新日時: 2012-10-08 00:20.

次の

数値計算入門I〜第7回〜

シンプソン 公式

数値計算入門I〜第7回〜 数値計算入門 I 第7回: 数値積分 7. 計算のアルゴリズムとして、• 台形公式• シンプソン公式 を考える。 まず、その準備として、たくさんのデータを扱うための「配列データ」について学ぶ。 2 配列データ X軸上の10個の点を考える。 その座標を、倍精度の浮動小数データで double x0, x1, x2, x3, x4, x5, x6, x7, x8, x9; とすべて宣言するのは大変である。 C言語などコンピュータ言語では、このような番号のついたデータ を扱うため"配列データ"を定義することができる。 C言語では double x[10]; と宣言すると、x[0]、x[1]、x[2]、....、x[9]という名前の10個の変数を利用できるようになる。 メモリーの上では、これらのデータは下図のように連続したアドレスを占める。 doubleは倍精度の浮動小数点数 なので、1個のデータは8バイトを必要とする。 従ってx[0]から、x[9]まで合計80バイトのつながった領域が割り当 てられる。 また 配列の添字は、0から始まることに注意する。 つまり"int A[10]"と宣言すると、A[0]からA[9]までの10個の符号付き整数割り当てられ、 A[10]というデータはないことに注意する。 int A[10], B[10]; 整数型の2個の配列A, Bを宣言。 A[0]〜A[9]までと、B[0]〜B[9]が割り当てられる。• double x[100], y[100]; 倍精度型の2個の配列x, yを宣言。 x[0]〜x[99]までと、y[0]〜y[99]が割り当てられる。 である。 そこで、まず5個の整数をキーボードから読みこみ、その和を計算するプログラムを作成しよう。 このプログラムを保存して、コンパイル、さらに実行しよう。 そのためには、端末から• out と入力すれば良い。 このような並べ替え(ソート)には、多くのアルゴリズムがある。 下のプログラムは、簡単な バブルソートである。 このプログラムをex7b. cという名前で 作成して、実行せよ。 問題7. 上の例題のプログラムを修正して,入力した数字を,大きいものから順にならべるようにせよ。 (提出)キーボードから10個の整数を読み取り,これを偶数と奇数に分類するプログラムを作成せよ。 たとえば,5, 12, 1, 4, 6, 15, -11, 20, -4, 15と数字を入力すると, Gusu: 12 4 6 20 -4 Kisu: 5 1 15 -11 15 と出力するようにする。 2以上の整数 N を読みこみ、上の式で定まる数列を第N項まで計算して、印刷するプログラムを作成せよ。 と出力される。 そのため、まず区間 [a,b] をN等分して、そのx座標を x 0, x 1, ,,,,x Nとする。 ここで、Nが大きくすれば、積分の誤差は小さくなる。 そこで、図3に台形公式での数値積分のプログラムを示す。 このプログラムをex7c. cという名前で作成して、実行しよう。 この積分の値は分割数Nを大きくすると3に近づくことを確かめよ。 10lf"を説明する。 Mlfとするのである。 今の場合、 15桁のうち、小数点以下に10桁使えという意味である。 問題7. 区間の分割数Nを増やして、 台形公式を使った積分の値Sの4倍を印刷せよ。 台形公式での積分の誤差は、h 2のオーダであることを証明せよ。 4 シンプソン公式 次に台形公式よりも精度の高いシンプソンの公式を学ぶ。 そこで、この値を2区間ずつ、足し上げていけば良いのである。 従ってNは偶数でなければならない。 このプログラムを、ex7d. cという名前で作成せよ。 ここで、S1は台形公式、S2はシンプソン法の結果である。 後者の方が精度が高いことを確かめよう。 問題7. シンプソン積分の公式、 式A を証明せよ。 69314718... になるはずである。 5 まとめ 今回で、C言語を用いた数値計算は一応おわりにする。

次の

シンプソンの公式

シンプソン 公式

CONTENTS• スポンサーリンク 数値計算による積分計算の基本~Simpson法~ 積分の計算は高校生までは紙とペンを使用し、様々な積分テクニック(置換積分・部分積分など)を駆使して行っていきます。 大学の初年度に上がると重積分を学習しますが、これも紙とペンを使って問題を解いていき、単位を取得します。 ところが、大学3年生以上になり、専門分野の勉強が進んでいくと、紙とペンでは解けない積分や、紙とペンを解くのが非常に難解だったり、手続きが多くてミスが起こりやすい積分の問題に度々出会うようになります。 そこで、「積分の計算をコンピュータで解く方法」が開発されており、代表例として シンプソン法があります。 今回の資料は、シンプソン法の理論的解説を詳しく行い、 プログラムを解いたり、シンプソン法を使ったプログラムを使用する際に迷いが起こらないようにするための基礎知識を整理するための資料になります。 台形近似より精度の高いシンプソン法 うん! まとめ 今回は、積分をコンピュータで解くのに使用されるシンプソン法について解説しました。 積分をコンピュータで解く初歩的な方法には 台形近似があるのですが、台形近似では非線形性の高い関数の積分を行ったときに精度の甘さが出てきてしまいます。 ここで、 「積分計算を台形の集合体の和ではなく、二次関数の集合体の和に近似しよう。 」というのがシンプソン法の発想です。 ストークも惑わされた 言葉の定義についてですが、積分したい関数を二次関数に近似するだけの公式を単に 「シンプソンの公式」といい、 積分したい関数を二次関数の集合体として取り扱う公式を 「合成シンプソンの公式」と呼びます。 私たちが積分の計算でプログラムを組む時に使われるのは「合成シンプソンの公式」の方になります。 合成シンプソンの公式でググってみるとわかると思いますが、色々な式の形があり、混乱することがあると思います。 奇数だけ足し合わせたり、偶数だけ足し合わせるとか、色々です。 しかし、 基本思想として「2次関数近似の寄せ集め」ということを理解しておけば、自分なりの理解の仕方がマスターでき、それに基づいてプログラムを書けるようになるでしょう。 この資料は私のシンプソン法への自分なりの理解の整理の結果でもあるのです。

次の