Stratified Sampling Integration
curl --request POST \
--url https://api.fincept.in/quantlib/numerical/integration/stratified \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"func_name": "x2",
"a": 0,
"b": 2,
"n_strata": 10,
"samples_per_stratum": 100,
"seed": 42
}
'import requests
url = "https://api.fincept.in/quantlib/numerical/integration/stratified"
payload = {
"func_name": "x2",
"a": 0,
"b": 2,
"n_strata": 10,
"samples_per_stratum": 100,
"seed": 42
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({func_name: 'x2', a: 0, b: 2, n_strata: 10, samples_per_stratum: 100, seed: 42})
};
fetch('https://api.fincept.in/quantlib/numerical/integration/stratified', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/numerical/integration/stratified",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'func_name' => 'x2',
'a' => 0,
'b' => 2,
'n_strata' => 10,
'samples_per_stratum' => 100,
'seed' => 42
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/numerical/integration/stratified"
payload := strings.NewReader("{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/numerical/integration/stratified")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/numerical/integration/stratified")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"estimate": 2.6671,
"std_error": 0.0089
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}quantlib-numerical
Stratified Sampling Integration
Perform stratified sampling integration, which divides the integration domain into strata and samples from each stratum independently. This variance reduction technique provides more accurate estimates than simple Monte Carlo with the same number of samples. Particularly effective when the integrand varies significantly across the domain. [Tier: BASIC, Credits: 1]
POST
/
quantlib
/
numerical
/
integration
/
stratified
Stratified Sampling Integration
curl --request POST \
--url https://api.fincept.in/quantlib/numerical/integration/stratified \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"func_name": "x2",
"a": 0,
"b": 2,
"n_strata": 10,
"samples_per_stratum": 100,
"seed": 42
}
'import requests
url = "https://api.fincept.in/quantlib/numerical/integration/stratified"
payload = {
"func_name": "x2",
"a": 0,
"b": 2,
"n_strata": 10,
"samples_per_stratum": 100,
"seed": 42
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({func_name: 'x2', a: 0, b: 2, n_strata: 10, samples_per_stratum: 100, seed: 42})
};
fetch('https://api.fincept.in/quantlib/numerical/integration/stratified', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fincept.in/quantlib/numerical/integration/stratified",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'func_name' => 'x2',
'a' => 0,
'b' => 2,
'n_strata' => 10,
'samples_per_stratum' => 100,
'seed' => 42
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fincept.in/quantlib/numerical/integration/stratified"
payload := strings.NewReader("{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.fincept.in/quantlib/numerical/integration/stratified")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fincept.in/quantlib/numerical/integration/stratified")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"func_name\": \"x2\",\n \"a\": 0,\n \"b\": 2,\n \"n_strata\": 10,\n \"samples_per_stratum\": 100,\n \"seed\": 42\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"estimate": 2.6671,
"std_error": 0.0089
}
}{
"detail": "Invalid API key"
}{
"detail": "Endpoint requires Basic tier or higher"
}Authorizations
API key for authentication. Get your key at https://api.fincept.in/auth/register
Body
application/json
Built-in scalar function to integrate
Available options:
exp, log, sin, cos, sqrt, x2, x3 Example:
"x2"
Lower integration bound
Example:
0
Upper integration bound
Example:
2
Number of strata to divide the interval into
Example:
10
Number of samples per stratum
Example:
100
Random seed for reproducibility
Example:
42
⌘I
