zoukankan      html  css  js  c++  java
  • 利用复合梯形公式计算定积分

    function [I,n]=fuhe(f,a,b,eps)

    if(nargin==3)

        eps=1.0e-4;

    end

    n=1;

    h=(b-a)/2;

    I1=0;

    I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;

    while abs(I1-I2)>eps

        n=n+1;

        h=(b-a)/n;

        I1=I2;

        I2=0;

        for i=0:n-1

            x=a+h*i;

            x1=x+h;

            I2=I2+(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1))*(h/2);

        end

    end

    % I=eval(I2);

    I=I2;

    n;

    %求解文件脚本代码

    [I,step]=fuhe('1/(x^2-1)',2,4,1.0e-4)

    2)利用复合simpson公式计算定积分

    %复化辛普森求解定积分函数

    function [I,step]=ISimpson(f,a,b,eps)

    if(nargin==3)

        eps=1.0e-4;

    end

    n=1;

    h=(b-a)/2;

    I1=0;

    I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;

    while abs(I1-I2)>eps

        n=n+1;

        h=(b-a)/n;

        I1=I2;

        I2=0;

        for i=0:n-1

            x=a+h*i;

            x1=x+h;

             I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+subs(sym(f),findsym(sym(f)),x1));

        end

    end

    % I=eval(I2);

    I=I2;

    step=n

    %求解脚本文件

    [I,step]=ISimpson('sin(x)',0,10,1.0e-4)

     运行结果:

     1)利用复合梯形公式计算定积分

    I =

    0.2945

    n =

         15

    2)利用复合simpson公式计算定积分

    I =

          1.8393

    step =

          13

  • 相关阅读:
    在linux上安装docker
    【oracle 补丁分类】
    【识记】 域名备案
    【Mysql】Mysql在大型网站的应用架构演变
    【安全】 各大企业的安全服务内容
    【前端知识网站 】 HTML ,CSS 和 Javascript
    【安全】 xss跨站脚本攻击
    【数据库 工具】
    【安全】渗透测试书单与工具
    【渗透测试 在线资源】
  • 原文地址:https://www.cnblogs.com/msyou/p/5890592.html
Copyright © 2011-2022 走看看