ここから本文です

解決済みの質問

知恵コレに追加する

VBAプログラミング y=sinxのグラフの面積(x軸の範囲は[0、π])を長方形近似(あ...

hikaru_44455277788さん

VBAプログラミング
y=sinxのグラフの面積(x軸の範囲は[0、π])を長方形近似(あるいは台形公式近似)により1000等分して求めるサブプロシジャ「prog1」を書きなさい。

とりあえず
Sub prog(4)
n=1000
x1=0
x2=1
dx=(x2-x1)/n
s=0
For i=0 To (n-1)
x=x1+i*dx
s=s+dx*func1(x)
Next i

まではなんとか書けたんですが、その後がわかりません(@_@;)
そもそもここまで合っているかも不明なので、詳しい方お願いします><

補足
サブプロシジャ「prog1」→サブプロシジャ「prog4」
Sub prog(4)→Sub prog4()の間違いです。

違反報告

ベストアンサーに選ばれた回答

hotosysさん

こんなのではどうでしょうか?

Sub sample()
Dim pi As Double
Dim n As Integer
Dim xs As Double
Dim xe As Double
Dim dx As Double
Dim x1 As Double
Dim x2 As Double
Dim s1 As Double
Dim s As Double
Dim i As Integer

pi = WorksheetFunction.pi '3.14159265358979
n = 1000 '分割数
xs = 0 'xの初期値
xe = pi 'xの終了値
dx = (xe - xs) / n 'xの1区間の長さ
s = 0 '面積の初期値
For i = 0 To (n - 1) '0から分割数-1の分割数回
x1 = i * dx '分割区間の左側のx値
x2 = x1 + dx '分割区間の右側のx値(左側のx値+1区間の長さ)
s1 = dx * (func1(x1) + func1(x2)) / 2 '台形面積
s = s + s1 '総面積に加える
Next
MsgBox s
End Sub

'ターゲット関数
Function func1(x As Double) As Double
func1 = Sin(x)
End Function

質問した人からのコメント

  • ありがとうございましたm(__)m
  • コメント日時:2011/3/3 21:00:04

グレード

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 0点(5点満点中)0人が役に立つと評価しています。

この質問に付けられたタグ

タグとは

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

ただいまの回答者

01時47分現在

2686
人が回答!!

1時間以内に5,450件の回答が寄せられています。

>>回答ひろばに行く