想到求二重积分,我们可能第一下想到的是先对其中的一个变量进行积分,同时将另外一个变量看成常数,之后再对第二个变量进行积分,笔者高中的教材上就这这么写的。

但是对于计算机来说,实现不定积分是一件很困难的事情,于是这条“人类的方法”在计算机上面就行不通了,但是别急,我们可别忘了积分最原始的定义——分割 、 求和 、 取极限

我们先来复习一下二重积分的定义:

对于一重积分的情况,请参见https://blog.csdn.net/weixin_42612337/article/details/82829351

当然,这里面影响定积分的精度的主要因素就是N的大小,N越大,计算结果越接近真实值, 但同时,N越大,计算时间也就越长。

下面是C代码:

//
//  main.c
//  double_integral
//
//  Created by Wayne on 2018/9/29.
//  Copyright © 2018 Wayne. All rights reserved.
//#include <stdio.h>
#include <math.h>long double function(long double x , long double y);    //这里声明被积函数int main(void)
{unsigned long long N = 1000000000;    //强烈建议把N取小一点 , 十亿实在算的太慢了unsigned long long i , j;long double V;long double a , b , c , d;scanf("%Lf %Lf %Lf %Lf" , &a , &b , &c , &d);for (j = 0 ; j <= N ; j++){for (i = 0 ; i <= N ; i++){V += ((b - a) * (d - c) / (N * N)) * function((a + ((b - a) / N) * i) , (c + ((d - c) / N) * j));}}printf("%Lf\n" , V);return 0;
}long double function(long double x , long double y)    //这里定义被积函数
{long double z = x + y;    //我们取 f(x,y) = x + y 这个简单的情形为例return z;
}

下面是终端运行的情况,注意在这里笔者取了两个积分区间,其中

 ,

对于至于为什么不取上面代码里面的十亿,看第四段。

对于D1:(真实值应该是20.625)

对于D2:(真实值应该是1)

由于笔记本电脑运算能力导致的运算时间的限制,我不得不降低了精读,如果使用更加专业的工具,或许就能在提高精度的同时提高速度了。

二重积分的C语言实现相关推荐

  1. 学习笔记——利用CC++语言计算二重积分

    二重积分定义如下(来源百度百科) 以z=xy在区域0<=y<=1,0<=x<=y內的二重积分为例,经计算理论值为:0.125,下面用C语言实现二重积分的离散计算 #includ ...

  2. c语言编求二重积分_如何用C语言求二重定积分?

    展开全部 按二重积分的定义做. 我的这32313133353236313431303231363533e59b9ee7ad9431333330333631个出错,一起讨论下吧: #include #i ...

  3. c语言编求二重积分_c语言实现二重积分

    二重积分的表达形式 其中积分区域为:x=1 y=1 y=-4/5*x+29/5 积分函数为: f(x,y)=1 #include &ltstdio.h&gt #include & ...

  4. R语言(二) 多种蒙特卡洛法计算一二重积分

    目录 蒙特卡洛积分的基本思想 一.内置函数+平均值法 二.对偶变量法 三.控制变量法 四.重要性抽样法 蒙特卡洛积分的基本思想 考虑可积函数g(x)g(x)g(x),现要计算∫abg(x)dx\int ...

  5. c语言分母多项乘积怎么算,C++编程 用梯形求积公式求解定积分∫3lnxdx积分区间为(1,2, C语言,用梯形法编程求定积分x^3+x/2+1的值...

    问题标题 C++编程 用梯形求积公式求解定积分∫3lnxdx积分区间为(1,2, C语言,用梯形法编程求定积分x^3+x/2+1的值 2019-8-16来自ip:15.179.13.64的网友咨询 浏 ...

  6. Go语言的错误异常处理机制及其应用

    一.背景 在日常编写golang程序或阅读别人的golang代码时,我们总会看到如下的一堆代码块: xx, err = func(xx) if err != nil {//do sth. to tac ...

  7. Go 知识点(19)— Go 语言中的野指针

    野指针是一种指向内存位置是不可知的指针,一般是由于指针变量在声明时没有初始化所导致的.在 Go语言中,布尔类型的零值为 false,数值类型的零值为 0,字符串类型的零值为 "", ...

  8. gcc 自动识别的文件扩展名,gcc/g++ -x 选项指定语言,不同 gcc 版本 -std 编译选项支持列表

    对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器. 对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件 对于以 .cpp 为扩展名的文件,GCC ...

  9. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)

    首先是下面代码中将要使用的 r 矩阵的定义.需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内. Mat r = Mat(2, 3, ...

最新文章

  1. AI一分钟|阿里成立“罗汉堂”;vivo微信人脸识别支付下半年商用
  2. 保护模式及其编程——8086系统寄存器和系统指令
  3. Educational Codeforces Round 13 E. Another Sith Tournament 状压dp
  4. linux搭建ca服务器搭建,linux下安装EJBCA 搭建私有CA服务器
  5. rxjs的map和switchMap在SAP Spartacus中的应用 -将高阶Observable进行flatten操作
  6. 使用Task简化Silverlight调用Wcf
  7. 基于Docker搭建Jumpserver堡垒机操作实践
  8. 网路游侠:铱迅软件版WEB应用防火墙试用
  9. [Coci2015]Divljak
  10. DTCMS插件的制作实例电子资源管理(三)前台模板页编写
  11. livedata mvvm_Android MVVM LiveData数据绑定
  12. Android UI(一)Layout 背景局部Shape圆角设计
  13. 晚安西南-----尾管悬挂与回接
  14. 研究了一堆英语学习软件,发现了一个美国宝藏口语App,国内也能用!
  15. 维生素C - 坏血症
  16. 中文改写神器下载-中文改写神器
  17. 技术人员如何从外包开始自己的事业
  18. 两个字符串首尾相连,查看是否相同
  19. Docker基础之安装部署
  20. 2016-2017 7th BSUIR Open Programming Contest. Final 补题

热门文章

  1. 儿童学python第一课_初学Python(第一课)
  2. 防火墙添加ip白名单_防火墙白名单设置方法firewalld
  3. java 解密pdf_Java 加密和解密 PDF
  4. 2.2加勒比海盗船 最优装载问题
  5. Unity3D 加载PDF文件以及简单的切换页面
  6. 什么是用户画像——从零开始搭建实时用户画像(一)
  7. Three.js用鼠标控制场景移动的代码
  8. 把计算机器显示桌面,怎样将电脑显示器和桌面匹配
  9. 2004年6月30日
  10. 2011动作科幻《美少女特工队》BD中英双字1024/1280高清 下载