積分の値を計算するには、おおよそ、優れたメソッドがあります。そのメソッドは、作成者の名前をSimpsonメソッドの名前にしています。それは放物線の構築を使用するので、放物法とも呼ばれます。この図は、できるだけ関数の近くに構築されています。実際には、点が関数の点と正確に一致する放物線を作ることは不可能であるため、積分はおおよそです。境界aとbでそれを見つけるための式は、次のようになります。1 / h *(y0+ 4y1+ 2y2+ 4y3+ ... + 4yn-1+ yn)。 ここでは、0からnまでの各yを計算する必要があります。ここでnは自分自身によって決定されます。より多くのyは、真の価値に近いほど良いです。 hについては、(b-a)/(n-1)の式で算出する。
理論的には、すべてが非常に単純ですが、実際にはすべてこれを実現する。多くのプログラマーにとって、Simpson-PascalやDelphiのような問題を解決する良い方法はありません。この環境では、積分を計算するだけでなく、関数グラフやそのために構築された台形を構築することもできます。そこで、Simpsonの方法をすばやく実装する方法を理解し、必要に応じて、ここでどのように組織化されているのかを説明します。
しかしその前に、一体的な見方を覚えておいてください。これは、x軸から始まる行、つまりaとbで囲まれた図形です。
だから、まず、あなたが作成する必要がありますあなたはf:=と書いて、それから積分を見つける必要がある、可積分関数のための関数(残念なことに申し訳ありません)です。ここでは、パスカルで関数を入力する際に間違いをしないことが非常に重要です。しかし、これは会話のための別個の話題です。結果のコードは次のようになります。
関数f(x:実数):実数;
そして関数の主なテキスト
始まる
f:= 25 * ln(x)+ sin(10); {あなたの関数の内容を書く必要がある}
終わり。
次に、シンプソン法の実装のための関数を書く。始めは次のようなものになります:
関数simpsonmetod(a、b:実数; n:整数):実数;
次に、変数を宣言します。
var
s:リアル; {中間金額(さらに理解する}}
h:実; {ステップ}
私:整数。 {ただのカウンター}
mno:整数。 {通常乗数}
そして今、実際には、プログラムそのもの:
始まる
h:=(b-a)/(n-1)。 {我々は標準的な式でステップを計算する。タスクにステップが記述されることがあります。この場合、この式は適用されません}
s:= f(b)+ f(a)。 {初期ステップ値を設定}
mno:= 4; {式 - 1 / h *(y0+ 4y1 ... ここではこの4がここに書かれていて、2番目の乗数は2になりますが、これ以上は}
基本的な式は次のとおりです。
私のため:= 1からn-2は始まる
s:= s + mno * f(a + h * mu)。 {合計に、次の係数に4 * yを乗算した値を加えますn または2 * yn }
{mno = 4}ならばmno:= 2 else mno:= 4; {ここでも乗数は変わります - 今なら4、それは2に変わります}
終わり。
simpsonmetod:= s * h / 3; {次に、結果の合計に式に従ってh / 3を掛けます}
終わり。
それだけです - 式に基づいてすべての行動を行います。メインプログラムにSimpsonメソッドを適用する方法をまだ理解していない場合は、この例を参考にしてください。
だから我々が書いたすべての機能を書いた後
始める
n:= 3; {セットn}
q:= simpsonmetod(a、b、n); {シンプソンの方法は、aからbへの積分を計算することなので、いくつかの計算ステップがあるので、サイクルを構成します}
繰り返す
q2:= q; {前のステップが記憶されている}
n:= n + 2;
q:= simpsonmetod(a、b、n); {そして、次の値が計算されます}
まで(ABS(Q-Q2)<0.001); {必要な精度に達するまで、同じ操作を繰り返す必要があるように設定精度は、書き込まれています}
それが彼の方法です - シンプソンの方法。実際には、何も複雑ではなく、すべてが非常に迅速に書かれています!今度はあなたのTurbo Pascalを開き、プログラムを書いてみましょう。
</ p>