C语言中矩形法的二重积分

C语言中矩形法的二重积分,c,math,C,Math,我想知道如何计算下图所示的二重积分 我需要用C来计算它,用矩形法 我已经知道如何计算积分了,但不知道如何计算双积分 我已经用C计算了上面的积分 从0到1的积分(1/(1+x^2))x 但我不明白我应该如何继续下去 如果有人能为我指出正确的方向,说明我应该如何处理此解决方案。您可以使用(级联)的定义: int n=5000//或大数,离散化步骤 双dxy=1.0d/n; 二重积分=0.0d; for(int yi=0;yi

我想知道如何计算下图所示的二重积分

我需要用C来计算它,用矩形法 我已经知道如何计算积分了,但不知道如何计算双积分 我已经用C计算了上面的积分 从0到1的积分(1/(1+x^2))x 但我不明白我应该如何继续下去


如果有人能为我指出正确的方向,说明我应该如何处理此解决方案。

您可以使用(级联)的定义:

int n=5000//或大数,离散化步骤
双dxy=1.0d/n;
二重积分=0.0d;
for(int yi=0;yi
换言之,计算积分如下:


此二重积分有效地计算了从平面z=0到由z=1/(1+x^2+y^2)定义的曲面(y=0到1,x=0到1)的体积。以下示例使用方形底座的中点计算高度为z且方形底座ΔyΔx的(n^2)柱的体积以计算z。除了使用正方形的中点,它与CommuSoft的示例相同

#include <stdio.h>
#define n 1000
/* sum should ~= 0.63951 */
int main()
{
int ix, iy;
double x, y, sum, dydx;
    dydx = 1./((double)n * (double)n);
    sum = 0.0;
    for(iy = 0; iy < n; iy++){
        y = (0.5+(double)iy)/((double)n);
        for(ix = 0; ix < n; ix++){
            x = (0.5+(double)ix)/((double)n);
            sum += 1. / (1. + x*x + y*y);
        }
    }
    sum *= dydx;
    printf("%.15lf\n", sum);
    return(0);
}
#包括
#定义n 1000
/*总和应~=0.63951*/
int main()
{
int ix,iy;
双x,y,和,dydx;
dydx=1./((双)n*(双)n);
总和=0.0;
对于(iy=0;iy
您到底需要什么帮助?你不懂二重积分吗?是的,查阅一本介绍微积分的书。(提示:你可能会发现嵌套循环很有用。)我投票结束这个问题,因为它是关于数学的。这是一个使用高斯求积进行的简单积分。矩形域再简单不过了,函数的性能也很好。这个人的名字叫“Riemann”(只是在维基百科上找到)。
#include <stdio.h>
#define n 1000
/* sum should ~= 0.63951 */
int main()
{
int ix, iy;
double x, y, sum, dydx;
    dydx = 1./((double)n * (double)n);
    sum = 0.0;
    for(iy = 0; iy < n; iy++){
        y = (0.5+(double)iy)/((double)n);
        for(ix = 0; ix < n; ix++){
            x = (0.5+(double)ix)/((double)n);
            sum += 1. / (1. + x*x + y*y);
        }
    }
    sum *= dydx;
    printf("%.15lf\n", sum);
    return(0);
}