『情報科学入門 Rubyを使って学ぶ』の練習問題の解答例の他、授業スライドの練習問題の解答例や、プログラミングのポイント等を掲載します。他クラスの方の利用歓迎。改良・訂正箇所ありましたらご指摘ください。

2010/12/15

[ス]練習問題(第六章)

授業スライド「06数値計算」の練習問題の解答例です。 

えーーーーーーー
皆さん今日は。S23-7 情報科学シケタイです。
突然ですが私数学がとっても苦手でして、この章に突入してからあわあわな感じです。
それを考慮の上ご覧ください><




  • 以下の積分(省略w)を台形公式で近似して円周率を求めよ。n を引数として円周率を返す関数を定義せよ。
trapezoid.rb の f を定義しなおし、
def pi(n)
4.0 * trapezoid(....)
end

def  f(x)
  1.0/(1+x**2)
end


def  pi(n)
  4.0*trapezoid(0,1,n)
end




  •  以下の積分をシンプソン公式で近似して円
    周率を求めよ。n を引数として円周率を返
    す関数を定義せよ
def  f(x)
  4.0/(1+x**2)
end


def  simpson(xs,xe,n)
  deltax=(xe-xs)/(2.0*n)
  sum=f(xs)+4*f(xs+deltax)+f(xe)
  for  i  in 1..(n-1)
    sum=sum+2*(xs+2*i*deltax)+4*f(xs+(2*i+1)*deltax)
  end
  deltax*sum/3.0
end


  • 4*montecarlo(n) を色々な引数で実行し、円周率が近似できることを確かめよ。
  • show(mcplot(n)) を実行して、点がばらまかれる様子を観察せよ。– 配列の引数に浮動小数点数を与えると切り捨てられる。

0 件のコメント:

コメントを投稿