- 帖子
- 48
- 主題
- 1
- 精華
- 0
- 積分
- 53
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2010 & 2003
- 閱讀權限
- 20
- 性別
- 男
- 來自
- China
- 註冊時間
- 2013-1-12
- 最後登錄
- 2013-11-23
|
6#
發表於 2013-2-22 19:51
| 只看該作者
- Public Function 复化梯形积分(r As String, a As Single, b As Single, n As Integer) As Double
- Dim dx As Double, i As Integer
- dx = (b - a) / n
- 复化梯形积分 = (Evaluate(Replace(r, "x", a)) + Evaluate(Replace(r, "x", b))) / 2
- For i = 1 To n - 1
- 复化梯形积分 = 复化梯形积分 + Evaluate(Replace(r, "x", (a + i * dx)))
- Next i
- 复化梯形积分 = 复化梯形积分 * dx
- End Function
複製代碼- Public Function 辛普生积分(r As String, a As Single, b As Single, n As Integer) As Double
- Dim dx As Double, i As Integer, m As Integer
- m = 2 * n
- dx = (b - a) / m
- 辛普生积分 = Evaluate(Replace(r, "x", a)) + Evaluate(Replace(r, "x", b))
- For i = 2 To m Step 2
- 辛普生积分 = 辛普生积分 + Evaluate(Replace(r, "x", (a + dx * (i - 1)))) + 2 * Evaluate(Replace(r, "x", (a + dx * i)))
- Next i
- 辛普生积分 = 辛普生积分 * dx * 2 / 3
- End Function
複製代碼- Public Function 复化辛普生积分(r As String, a As Single, b As Single, n As Integer) As Double
- Dim dx As Double, i As Integer, m As Integer
- m = 2 * n
- dx = (b - a) / m
- 复化辛普生积分 = Evaluate(Replace(r, "x", a)) + Evaluate(Replace(r, "x", b))
- For i = 2 To m Step 2
- 复化辛普生积分 = 复化辛普生积分 + 4 * Evaluate(Replace(r, "x", (a + dx * (i - 1)))) + 2 * Evaluate(Replace(r, "x", (a + dx * i)))
- Next i
- 复化辛普生积分 = (复化辛普生积分 - 2 * Evaluate(Replace(r, "x", (a + dx * m)))) * dx / 3
- End Function
複製代碼 其中复化辛普生积分公式效率最高。
还在研究其他更搞笑的计算方法。。 |
|