利用JAVA求定积分

简介: package 高数;/*需求:编译一个自动计算定积分的函数方法:根据定义,求曲线面积,分成n个区间,即n个矩形,由于每个区间差都是一样的, 可作为一个矩形的宽,矩形的长为每个区间的中点对应的函数,长和宽的乘积就是 其中一个小矩形的面积,将n个小矩形的面积相加就是,该被积函数的积分。
package 高数;
/*
需求:编译一个自动计算定积分的函数
方法:根据定义,求曲线面积,分成n个区间,即n个矩形,由于每个区间差都是一样的,
    可作为一个矩形的宽,矩形的长为每个区间的中点对应的函数,长和宽的乘积就是
    其中一个小矩形的面积,将n个小矩形的面积相加就是,该被积函数的积分。
步骤:1:定义被积函数,可以修改,需要计算什么函数的积分,可以自己设置
    2:定义第i个区间的中点值方法,即定义积分变量
    3:定义每个小区间的间隔差方法,即将范围分成n个等区间
*/
import java.util.*;

public class DefiniteIntegralApp {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);


            // 提示用户输入积分上下限
            System.out.println("请输入积分上下限:");

            // 定义积分上下限a,b,有控制台输入
            double a = input.nextDouble();
            double b = input.nextDouble();

            double sum = 0;
            // 求出区间差,分成10000个区间,区间越小,误差越小
            double e = cha(a, b, 10000.0);

            // 求和,循环从第一个区间叠加到第10000个
            for (int j = 1; j <= 10000; j++) {
                double x = zhongjian(a, b, 10000.0, j);
                sum = sum + f(x);

            }
            System.out.print("f(x)=2*x*x+x的定积分:");
            System.out.println(sum * e);

        }

    // 定义被积函数,可以修改
    public static double f(double x) {
        return 2*x*x+x;
    }

    // 定义第i个区间的中点值,即定义积分变量
    public static double zhongjian(double a, double b, double n, int i) {
        return a + i * (b - a) / n;
    }

    // 定义每个小区间的间隔差,即将范围分成n个等区间
    public static double cha(double a, double b, double n) {
        return (b - a) / n;
    }
}


例子:计算分f(x)=2*x*x+x的定积分:




目录
相关文章
|
5月前
|
算法 Java
JAVA中的递推算法及其应用
JAVA中的递推算法及其应用
71 1
|
6月前
|
算法 Java 图形学
Java代码轻松搞定定积分
Java代码轻松搞定定积分
174 0
|
6月前
|
算法 Java C++
整数拆分(c++,java)
整数拆分(c++,java)
44 0
|
6月前
|
Java
Java 求组合数C(n,m)
Java 求组合数C(n,m)
|
SQL Rust Java
C# 逼近 Java
C# 是一个严重被低估的全能型编程语言,C# 和 Java 之间的差距越来越小,达到了历史新低,目前两者的差距仅为 1.2%。TIOBE CEO Paul Jansen 认为,如果这一趋势继续保持,那么 C# 将在两个月后超过 Java。
301 2
|
Java
Java求解肥胖问题
Java求解肥胖问题
101 0
|
Java
Java解决鸡兔同笼问题
Java解决鸡兔同笼问题
284 0
|
Java
Java语言如何求平方根
Java语言如何求平方根
238 0
java202303java学习笔记第二十九天 综合练习2求和
java202303java学习笔记第二十九天 综合练习2求和
55 0
java202302java学习笔记第十五天-字符串数据相乘
java202302java学习笔记第十五天-字符串数据相乘
57 0
java202302java学习笔记第十五天-字符串数据相乘