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

  • 相关阅读:
    我喜欢的电影
    QObject
    python-类
    pycharm活动模板
    pyqt5模块介绍
    第九章第四节 流体压强与流速的关系
    开源的推荐系统
    VNote: 一个舒适的Markdown笔记软件
    jira项目管理平台搭建
    Win10环境下,告别MarkdownPad,用Notepad++搭建编写md文档的环境
  • 原文地址:https://www.cnblogs.com/msyou/p/5890592.html
Copyright © 2011-2022 走看看