1、积分计算原理

众所周知,定积分在集合图形中的意义就是函数f(x)在某区间内的面积,由推导原理可得公式

复制代码

Δx越小越精确,无限趋于0但不可能等于0,也就是说要把函数f(x)下的面积垂直做以Δx宽的细小矩形然后累加求极限。

2、通过原理用代码实现积分过程

此方法的作用是函数f(x)以a,b为区间的封闭图形中等分的量级大小

// 微分间隔

public static double sub(double a, double b, double n) {

return (b - a) / n;

}

复制代码

此方法的作用就是在函数f(x)以a,b为区间的封闭图形中做n次等分累加运算这部分a、b分别代表积分区间上下限,n代表函数f(x)以a,b为区间的封闭图形中等分数量,也就是说等分数量越大,算出的值就越精确,i代表第几次等分累加运算。

// 微分求积

public static double differential(double a, double b, double n, int i) {

return a + i * (b - a) / n;

}

复制代码

此方法为定义被积分的函数,也就是在几何意义中曲边梯形的那条曲边函数f(x),示例函数为一条开口向上顶点为(0,0)的抛物线

// 被积函数

public static double f(double x) {

return x * x;

}

复制代码

以上三个方法都是计算积分的重要元素,现在我们把他们连起来操作一波,首先定义被积函数的上下限,这里示例对函数f(x)下的曲边梯形垂直做100000等分,通过循环累加每个小的梯形面积最终得出函数f(x)在top botm区间的近似面积和(这里只能取近似,不能像数学概念中取极限。目前不知道无穷大该怎么定义[逃])

//计算积分

private static double integral(int top, int botm) {

double sub = sub(top, botm, 100000);

double sum = 0;

for (int j = 1; j <= 100000; j++) {

double x = differential(sub, botm, 100000, j);

sum = sum + f(x);

}

return sum * sub;

}

public static void main(String[] args) {

System.out.println("x 0-5 的定积分为:" + integral(0, 5));

}

复制代码

最后通过牛莱公式手动验证,结果和通过我们的方法运行得出的近似值基本保持一致。

TODO

如何实现通过提供的函数进行积分运算

以直线方程y=kx+b为例

public static void lineEquation(int x1, int y1, int x2, int y2) {

int k, b;

k = k(x1, y1, x2, y2);

b = b(x1, y1, k);

System.out.println("y=" + k + "x+" + b);

}

//直线斜率公式

private static int k(int x1, int y1, int x2, int y2) {

return (y2 - y1) / (x2 - x1);

}

//直线截距公式

private static int b(int x, int y, int k) {

return y - k * x;

}复制代码

java定积分_记录一次定积分实现方法(java)相关推荐

  1. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.

    java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方法 java.lang.ClassNotFoundException: com.m ...

  2. aix系统java堆_浅谈AIX环境下的Java性能调优

    1.什么是Java Java 是一种面向对象的编程语言.它以 C++ 为模型,被设计成小的.简单的.在源和二进制级别跨平台的可移植的语言,Java 程序(applets 和应用程序)可以运行于任何已经 ...

  3. 数据结构和算法 java实现_数据结构与算法——常用数据结构及其Java实现

    前言 仿佛一下子,2017年就快过去一半了,研一马上就要成为过去式了,我打算抓住研一的尾巴,好好梳理一下数据结构与算法,毕竟这些基础知识是很重要的嘛.所以准备在这里搞一个系列的文章,以期透彻. 本系列 ...

  4. java 分析java死锁_有益的CountDownLatch和棘手的Java死锁

    java 分析java死锁 您是否曾经使用过java.util.concurrent.CountDownLatch ? 这是在两个或多个线程之间实现同步的非常方便的类,在该类中,一个或多个线程可以等待 ...

  5. c语言不会可以学好java吗_不会C语言能学Java吗

    不会C语言能学Java吗?当然可以,学码思不少小伙伴没有任何代码基础,来这里Java培训学的也非常不错,都获得了理想的就业.现在时代不一样了,编程语言更新换代的速度也很快,很多老程序员都是从C语言入门 ...

  6. 安装java环境_(一)环境安装之Java

    安装java 点击 JDK8下载,根据自己的平台,选择相应的版本进行下载. 小知识: Java环境分JDK和JRE ,JDK就是Java Development Kit.简单的说JDK是面向开发人员使 ...

  7. cmd编译java命令_使用CMD命令编译和运行Java程序

    对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...

  8. webdriver java等待_等待下载完成在selenium webdriver JAVA

    亚历山大Arendar的想法的一个java适应: (使用Java 8 &谓词版本,直到FluentWait的方法) private void waitForFileDownload(int t ...

  9. java 微秒_现在有任何新的方法可以在Java中以微秒的...

    TL;博士 Instant.now() 2018-03-09T21:03:33.831515Z 使用Java 9及更高版本,您可以使用microseconds分辨率捕获当前时刻. 上面的示例是针对ma ...

  10. protobuf在java中使用_记录:Protocol Buffers(protobuf)在Java开发中使用

    1.编写一个.proto文件命名为:addressbook.proto,该文件内容来自protocal-buffers官网 2.使用protoc-2.6.0-win32.zip解压后的protoc.e ...

最新文章

  1. 抽象工厂————三层架构
  2. c# tcp显示服务器图片,C# TCP通迅原码(服务器与客户端相互发送文本与图片)
  3. java rest 序列化_http请求/restful/序列化反序列化/JSON
  4. python写空气质量提醒_你所在的城市空气质量如何?用Python可视化分析空气质量...
  5. 用jdbc连接各数据库驱动
  6. 加法变乘法(蓝桥杯)
  7. 性能测试学习05_lr(根据接口文档写脚本+参数化)
  8. 排序(2):直接插入排序
  9. [Python] Ubuntu 安装/卸载 python
  10. window启动过程讲解--PPT截图[张银奎]
  11. 如何将Node.js Streaming MapReduce引入Amazon EMR
  12. 连麦互动技术及其连麦调研
  13. linux主机使用rdesktop连接windows进行usb重定向
  14. 【解决方法】Socket服务端退出之后端口依旧被占用
  15. java开发微信第三方平台 模板消息发送消息案例
  16. 集成友盟第三方实现QQ微信登录遇到的坑
  17. Java控制无人机程序_深入了解ROS之编写无人机控制程序包
  18. Android super.img 镜像解包
  19. 柯尔特python_柯字取名的含义是什么
  20. 分段二次插值的matlab程序,一维优化方法之二次插值法matlab程序

热门文章

  1. 苏轼 天涯 青砚1989
  2. Win10 系统时间错误
  3. Python利用requests库爬取百度文库文章
  4. android开发者模式调试程序,Android用开发者模式进行调试时出现的问题及解决方案...
  5. imagemagick:a gentle introduction to magick++
  6. 【一起学Rust】Rust介绍与开发环境搭建
  7. ensp 链路聚合的配置
  8. openstack---keystone
  9. 性能高、上手快,实体类转换工具 MapStruct 到底有多强大!
  10. 前十大编程语言你会几种?