Imports System Imports CenterSpace.NMath.Core Namespace CenterSpace.NMath.Examples.VisualBasic A .NET example in Visual Basic showing how to integrate over two variables. Module TwoVariableIntegrationExample Private Function F(ByVal V As DoubleVector) As Double Return (V(0) + 10) * (V(1) * V(1)) End Function Private Function Y(ByVal X As Double) As Double Return (3 * X) + 5 End Function The main entry point for the application. Sub Main() Integrate the function F over the area where 0 < x < 1 and 0 < y < 3 First create the integrand Dim D As New Func(Of DoubleVector, Double)(AddressOf F) Dim Integrand As New MultiVariableFunction(D) Create the integrator with defaults Dim Integrator As New TwoVariableIntegrator Console.WriteLine() Console.WriteLine("Calculating the integral of ( x + 10 ) * y^2") Console.WriteLine("where 0 < x < 1 and 0 < y < 3") Console.WriteLine() Dim Integral As Double = Integrator.Integrate(Integrand, 0, 1, 0, 3) Console.WriteLine("integral is... " & Integral) Console.WriteLine() What if one of the bounds is not constant but a function? Here the upper bound of y is 3x + 5. Dim D2 As Func(Of Double, Double) D2 = New Func(Of Double, Double)(AddressOf Y) Dim YUpper As New OneVariableFunction(D2) Integrate the function, F, over the area where 0 < x < 1 and 0 < y < ( 3x + 5 ) Console.WriteLine("where 0 < x < 1 and 0 < y < 3x + 5") Console.WriteLine() Integral = Integrator.Integrate(Integrand, 0, 1, 0, YUpper) Console.WriteLine("integral is... " & Integral) Console.WriteLine() Console.WriteLine("switch to Romberg") Console.WriteLine() Integrator.DxIntegrator = New RombergIntegrator Integrator.DyIntegrator = New RombergIntegrator Integral = Integrator.Integrate(Integrand, 0, 1, 0, YUpper) Console.WriteLine("integral is... " & Integral) Console.WriteLine() Console.WriteLine() Console.WriteLine("Press Enter Key") Console.Read() End Sub End Module End Namespace← All NMath Code Examples