怎么用EXCEL算积分?

来源:百度知道 编辑:UC知道 时间:2024/07/06 12:11:45
cosφc=∫I(θ)cos(θ)sinθdθ/∫I(θ)sinθdθ,如果EXCEL不行,哪那个软件可以算呢?

1 Public Function 梯形积分(r As String, a As Double, b As Double, n As Integer) As Double
2 Dim dx As Double, i As Integer
3 dx = (b - a) / n
4 For i = 1 To n
5 梯形积分 = 梯形积分 + fx(r, (a + dx * (i - 1 / 2))) * dx
6 Next i
7 End Function
8 Public Function 复化辛普生积分(r As String, a As Double, b As Double, n As Integer) As Double
9 Dim dx As Double, i As Integer, m As Integer
10 m = 2 * n
11 dx = (b - a) / m
12 复化辛普生积分 = fx(r, a) + fx(r, b)
13 For i = 2 To m Step 2
14 复化辛普生积分 = 复化辛普生积分 + 4 * fx(r, (a + dx * (i - 1))) + 2 * fx(r, (a + dx * i))
15 Next i
16 复化辛普生积分 = (复化辛普生积分 - 2 * fx(r, (a + dx * m))) * dx / 3
17 End Function
18 Public Function fx(f As String, x As Double) As Double
19 f = LCase(f)
20 fx = Evaluate(Replace(f, "x", x))
21 End Function
两个函数的参数都是1.积分函数,自变量用x表示,x不区分大小写2.积分下限3.积分上限4.划分次数,不能大于32766,对于梯形积分,越大越接近真值,对于复化辛普生积分,没必要使用大的划分次数积分区间包含奇点(趋近于无穷的点),复化辛普生公式将不能正确积分,将来可能会修