gpt4 book ai didi

java - Java 中的二重积分和期望值蒙特卡洛方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:36 25 4
gpt4 key购买 nike

以下算法适用于一维情况,但我想修改它以处理二重积分。我该怎么做?

class doubleIntMonteCarlo
{
private static double f(double x)
{
return 1 / Math.pow( x , 2 );
}

public static double doubleIntMonteCarlo(double a, double b, int n)
{
double xSum = 0D, ySum = 0D, sum = 0D;

for (int i = 0; i < n; i++)
{
xSum = a + Math.random() * Math.abs( b - a );
sum += f(xSum);
}
return Math.abs( b - a ) * sum / n;
}
}

public class MonteCarloIntegration
{
public static void main(String[] args)
{
System.out.println(doubleIntMonteCarlo.doubleIntMonteCarlo(10, 250, 100000));
}
}

最佳答案

试试这个:

public static double doubleIntMonteCarlo(double a, double b, double c, double d, int n)
{
double sum = 0D, xSum = 0D, ySum = 0D;

for (int i = 0; i < n; i++)
{
xSum = a + Math.random() * Math.abs(b - a);
ySum = c + Math.random() * Math.abs(d - c);
sum += f(xSum, ySum);
}
return Math.abs(b - a) * Math.abs(d - c) * sum / n;
}

关于java - Java 中的二重积分和期望值蒙特卡洛方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24340844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com