# VB Two Variable Integration Example

← All NMath Code Examples

```Imports System

Imports CenterSpace.NMath.Core
Imports CenterSpace.NMath.Analysis

Namespace CenterSpace.NMath.Analysis.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")