梯形积分法

刚刚pan给我一个题目,说要用什么梯形近似,偶不懂啊,只好去百度了,原来是将曲边梯形做n等分后用梯形面积公式求小梯形面积,他们的和就是近似积分值(是数值分析中的常用方法),长见识了啊!——据说还是道澳大利亚的题。汗……
在网上搜到了一个vb代码(积分函数是x平方):
Dim a, b, dx, x, xx1, xx2, yy1, yy2, Sol, SubSol As Single

Private Sub Command1_Click()

a = Val(InputBox(“下限a=?”, “积分范围”))
b = Val(InputBox(“上限b=?”, “积分范围”))
no = 1000  ‘间隔数
xx1 = a
xx2 = a
dx = (b – a) / no
For i = 1 To no
xx1 = xx2
xx2 = xx1 + dx
yy1 = func(xx1)
yy2 = func(xx2)
SubSol = (yy1 + yy2) * dx / 2
Sol = Sol + SubSol
Next i
MsgBox “积分结果=” & CStr(Sol), vbOKOnly, “梯形法积分”
End Sub
——————————————————————————–
Function func(ByVal x As Single) As Single
‘函数在此更改
func = x ^ 2#
End Function
在vb里编译了一下,真是可以,就是1000的分割有点儿小,不太精确。
ps:在http://richrat.ys168.com/的下载目录里,可以下到那个小程序:梯形积分法.exe

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注