知识库 > 数学方法 > 数值计算

数值微分和积分    

  • 根据函数在一些离散点的函数值,推算它在某点的导数或某高阶导数的近似值。通常用差商代替微商。

    定义:diff(Y:Array,n:Int)
    说明:序列差分
    参数:
    Y:需要做差分的数组数据
    N:差分的阶数,0阶不做处理



    定义: differential(fun,x,toler,m);
    说明:计算微分
    参数:
    Fun:目标函数(字符串类型)
    X:数据点(实数类型)
    Toler:精度(实数类型)默认 1.490116119384766e-008 
    M:方法(字符串extrapolation,外推法,limitation极限法) 默认extrapolation

    例:

    fun := ‘diffdemo’;
    function diffdemo(x) ;
    begin
     return x^2+2;
    end
    return differential(fun,0.3);

    运行结果:0.6

    定义:GradVector(fun,x);
    说明:梯度,返回一维数组,为x点在各个方向上的导数
    参数:
    Fun:字符串,函数名
    x : 一维数组,指定点



    diffdemo := function (x);
      begin
        return 3*x[0]^2+x[1]^2-2*x[0]*x[1]+4*x[0]+3*x[1];
      end
      return GradVector(diffdemo,array(2,5));

    运行结果:array(6,9);

    定义:integral(fun,a,b,m);
    说明:函数积分
    参数:
    fun :目标函数(字符串类型)
    a:积分下限(实数)
    b: 积分上限(实数)
    m:方法选择,字符串变量,chebyshev,Gauss或Romberg

    例:

    fun := ‘diffdemo’;
    function diffdemo(x) ;
    begin
     return x^2+2;
    end
    return integral(fun,1,3);

    运行结果:12.6666666666667