【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

下図の積分を考えます。
ここで、f(h)はhの複雑な関数で手計算では解けません。Hは変数で、横軸にA、縦軸にHの連続なグラフ(A,Hのグラフ)をマトラボで書きたいのですが、どなたか分かる方教えてください。
よろしくお願い致します。

「積分範囲が変数の数値積分」の質問画像

質問者からの補足コメント

  • 回答して頂いた、皆さん、ありがとうございます。
    積分の下限値がゼロではなくその他の定数(例えば1や2)でもグラフは描けますでしょうか。

      補足日時:2015/04/09 23:35

A 回答 (4件)

ここは、積分の基本に戻って、下記で泥臭くやってはいかがですか。



(1)f(xi)を計算する。
 f(h)が複雑な関数でも、特定の h=xi での関数値は求まりますよね?

(2)Δhを決める。
  計算の精度を考えて、h の区間 h0~H を適当に n 等分してください。
  Δh = (H - h0) / n

(3)f(xi) × Δh を求める。

(4)A = Σ(f(xi) × Δh)に加える。

(5)x(i+1) = xi + Δh と置く。

(6)再び(1)に戻って、これをずっと繰り返す。
  (初期値 x1 = h0 、最終値 xn = H - Δh)

 ご所望の計算は、「H をいろいろ変えて」ということですが、上記の計算方法だと「Δh を固定して、n をいろいろ変えて」という方が効率的だと思います。

 matlab というソフトを使ったことはありませんが、上記の計算なら簡単なプログラム言語で、あるいはエクセルを使っても計算できると思います。
    • good
    • 0

出発点をaとすればΔh=(H-a)/N, hi=a+(i-1)Δhとすればまったく同じです。

    • good
    • 0

#1です。


変化させるべきHの最大値HMの半分ぐらいの値で以上の計算をして、しっかり収束するようだったら

H=Hj=(HM/1000)×j(j=1,2,...1000)

程度に増加させてHMの範囲の計算を遂行します。
    • good
    • 0

単なる数値積分、必要な精度と計算時間の組み合わせにおいて多種多様な公式があります。



最もシンプルなのは曲線の階段近似によって

A=Σ(i=1,N)f(hi)Δh,

hi=(i-1)Δh

Δh=H/N

Nを細かくとれば精度は上がります。Nは100,200,500,1000ぐらいでやってみて収束するようだったら精度的に十分な最小の分割にします。

適当な分割で精度の高い以下のシンプソンの公式が私の好みです。

A=Σ(i=1,N)[f(hi)+4f(hi+Δh/2)+f(hi+Δh)](Δh/6)

記号の意味は上と同じです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報