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

  • 相关阅读:
    zabbix验证微信
    free
    有名管道和无名管道
    shell实现并发控制
    TCP/IP协议簇 端口 三次握手 四次挥手 11种状态集
    自动化运维
    JSON对象(自定义对象)
    对象中属性的遍历、删除与成员方法
    对象间的赋值操作
    自定义类
  • 原文地址:https://www.cnblogs.com/msyou/p/5890592.html
Copyright © 2011-2022 走看看