ps虚化图片边缘:VB中如何实现求导数???

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 04:34:16
VB中如何实现求导数???有相关的控件吗?

+:(u+m)'=u'+m'
-:(u-m)'=u'-m'
*:(um)'=u'm+um'
/:(u/m)'=(u'm-um')/m^2
^:(u^m)'=(m'lnu+u'm/u)u^m
ln:(lmm)'=m'/m
sin:(sinm)'=m'(cosm)
cos:(cosm)'=-m'(sinm)
tan:(tanm)'=m'(secm)^2
ctg:(ctgm)'=-m'(cscm)^2...

比如说这样
Const delta = 0.0001
Sub Main()
Dim x As Double

x = 82
MsgBox qiudao(x, 1)
str1 = "一阶导数:" + CStr(6 * x ^ 5 - 25 * x ^ 4 + 8 * x ^ 3 - 3 * x ^ 2 + 20 * x - 3) + vbCrLf
str1 = str1 + "二阶导数:" + CStr(30 * x ^ 4 - 100 * x ^ 3 + 24 * x ^ 2 - 6 * x + 20) + vbCrLf
str1 = str1 + "三阶导数:" + CStr(120 * x ^ 3 - 300 * x ^ 2 + 48 * x - 6) + vbCrLf
str1 = str1 + "四阶导数:" + CStr(360 * x ^ 2 - 600 * x + 48) + vbCrLf
str1 = str1 + "五阶导数:" + CStr(720 * x - 600)
MsgBox str1
End Sub

Private Function func(ByVal x As Double) As Double
func = x ^ 6 - 5 * x ^ 5 + 2 * x ^ 4 - x ^ 3 + 10 * x ^ 2 - 3 * x
End Function

Private Function qiudao(ByVal pos As Double, Optional ByVal jieshu As Integer = 1) As Double
If jieshu = 1 Then
qiudao = (func(pos + delta) - func(pos - delta)) / delta / 2
Exit Function
End If

qiudao = (qiudao(pos + delta, jieshu - 1) - qiudao(pos - delta, jieshu - 1)) / delta / 2
End Function

我也不知道

没有,可以到书店去查!

没有现成的控件。函数类型不同,求倒数的方法也不同。

通常不会有一般性的计算导数的程序或控件。对于一般性的函数,可直接利用导数的定义,在程序中直接计算。
对于f(x),在x0处的导数就是
f(x0+dx)/dx只要取足够小的dx,并且在程序中取相应的数据类型与精度,就可以得到f(x)在x0处的导数。
例如要计算f(x)=lnx在x=5处的导数,选dx=0.01,则f'(x)=(ln5.01-ln5)/0.01。用程序来实现,难度在于恰当地选择dx与计算精度。