下班了 给你个思路自己算'dScale 精度,如果满足精度要求则返回结果退出 Function Test(dScale As Double, ParamArray p() As Variant) As Double Dim sExpression As String Dim i As Long Dim pEx As New RegExp
'生成表达式 sExpression = "0" For i = 0 To UBound(p) sExpression = sExpression & "+1/(1+x)^" & (i + 1) Next
应该整理后是这样
0=C1*(1+x)n-1次方+C2**(1+x)n-2次方+.....+Cn***(1+x)0次方
那么这个在高数中好像有算法,我忘了
关于表达式计算,看这个帖子:
http://community.csdn.net/Expert/topic/3231/3231596.xml?temp=.699917
Function Test(dScale As Double, ParamArray p() As Variant) As Double
Dim sExpression As String
Dim i As Long
Dim pEx As New RegExp
'生成表达式
sExpression = "0"
For i = 0 To UBound(p)
sExpression = sExpression & "+1/(1+x)^" & (i + 1)
Next
'取两点的值判断曲线方向 (0,y1) (1,y2)
'比较y1,y2的值,以及y1,y2大于零还是小于零来判断曲线和x轴交点在哪边
'找到一个区域让y'*y''<0
'则交点在[x',x'']中
'利用逼近方法算出交点
End Function
sExpression = sExpression & "+(1/(1+x)^" & (i + 1) & ")*" & p(i)
Next
x=y-1