0

我想为布伦特方法(一种数值方法)创建一个 VB 代码,它可以采用解析函数并找到根。我怎样才能在 VB 2010 中做到这一点?Brent 方法采用的函数如下:

Function W_Bazin_Rect_h(ByVal Q As Double,
            ByVal w As Double,
            ByVal a As Double,
            ByVal S As Double) As Double
Dim tempstr As String
If w < 0 Or a <= 0 Then
    tempstr = "Error on input"
    ShowMessageBox(tempstr)
    Exit Function
End If

If Q <= 0 Then
    Return 0
End If
g = 9.81
u = (0.405 + 0.003 / h) * (1 + 0.55 * (h / (h + a)) ^ 2)
Q = ((2 * g) ^ 0.5 * u * w * h ^ (3 / 2)) * (1 - (S / h) ^ 1.5) ^ 0.385

End Function

我应该将布伦特方法定义为类还是函数?

我想初始化函数(即Q=1,a=1,w=1,S=1),然后将函数传递给可以返回h 值的Brent 方法。在 VB.NET 中执行此操作的最佳方法是什么?我想做一个通用的布伦特方法,我可以传递任何单值函数并找到根。

我刚刚开始使用 VB,从到目前为止我发现的情况来看,您拥有的工具似乎是 - 对我们来说是函数的委托 - 为函数使用 lambda 表达式 - 发送指针/地址 - 创建一个函数类/结构并将其提交给函数

至于现在我最倾向于创建一个函数类。但我不确定如何。前任 我为要集成的每个“uniqe 函数”创建了不同的类,但是当我需要在集成函数调用中指定参数类型时,如何将它们传递给集成函数?

这似乎是一个适用于许多数学运算的基本问题,所以我认为澄清这一点非常有用。

4

1 回答 1

0

我不会在函数中显示错误消息。我会返回类似Double.NaN的东西,这样你就可以将 UI 与逻辑分开。

通过查看您拥有的内容,您可以创建类似Math 类的内容。将您的函数共享在一个可以称为 MathFunction 或其他东西的类中。

此外,您忘记返回一个值。

于 2013-05-22T12:58:41.517 回答