zoukankan      html  css  js  c++  java
  • 数值分析实验之数值积分法(java 代码)

    一、实验目的

      许多工程技术和数学研究中要用到定积分,如果无法直接算不出精确值(如含在积分方程中的积分)或计算困难但可用近似值近似时,就用数值积分法方法加以解决。常用的算法有:复化梯形、辛甫生(Simpson)、柯特斯(Cotes)求积法; 龙贝格(Romberg)算法;高斯(Gauss)算法。

    二、实验原理

         

    三、实验程序

      下面给出复化Simpson求积法程序(梯形及柯特斯复化求积分程序可比照编制):

      

     四、实验内容

         选择 y=arctan(x) 在0-1上的积分

    五、实验程序

      • 复化梯形算法

     1  package shuzhifenxi;
     2 
     3     import java.util.Scanner;
     4 
     5     public class fuhuatixing {
     6         public static void main(String args[]) {
     7             Scanner sc = new Scanner(System.in); 
     8 
     9             System.out.println("输入区间下限:");
    10             double a = sc.nextDouble(); 
    11             System.out.println("输入区间上限:");
    12             double b = sc.nextDouble(); 
    13             
    14             System.out.println("输入将区间分成的份数:");
    15             double h=sc.nextInt();
    16             
    17             compoundTrapezium(a,b,h);
    18         }
    19         
    20         //复化梯形公式
    21         public static void compoundTrapezium(double a,double b,double h){
    22 
    23             double value=0;      //记录最终数值
    24             double contain=0; //记录一个中间值
    25             for(double k=1;k<=h-1;k++){
    26                 contain=contain+f(a+k*((b-a)/h));   //调用公式
    27             }
    28             contain=2*contain;            //调用公式
    29             value=((b-a)/(2*h))*(f(a)+f(b)+contain);  //调用公式
    30               
    31             System.out.println("复化梯形公式所得到结果为:"+value);
    32         }
    33         
    34         //用给定公式计算相应数值
    35         public static double f(double x) {
    36             
    37             double value=0; //记录经过公式算出来的值
    38             
    39             value=Math.atan(x);
    40             
    41             return value;
    42         }
    43     }

      运行结果:

      将区间分成50份所得结果:

      

       将区间分成100份所得结果:

           

  • 相关阅读:
    SqlServer数据库同步方案详解(包括跨网段)
    makefile 和shell文件相互调用
    处理百万级以上的数据处理
    makefile Template(添加多个lib)
    Linux下如何删除非空目录
    makefile Template
    g++ 编译和链接
    gcc include路径
    C++ XML解析之TinyXML篇
    利用Lucene.net搭建站内搜索(2)分词技术
  • 原文地址:https://www.cnblogs.com/ynly/p/12878598.html
Copyright © 2011-2022 走看看