今回のテーマ: 数値積分
台形則による数値積分 (その1')
「台形則」の最終的な表式である \[ \int_{a}^{b}f(x)dx ={h}\left[\frac{1}{2}f(a)+\sum_{i=1}^{N-1}f(x_i)+\frac{1}{2}f(b)\right] \] (ただし \(h=(b-a)/N\)) を用いて定積分の計算をしようとする際の、必要な手順 (の大部分) は以下の通り [みほん] 。 ただし例の如く、肝心なところは (わざと) 抜いている ので、各自で考えて埋めてほしい。
なお、このプログラム独特のミソは以下の通り。
定積分の値を計算するのに必要な「器」を宣言する。 例えば「総和」をとるのに使う souwaを新たに用意しておく。
「短冊」の数や、その両端での x や y の値を入れる「器」を宣言する。 なお個々の「短冊」の面積を計算したりしないので、それ用の配列は宣言していない。
定積分の値を計算し、変数 sekibun に入れる。 講義のノートに基づいて、正しい手順を考えてプログラムに書き入れよ。 必要があれば、「総和」をとるための変数 souwa も有効に活用せよ。 ここでも当然、配列の要素の数が必要な時は定数 kosuu を使って指定 するようにすること。
p | r | o | g | r | a | m | e | n | s | h | u | 1 | 2 | a | |||||||||||||||||||||||||||||||
i | m | p | l | i | c | i | t | n | o | n | e | ||||||||||||||||||||||||||||||||||
i | n | t | e | g | e | r | , | p | a | r | a | m | e | t | e | r | : | : | k | o | s | u | u | = | 1 | 6 | |||||||||||||||||||
r | e | a | l | , | d | i | m | e | n | s | i | o | n | ( | 0 | : | k | o | s | u | u | ) | : | : | x | , | y | ||||||||||||||||||
r | e | a | l | , | p | a | r | a | m | e | t | e | r | : | : | x | _ | k | a | i | s | h | i | = | 0 | . | 0 | , | x | _ | s | h | u | r | y | o | = | 1 | . | 0 | |||||
r | e | a | l | : | : | s | o | u | w | a | , | s | e | k | i | b | u | n | , | d | x | ||||||||||||||||||||||||
i | n | t | e | g | e | r | : | : | i | ||||||||||||||||||||||||||||||||||||
d | x | = | ( | x | _ | s | h | u | r | y | o | - | x | _ | k | a | i | s | h | i | ) | / | r | e | a | l | ( | k | o | s | u | u | ) | ||||||||||||
d | o | i | = | 0 | , | k | o | s | u | u | |||||||||||||||||||||||||||||||||||
x | ( | i | ) | = | x | _ | k | a | i | s | h | i | + | d | x | * | r | e | a | l | ( | i | ) | ||||||||||||||||||||||
y | ( | i | ) | = | 1 | . | 0 | / | ( | 1 | . | 0 | + | x | ( | i | ) | * | * | 2 | ) | ||||||||||||||||||||||||
e | n | d | d | o | |||||||||||||||||||||||||||||||||||||||||
s | o | u | w | a | = | 0 | . | 0 | |||||||||||||||||||||||||||||||||||||
d | o | i | = | 1 | , | k | o | s | u | u | - | 1 | |||||||||||||||||||||||||||||||||
s | o | u | w | a | = | ||||||||||||||||||||||||||||||||||||||||
e | n | d | d | o | |||||||||||||||||||||||||||||||||||||||||
s | o | u | w | a | = | s | o | u | w | a | + | 0 | . | 5 | * | ( | y | ( | 0 | ) | + | y | ( | k | o | s | u | u | ) | ) | |||||||||||||||
s | e | k | i | b | u | n | = | s | o | u | w | a | * | d | x | ||||||||||||||||||||||||||||||
w | r | i | t | e | ( | * | , | * | ) | k | o | s | u | u | , | s | e | k | i | b | u | n | , | s | e | k | i | b | u | n | * | 4 | . | 0 | |||||||||||
e | n | d | p | r | o | g | r | a | m | e | n | s | h | u | 1 | 2 | a |
正しく動いていれば、だいたい以下のような出力が得られるはずである。
16 0.785235405 3.14094162