zoukankan      html  css  js  c++  java
  • 数值积分——复合梯形求积公式

      这段代码实现的是最一般的数值积分法——梯形求积法,积分值的准确依赖于所取精度大小

      1.代码

    %%复合梯形求积公式
    %%Y是数值(attribute=0)或具体表达式(attribute=1),interval是求积区间,n是精度(如果是数值,则为数值长度-1)
    function CTQF = Compound_trapezoid_quadrature_formula(Y,interval,n,attribute)
    a = interval(1);b = interval(2);
    h = (b-a)/n;
    if attribute == 0
        sum = 0;
        for i=1:1:n-1
            sum=sum+Y(i+1);
        end
        Tn = (Y(1)+Y(n+1)+2*sum)*h/2;
        CTQF = vpa(Tn,8);
    elseif attribute == 1
        syms x;
        X(1) = a;
        X(n+1) = b;
        for i=1:1:n-1
            X(i+1)=a+i*h;
        end
        sum=0;
        for i=1:1:n-1
            sum=sum+subs(Y,x,X(i+1));
        end
        Tn=(subs(Y,x,a)+subs(Y,x,b)+2*sum)*h/2;
        CTQF = vpa(Tn,8);
    end
    

      2.例子

    syms x;
    Y = exp(x)*sin(x)+log(x+1);
    interval=[0 pi];
    attribute = 1;
    n = 1000;
    Compound_trapezoid_quadrature_formula(Y,interval,n,attribute)
    
    vpa(int(Y,x,interval),8)
    

      3.结果

    ans =
    14.814269
    ans =
    14.81429
    

      我们选取的精度为1000,即区间分割个数,结果精确到1e-4,而随着所需要精确程度的变大,运算时间将大大增加

  • 相关阅读:
    git的使用
    本体建模
    word2vec改进之Negative Sampling
    word2vec改进之Hierarchical Softmax
    word2vec原理
    Window下mysql的安装
    PageRank算法
    集成学习-------简单介绍
    自我介绍
    Apollo学习笔记(二):循迹实现过程
  • 原文地址:https://www.cnblogs.com/guliangt/p/12243022.html
Copyright © 2011-2022 走看看