zoukankan      html  css  js  c++  java
  • 数值积分算法

    1.自动选取步长梯形法算法:

     1 /************************************************************************/
     2 /* 自动选取步长梯形法算法
     3 /* 课本P83页
     4 /* 可以通过freopen方法从文本读入数据
     5 /************************************************************************/
     6 #include<iostream>
     7 #include<cmath>
     8 #include<string>
     9 using namespace std;
    10 //积分函数
    11 double f(double x)
    12 {
    13     //要求积分的函数,返回在x出的函数值
    14     return 2/(1+x*x);
    15 }
    16 //自动选取步长梯形法算法:返回积分近似值,积分区间为[a,b],精度为e
    17 double autoStepTrapezoidalMethod(double a,double b,double e)
    18 {
    19     double h=(b-a)/2;
    20     double T0=0,T1=0,S=0;//T0表示前次积分近似值,T1表示后次积分近似值
    21     int n=1;  //把积分区间[a,b]n等分
    22     T1=(f(a)+f(b))*h;
    23     int k=0;
    24     do
    25     {
    26         T0=T1;
    27         S=0;
    28         for (k=1;k<=n;k++)
    29          {
    30              S=S+f(a+(2*k-1)*(h/n));
    31          }
    32         T1=T0/2+S*h/n;
    33         n=2*n;
    34     }while(T1-T0>=3*e);
    35     return T1;
    36 }
    37 
    38 int main()
    39 {
    40     //freopen("in.txt","r",stdin);
    41     cout<<autoStepTrapezoidalMethod(0,1,0.00001)<<endl;
    42     system("pause");
    43 
    44 }
    View Code
  • 相关阅读:
    [洛谷P3369] 普通平衡树 Treap & Splay
    [NOIp2016] 组合数问题
    [洛谷P4777] [模板] 扩展中国剩余定理
    [洛谷P3384] [模板] 树链剖分
    [NOIp2017] 时间复杂度
    [bzoj3270] 博物馆
    [USACO06DEC] Milk Patterns
    [USACO5.1] Musical Themes
    后缀数组 模板+详解
    [HNOI2004] L语言
  • 原文地址:https://www.cnblogs.com/zhiaiyaya/p/3667528.html
Copyright © 2011-2022 走看看