精华内容
下载资源
问答
  • 微积分常用公式微分方程、级数

    万次阅读 多人点赞 2016-08-13 17:03:32
    基本初等函数求导公式函数的和、差、积、商的求导法则反函数求导法则复合函数求导法则皮皮blog二、基本积分表 皮皮blog常用微分公式[常用的求导和定积分公式(完美)]分部积分不定积分的分部积分设 及 是两个关于 的...

    http://blog.csdn.net/pipisorry/article/details/52200140

    微积分

    直观地说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为在坐标平面上,由曲线、直线以及轴围成的曲边梯形的面积值(一种确定的实数值)。积分的一个严格的数学定义由波恩哈德·黎曼给出(参见条目“黎曼积分”)。

     一.基本初等函数求导公式

    函数的和、差、积、商的求导法则

    反函数求导法则



    复合函数求导法则

    皮皮blog



    二、基本积分表

     

    皮皮blog



    常用凑微分公式


    [常用的求导和定积分公式(完美)]

    分部积分

    不定积分的分部积分


    [分部积分法]

    定积分的分部积分


    皮皮blog



    微分方程


    级数收敛与发散

    发散级数

    收敛级数


    皮皮blog


    微分中值定理

    f(x)为连续且光滑,任取其上两点(a, f(a))(b, f(b))a < b,那么在这两端点之间必定存在一点(c, f(c)), a < c < b,使得过c的切线斜率等于该二端点割线的斜率,即f'(c) = \frac{f(b) - f(a)}{b - a}

    [wikipedia]

    from: http://blog.csdn.net/pipisorry/article/details/52200140

    ref:


    展开全文
  • 微积分 直观地说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为在坐标平面上,由曲线、直线以及轴围成的曲边梯形的面积值(一种确定的实数值)。积分的一个严格的数学定义由波恩哈德·黎曼给出...

    http://blog.csdn.net/pipisorry/article/details/52200140

    微积分

    直观地说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为在坐标平面上,由曲线、直线以及轴围成的曲边梯形的面积值(一种确定的实数值)。积分的一个严格的数学定义由波恩哈德·黎曼给出(参见条目“黎曼积分”)。

     一.基本初等函数求导公式

    函数的和、差、积、商的求导法则

    反函数求导法则

    复合函数求导法则

    皮皮blog

     

     

    二、基本积分表

      

    皮皮blog

     

     

    常用凑微分公式

    [常用的求导和定积分公式(完美)]

    分部积分

    不定积分的分部积分

     

    [分部积分法]

    定积分的分部积分

     

    皮皮blog

     

     

    微分方程

     

     

    级数收敛与发散

     

    发散级数

    收敛级数

    皮皮blog

     

    微分中值定理

    f(x)为连续且光滑,任取其上两点(a, f(a))(b, f(b))a < b,那么在这两端点之间必定存在一点(c, f(c)), a < c < b,使得过c的切线斜率等于该二端点割线的斜率,即f'(c) = \frac{f(b) - f(a)}{b - a}

    [wikipedia]

    from: http://blog.csdn.net/pipisorry/article/details/52200140

    ref: 

    展开全文
  • 数值微分

    千次阅读 2017-03-26 22:00:01
    一、写在前面 数值积分之后,就应该是数值微分了,还是老套路,表明实验内容后,直接上代码,思想都在注释之中。 实验内容:二、实验过程对数值微分的思想有了一定的掌握,根据算法最基本的公式来写 三、实验结果...

    一、写在前面
    数值积分之后,就应该是数值微分了,还是老套路,表明实验内容后,直接上代码,思想都在注释之中。

    实验内容:

    这里写图片描述

    二、实验过程
    对数值微分的思想有了一定的掌握,根据算法最基本的公式来写
    这里写图片描述

    三、实验结果

    这里写图片描述

    【参考代码】

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    double Derivativefunction(double x, double y)    //导函数表达式
    {
        return y-2*x/y;
    }
    
    double function(double x)    //原函数
    {
        return sqrt(1 + 2*x);
    }
    
    void Euler(double a, double b, double initialValue, int n)   
     //Euler算法,在区间[a, b]上,初值f(a) = initialValue, n等分
    {
        int i = 0;
        double x = a;
        double y = initialValue;
        double h = (b-a)/n;    //步长
        for(i=1; i<=n; i++)
        {
            printf("x = %lf:\t", x+h);
            y = y + h*Derivativefunction(x, y);
            printf("y(Euler) = %lf\t", y);
            x += h;
            printf("y(准确) = %lf\n", function(x));
        }
    }
    
    void ImprovementEuler(double a, double b, double initialValue, int n)    
    //ImprovementEuler算法,传入参数与Euler函数同理
    //从Euler算法复制并加以修改
    {
        int i = 0;
        double x = a;
        double yForecast;    //y预测
        double temp = initialValue;
        double yCorrecting;    //校正
        double h = (b-a)/n;    //步长
        for(i=1; i<=n; i++)
        {
            printf("x = %lf:\t", x+h);
            yForecast = temp + h*Derivativefunction(x, temp);
            yCorrecting = temp + (Derivativefunction(x, temp) + \
                                  Derivativefunction(a+h*i, yForecast))*h/2;
            temp = yCorrecting;
            printf("y(ImprovementEuler) = %lf\t", temp);
            x += h;
            printf("y(准确) = %lf\n", function(x));
        }
    }
    
    void FourOrderRung_Kutta(double a, double b, double initialValue, int n)    //四阶Rung_Kutta算法
    {
        int i = 0;
        double x = a;
        double y = initialValue;
        double h = (b-a)/n;    //步长
        double K1, K2, K3, K4;
        for(i=1; i<=10; i++)
        {
            printf("x = %lf:\t", x+h);
            K1 = Derivativefunction(x, y);
            K2 = Derivativefunction(x+h/2, y+K1*h/2);
            K3 = Derivativefunction(x+h/2, y+K2*h/2);
            K4 = Derivativefunction(x+h, y+K3*h);
            y += (K1+2*K2+2*K3+K4)*h/6;
            printf("y(FourOrderRung_Kutta) = %lf\t", y);
            x += h;
            printf("y(准确) = %lf\n", function(x));
        }
    }
    
    int main()
    {
        printf("------------------------Euler----------------------\n");
        Euler(0, 1, 1, 10);
        printf("\n-------------------ImprovementEuler----------------\n");
        ImprovementEuler(0, 1, 1, 10);
        printf("\n-----------------FourOrderRung_Kutta---------------\n");
        FourOrderRung_Kutta(0, 1, 1, 10);
        return 0;
    }
    

    四、写在后面
    数值微分的实际应用:
    在许多科学技术问题中,建立的模型常常以常微分方程的形式表示。然而,除了少数特殊类型的常微分方程能用解析方法求其精确解外,要给出一般方程解析解的表达式是困难的。所以只能用近似方法求其数值解,在实际工作中常用计算机求常微分方程的数值解。所谓常微分方程的数值解即对于常微分方程初值问题
    这里写图片描述
    计算出在一系列节点 a = x0< x1<…< xn= b 处的未知函数 y(x)近似值y0,y1,…yn,即找到一系列离散点(x0,y0)(x1,y1)(x2,y2)…(xn,yn)近似满足常微分方程。数值解法的基本思想用差商代替导数,实现连续问题离散化,选取不同的差商代替导数可以得到不同公式。

    这里写图片描述

    展开全文
  • 上一节课主要介绍了曲线拟合与插值,曲线拟合主要包括线性拟合(单特征线性回归和非线性拟合(非线性方程特征变换、高阶多项式拟合),插值包括多项式插值...本节课主要介绍几种求解微分数值方法。 1. 有限差分...

    上一节课主要介绍了曲线拟合与插值,曲线拟合主要包括线性拟合(单特征线性回归和非线性拟合(非线性方程特征变换、高阶多项式拟合),插值包括多项式插值(拉格朗日形式、牛顿形式)、样条插值(线性插值、二次样条插值、三次样条插值),其中三次样条插值还有一个便于求解的拉格朗日形式。这里的曲线拟合与机器学习中的回归问题非常相似,具有很大的参考意义。本节课主要介绍几种求解微分的数值方法。

    1. 有限差分法

    给定一个函数\(f(x)\)\(f(x)\)\(x=a\)处的微分\(f'(x)\)定义为:\[\frac{df(x)}{dx}|_{x=a}=f'(a)=\lim_{x\rightarrow} \frac{f(x)-f(a)}{x-a}\] 图上的解释是\(f(x)\)\(x=a\)处的斜率:
    image.png

    前向、后向以及中心差分法是最简单的有限差分法:

    • 前向差分:\[\frac{df}{dx}|_{x=x_i}=\frac{f(x_{i+1})-f(x_i)}{x_{i+1}-x_i}\]

    • 后向差分:\[\frac{df}{dx}|_{x=x_i}=\frac{f(x_{i})-f(x_{i-1})}{x_{i}-x_{i-1}}\]

    • 中心差分:\[\frac{df}{dx}|_{x=x_i}=\frac{f(x_{i+1})-f(x_{i-1})}{x_{i+1}-x_{i-1}}\]

    image.png

    例:\(f(x)=x^3\),计算\(f(x)\)\(x=3\)处的微分

    (a) \(x=2,x=3,x=4\)
    真实值:\(f'(x)=3x^2\),\(f'(3)=27\)
    前向差分:\(f'(3)=\frac{f(4)-f(3)}{4-3}=64-27=37\)
    后向差分:\(f'(3)=\frac{f(3)-f(2)}{3-2}=27-8=19\)
    中心差分:\(f'(3)=\frac{f(4)-f(2)}{4-2}=\frac{64-8}{2}=28\)

    (b) \(x=2.75,x=3,x=3.25\)
    前向差分:\(f'(3)=\frac{f(3.25)-f(3)}{0.25}=29.3125\)
    后向差分:\(f'(3)=\frac{f(3)-f(2.75)}{0.25}=24.8125\)
    中心差分:\(f'(3)=27.0625\)

    可以看到中心差分最为准确,且两点间距变小时,差分计算会更为准确。
    MATLAB实现:

    function dx = derivative(x,y)
    % derivative calculates the derivative of a function that is given by a set
    % of points. The derivative at the first and last points are calculated by
    % using the forward and backward finite difference formula, respectively.
    % The derivative at all the other points is calculated by the central
    % finite difference formula.
    % Input variables:
    % x  A vector with the coordinates x of the data points.
    % y  A vector with the coordinates y of the data points.
    % Output variable:
    % dx  A vector with the value of the derivative at each point.
    
    n = length(x);
    dx(1)=(y(2)-y(1))/(x(2)-x(1));
    for i=2:n-1
        dx(i)=(y(i+1)-y(i-1))/(x(i+1)-x(i-1));
    end
    dx(n)=(y(n)-y(n-1))/(x(n)-x(n-1));

    2. 泰勒公式有限差分法

    2.1 一阶微分(两点法)
    • 前向展开:
      \(f(x)\)在点\(x_{i+1}\)处的值可以使用如下泰勒公式来逼近:\[f(x_{i+1})=f(x_i)+f'(x_i)h+\frac{1}{2!}f''(x_i)h^2+\frac{1}{3!}f'''(\xi_1)h^3\] 其中\(h=x_{i+1}-x_i\),\(\xi_1\)\(x_{i+1}\)\(x_i\)之间的数。求解该公式,有:\[f'(x_i)=\frac{f(x_{i+1})-f(x_i)}{h}-\frac{1}{2!}f''(x_i)h-\frac{1}{3!}f'''(\xi_1)h^2=\frac{f(x_{i+1})-f(x_i)}{h}+O(h)\] 等同于之前的前向差分,具有一阶准确度
    • 后向展开:
      \(f(x)\)在点\(x_{i-1}\)处的值可以使用如下泰勒公式来逼近:\[f(x_{i-1})=f(x_i)-f'(x_i)h+\frac{1}{2!}f''(x_i)h^2-\frac{1}{3!}f'''(\xi_2)h^3\] 其中\(h=x_{i}-x_{i-1}\),\(\xi_1\)\(x_{i-1}\)\(x_i\)之间的数。求解该公式,有:\[f'(x_i)=\frac{f(x_{i})-f(x_{i-1})}{h}+\frac{1}{2!}f''(x_i)h-\frac{1}{3!}f'''(\xi_2)h^2=\frac{f(x_{i})-f(x_{i-1})}{h}+O(h)\] 等同于之前的后向差分,具有一阶准确度

    • 中心展开(假设间距相同)
      结合上述两种展开,可以得到:\[f(x_{i+1})-f(x_{i-1})=2hf'(x_i)+\frac{1}{3!}(f'''(\xi_1)+f'''(\xi_2))h^3\] 因此有 \[f'(x_i)=\frac{f(x_{i+1})-f(x_{i-1})}{2h}+O(h^2)\] 等同于之前的中心差分,可以看到,具有二阶准确度

    2.2 一阶微分(三点法)

    分别写出\(x_{i-2},x_{i-1},x_{i+1},x_{i+2}\)四点的泰勒展开:

    • \(f(x_{i+1})=f(x_i)+f'(x_i)h+\frac{1}{2!}f''(x_i)h^2+\frac{1}{3!}f'''(\xi_1)h^3\)
    • \(f(x_{i-1})=f(x_i)-f'(x_i)h+\frac{1}{2!}f''(x_i)h^2-\frac{1}{3!}f'''(\xi_2)h^3\)

    • \(f(x_{i+2})=f(x_i)+f'(x_i)2h+\frac{1}{2!}f''(x_i)(2h)^2+\frac{1}{3!}f'''(\xi_3)(2h)^3\)
    • \(f(x_{i-2})=f(x_i)-f'(x_i)2h+\frac{1}{2!}f''(x_i)(2h)^2-\frac{1}{3!}f'''(\xi_4)(2h)^3\)

    可以看到:\[f(x_{i+2})-4f(x_{i+1})=-3f(x_i)-2f'(x_i)h+\frac{f'''(\xi_3)}{3!}(2h)^3-\frac{4}{3!}f'''(\xi_1)h^3\] 进一步得:\[f'(x_i)=\frac{-3f(x_i)+4f(x_{i+1})-f(x_{i+2})}{2h}+O(h^2)\] 这是一阶微分的三点前向公式,具有二阶准确度,类似地,可以得到如下具有二阶准确度的三点后向公式\[f'(x_i)=\frac{f(x_{i-2})-4f(x_{i-1})+3f(x_i)}{2h}+O(h^2)\]

    2.3 二阶微分(三点法)

    注意:

    • \(f(x_{i+1})=f(x_i)+f'(x_i)h+\frac{1}{2!}f''(x_i)h^2+\frac{1}{3!}f'''(x_i)h^3+\frac{1}{4!}f^{(4)}(\xi_1)h^4\)

    • \(f(x_{i-1})=f(x_i)-f'(x_i)h+\frac{1}{2!}f''(x_i)h^2-\frac{1}{3!}f'''(x_i)h^3+\frac{1}{4!}f^{(4)}(\xi_2)h^4\)

    • \(f(x_{i+2})=f(x_i)+f'(x_i)2h+\frac{1}{2!}f''(x_i)(2h)^2+\frac{1}{3!}f'''(x_i)(2h)^3+\frac{1}{4!}f^{(4)}(\xi_3)(2h)^4\)
    • \(f(x_{i-2})=f(x_i)-f'(x_i)2h+\frac{1}{2!}f''(x_i)(2h)^2-\frac{1}{3!}f'''(x_i)(2h)^3+\frac{1}{4!}f^{(4)}(\xi_4)(2h)^4\)

    前面两式相加,得 \[f(x_{i+1})+f(x_{i-1})=2f(x_i)+f''(x_i)h^2+\frac{1}{4!}f^{(4)}(\xi_1)h^4+\frac{1}{4!}f^{(4)}(\xi_2)h^4\] 可得\[f''(x_i)=\frac{f(x_{i+1})-2f(x_i)+f(x_{i-1})}{h^2}+O(h^2)\] 此即为三点中心差分公式,具有二阶准确度。类似地,推导可得如下五点中心差分公式\[ f''(x_i)=\frac{-f(x_{i-2})+16f(x_{i-1})-30f(x_i)+16f(x_{i+1})-f(x_{i+2})}{12h^2}+O(h^4) \] 具有四阶准确度。

    另一方面:\[f(x_{i+2})-2f(x_{i+1})=-f(x_i)+f''(x_i)h^2+\frac{6f'''(x_i)}{3!}h^3+\frac{1}{4!}f^{(4)}(\xi_3)(2h)^4-\frac{2}{4!}f^{(4)}(\xi_1)h^4\] 可得 \[f''(x_i)=\frac{f(x_i)-2f(x_{i+1})+f(x_{i+2})}{h^2}+O(h)\] 此即为三点前向差分公式,具有一阶准确度,类似可得如下具有一阶准确度三点后向差分公式\[f''(x_i)=\frac{f(x_{i-2})-2f(x_{i-1})+f(x_{i})}{h^2}+O(h)\]

    MATLAB实现:

    function [yd,ydd] = FirstScndDerivPt(x,y)
    n = length(x);
    h = x(2)-x(1);
    %  首个数据,一阶导数使用三点前向差分,二阶导数使用4点前向差分
    yd(1) = (-3*y(1)+4*y(2)-y(3))/(2*h);
    ydd(1) = (2*y(1)-5*y(2)+4*y(3)-y(4))/(h^2);
    
    % 中间数据,一阶导数使用两点中心差分,二阶导数使用三点中心差分
    for i=2:n-1
        yd(i)=(y(i+1)-y(i-1))/(2*h);
        ydd(i)=(y(i-1)-2*y(i)+y(i+1))/(h^2);
    end
    
    % 末尾数据,一阶导数使用三点后向差分,二阶导数使用4点后向差分
    yd(n) = (y(n-2)-4*y(n-1)+3*y(n))/(2*h);
    ydd(n) = (-y(n-3)+4*y(n-2)-5*y(n-1)+2*y(n))/(h^2);
    figure
    subplot(3,1,1)
    plot(x,y)
    subplot(3,1,2)
    plot(x,yd)
    subplot(3,1,3)
    plot(x,ydd)
    end

    3. 拉格朗日多项式求导公式

    对点\((x_i,y_i),(x_{i+1},y_{i+1}),(x_{i+2},y_{i+2})\)进行拉格朗日多项式插值,有 \[f(x)=\frac{(x-x_{i+1})(x-x_{i+2})}{(x_i-x_{i+1})(x_i-x_{i+2})}y_i+\frac{(x-x_{i})(x-x_{i+2})}{(x_{i+1}-x_{i})(x_{i+1}-x_{i+2})}y_{i+1}\] \[+\frac{(x-x_{i})(x-x_{i+1})}{(x_{i+2}-x_{i})(x_{i+2}-x_{i+1})}y_{i+2}\]
    此时 \[f'(x)=\frac{2x-x_{i+1}-x_{i+2}}{(x_i-x_{i+1})(x_i-x_{i+2})}y_i+\frac{2x-x_{i}-x_{i+2}}{(x_{i+1}-x_{i})(x_{i+1}-x_{i+2})}y_{i+1}\] \[+\frac{2x-x_{i}-x_{i+1}}{(x_{i+2}-x_{i})(x_{i+2}-x_{i+1})}y_{i+2}\] 因此\[f'(x_i)=\frac{2x_i-x_{i+1}-x_{i+2}}{(x_i-x_{i+1})(x_i-x_{i+2})}y_i+\frac{x_{i}-x_{i+2}}{(x_{i+1}-x_{i})(x_{i+1}-x_{i+2})}y_{i+1}\] \[+\frac{x_{i}-x_{i+1}}{(x_{i+2}-x_{i})(x_{i+2}-x_{i+1})}y_{i+2}\]\(x_{i+1}-x_i=x_{i+2}-x_{i+1}=h\)时,有 \[f'(x_i)=\frac{-3y_i+4y_{i+1}-y_{i+2}}{2h}\] 此式与三点前向差分公式一致。

    4. 数值偏微分

    image.png
    对二元函数\(f(x,y)\) ,其在点\((a,b)\)处的偏微分定义为:\[\frac{\partial f}{\partial x}|_{(a,b)}=\lim_{x\rightarrow a} \frac{f(x,b)-f(a,b)}{x-a}\] \[\frac{\partial f}{\partial y}|_{(a,b)}=\lim_{x\rightarrow b} \frac{f(a,y)-f(a,b)}{ y-b}\] 对一阶偏微分\(\frac{\partial f}{\partial x}\)\(\frac{\partial f}{\partial y}\),两点前向公式为:\[\frac{\partial f}{\partial x}|_{(x_i,y_i)}=\frac{f(x_{i+1},y_i)-f(x_i,y_i)}{x_{i+1}-x_i}\] \[\frac{\partial f}{\partial y}|_{(x_i,y_i)}=\frac{f(x_{i},y_{i+1})-f(x_i,y_i)}{y_{i+1}-y_i}\] 两点后向公式为:\[\frac{\partial f}{\partial x}|_{(x_i,y_i)}=\frac{f(x_{i},y_i)-f(x_{i-1},y_i)}{x_{i}-x_{i-1}}\] \[\frac{\partial f}{\partial y}|_{(x_i,y_i)}=\frac{f(x_{i},y_{i})-f(x_i,y_{i-1})}{y_{i}-y_{i-1}}\]
    两点中心差分公式:\[\frac{\partial f}{\partial x}|_{(x_i,y_i)}=\frac{f(x_{i+1},y_i)-f(x_{i-1},y_i)}{2h_x}\] \[\frac{\partial f}{\partial y}|_{(x_i,y_i)}=\frac{f(x_{i},y_{i+1})-f(x_i,y_{i-1})}{2h_y}\] 对二阶偏微分\(\frac{\partial^2 f}{\partial x^2},\frac{\partial^2 f}{\partial y^2}\),三点中心差分公式为:\[\frac{\partial^2 f}{\partial x^2}|_{(x_i,y_i)}=\frac{f(x_{i-1},y_i)-2f(x_i,y_i)+f(x_{i+1},y_i)}{h^2_x}\] \[\frac{\partial^2 f}{\partial y^2}|_{(x_i,y_i)}=\frac{f(x_{i},y_{i-1})-2f(x_i,y_i)+f(x_{i},y_{i+1})}{h^2_y}\] 对二阶偏微分\(\frac{\partial^2 f}{\partial x \partial y}=\frac{\partial}{\partial x}(\frac{\partial f}{\partial y})=\frac{\partial}{\partial y}(\frac{\partial f}{\partial x})\),逐步计算即可:\[\frac{\partial^2 f}{\partial x \partial y}|_{(x_i,y_i)}=\frac{\frac{f(x_{i+1},y_{i+1})-f(x_{i-1},y_{i+1})}{2h_x}-\frac{f(x_{i+1},y_{i-1})-f(x_{i-1},y_{i-1})}{2h_x}}{2h_y} \text{($\frac{\partial f}{\partial x}$取中心差分)}\]
    MATLAB实现:

    function [dfdx,dfdy] = ParDer(x,y,f)
    n = length(x);
    m = length(y);
    hx = x(2)-x(1);
    hy = y(2)-y(1);
    
    % 首位数据使用三点前向
    for j = 1:m
        dfdx(1,j) = (-3*f(1,j)+4*f(2,j)-f(3,j))/(2*hx);
    end 
    for i = 1:n
        dfdy(i,1) = (-3*f(i,1)+4*f(i,2)-f(i,3))/(2*hy);
    end
    
    % 两点中心差分
    for i = 2:n-1
        for j = 1:m
            dfdx(i,j) = (f(i+1,j)-f(i-1,j))/(2*hx);
        end
    end
    
    for j = 2:m-1
        for i = 1:n
            dfdy(i,j) = (f(i,j+1)-f(i,j-1))/(2*hy);
        end
    end
    
    % 末尾数据使用三点后向
    for j = 1:m
    dfdx(n,j) = (f(n-2,j)-4*f(n-1,j)+3*f(n,j))/(2*hx);
    end
    
    for i = 1:n
        dfdy(i,m) = (f(i,m-2)-4*f(i,m-1)+3*f(i,m))/(2*hy);
    end
    
    end

    5. Richardson外推加速算法

    Richardson外推加速算法能够把两个低精度的方法组合成一个高精度的计算方法,假设\[D=D(h)+k_2h^2+k_4h^4\]是一种数值微分计算方法,\(D(h)\)是估计的微分,\(k_2h^2\)\(k_4h^4\)是估计误差,可以看到,具有二阶精度,如果把间距调整为\(\frac{h}{2}\),则\[D=D(\frac{h}{2})+k_2(\frac{h}{2})^2+k_4(\frac{h}{2})^4\] 其精度仍是二阶的。但是有:\[4D-D=4D(\frac{h}{2})-D(h)-\frac{3}{4}k_4h^4\] 因此,\[D=\frac{1}{3}(4D(\frac{h}{2})-D(h))+O(h^4)\] 可以看到,具有四阶精度。

    举个例子,考虑一阶微分的两点中心差分法(二阶精度):\[f'(x_i)=\frac{f(x_{i+1})-f(x_{i-1})}{2h}+\frac{1}{3!}f'''(x_i)h^2+O(h^4)\] \[=\frac{f(x_{i}+h)-f(x_{i}-h)}{2h}+\frac{1}{3!}f'''(x_i)h^2+O(h^4)\] 缩短间距,有 \[f'(x_i)=\frac{f(x_{i+1})-f(x_{i-1})}{h}+\frac{1}{3!}f'''(x_i)(\frac{h}{2})^2+O(h^4)\] \[=\frac{f(x_{i}+\frac{h}{2})-f(x_{i}-\frac{h}{2})}{h}+\frac{1}{3!}f'''(x_i)(\frac{h}{2})^2+O(h^4)\] 按照Richardson外推加速算法,有 \[ 4f'(x_i)=4\frac{f(x_{i}+\frac{h}{2})-f(x_{i}-\frac{h}{2})}{h}+\frac{4}{3!}f'''(x_i)(\frac{h}{2})^2+4O(h^4) \] 进一步 \[ 3f'(x_i)=[4\frac{f(x_{i}+\frac{h}{2})-f(x_{i}-\frac{h}{2})}{h}-\frac{f(x_{i}+h)-f(x_{i}-h)}{2h}]+3O(h^4) \] 因此 \[ f'(x_i)=\frac{1}{3}[4\frac{f(x_{i}+\frac{h}{2})-f(x_{i}-\frac{h}{2})}{h}-\frac{f(x_{i}+h)-f(x_{i}-h)}{2h}]+O(h^4) \] 可以看到,精度提高到了四阶。

    6. 总结

    本节课主要介绍了一些数值微分算法,对于一阶微分,最常用的有两点前向差分(精度为\(O(h)\))、两点后向差分(精度为\(O(h)\))以及两点中心差分算法(精度为\(O(h^2)\)),其表达式均可以通过处理泰勒展开式来得到。通过处理泰勒展开式还可以得到一阶微分的三点前向差分和三点后向差分算法,精度与两点中心差分一致。对于二阶微分,同样可以利用泰勒展开,得到三点前向差分、三点后向差分以及三点中心差分算法。另一方面,还可以通过拉格朗日插值公式,得到相应的微分计算公式。这些公式又都可以很容易推广到多元函数的数值微分中去。最后,对于两个精度不高的微分算法,可以通过Richardson外推加速算法得到一个精度更高的算法,在实际问题中具有很广泛的应用。

    转载于:https://www.cnblogs.com/SweetZxl/p/11325961.html

    展开全文
  • 微积分中,任意函数f(x)在点的导数是通过极限定义的,因此可以利用差商近似代替在点处的导数. 数值微分的实现 dx = diff(x) 计算向量x的向前差分,dx(i)=x(i+1)-x(i) dx = diff(x, n) 计算向量x的n阶向前差分 dx =...
  • 常用导数+积分公式

    千次阅读 2019-04-17 11:33:17
    常用导数+积分公式
  • 微积分中的有一个很重要的东西:导数 众所周知(好吧,这么难谁都不知道好吧......),导数主要可以观察到函数值对变量的细微变化的敏感度,具体的解析可以查看我写过的一篇文章(如果没有连接的话应该还没更新) ...
  • 数值积分数值微分的MATLAB实现数值积分梯形公式中矩形公式Simpson公式三级目录 数值积分 梯形公式 function f=f(a) %积分函数 f=a^2; function s=tx(a,b) %梯形公式 fa=f(a); fb=f(b); s=(b-a)/2*(fa+fb); ...
  • 数值微分的python实现

    千次阅读 2020-09-10 17:25:08
    1. 数值微分常用公式 2. 插值型求导公式 实现代码 3. 基于数值积分的方法 实现代码 4. 数值微分的外推算法 实现代码
  • 写在章前:积分微分的计算,是具有广泛应用的古典问题。 然而...
  • 数值分析 计算方法 数值积分 数学建模 matlab程序
  • 积分公式常用方法总结

    万次阅读 多人点赞 2018-01-31 23:47:30
    积分公式汇总 不定积分 不定积分的积分公式主要有如下几类:含ax+b的积分、含√(a+bx)的积分、含有x^2±α^2的积分、含有ax^2+b(a&gt;0)的积分、含有√(a²+x^2) (a&gt;0)的积分、含有√(a^2-x^2) (a&...
  • 高斯勒让德数值积分公式

    千次阅读 2019-12-15 23:06:00
    高斯勒让德数值积分公式1 引言2 高斯积分公式2.1 一维区间上高斯数值积分公式2.2 二维三角形上的高斯数值积分...在插值型积分公式中,高斯积分公式具有最高的代数精度,所以是常用数值积分公式。 2 高斯积分公式...
  • 文章目录一、数值微分与数值积分1、数值微分2、数值积分二、线性方程求解1、直接法2.读入数据总结 一、数值微分与数值积分 1、数值微分 MATLAB提供了求向前差分的函数diff,调用格式: (1)dx=diff(x):计算向量x的...
  • 文章目录A 数值微分与数值积分A.a数值微分(diff)A.b 数值积分B 线性方程组求解B.a 直接法B.b 迭代法B.c 线性方程组应用举例C 非线性方程求解与函数极值计算C.a 非线性方程数值求解C.b函数极值的计算D 常微分方程数值...
  • 数值积分方法

    万次阅读 2015-06-19 10:38:47
    数值积分是工程师和科学家经常使用的基本工具,用来计算无法解析求解的定积分的近似解。 如:Φ(x)=∫xxt3et−1dt\Phi(x)=\int_x^x\frac{t^3}{e^t-1}dt不存在Φ(x)\Phi(x)的解析解,要求Φ(5)\Phi(5)。 那么我们...
  • 中山大学 数学实验与数学软件 第07章 MATLAB数值微积分(共32页).pptx 中山大学 数学实验与数学软件 第08章 MATLAB微分方程数值解法(共33页).pptx 中山大学 数学实验与数学软件 第09章 MATLAB数值线性代数(共29...
  • import numpy as np from scipy.integrate import quad ...数值积分 梯形公式、辛普森(simpson)公式和布尔(Boole)公式,都是选择等距节点; 高斯——勒让德(Gauss-Legendre)公式选择某些勒让...
  • Matlab数值微积分与方程求解

    千次阅读 2020-05-28 20:32:32
    文章目录一、数值微分与数值积分1.1 数值微分1.2 数值积分quad函数quadl函数integral函数quadgk函数trapz函数多重定积分的数值求解二、线性方程组求解2.1 直接法2.1.1 高斯(Gauss)消去法2.1.2 列主元消去
  • VC实现的常用数值分析算法(解线性方程组,拟合,插值,微分方程,LU分解法,复合辛普森公式
  • 欧拉法简介几何意义证明泰勒展开近似求导近似积分近似几种欧拉方式向前欧拉公式向后欧拉公式梯形公式改进欧拉法截断误差...该系列主要介绍一些常用的常微分方程的数值解法,主要包括: [常微分方程的数值解法系列一]
  • VC++常用数值计算方法

    2008-11-21 10:03:46
    本收共不数值计算中常用的Visual C++子过程近200个,内容包括:解线性代数议程组、插值、数值积分、特殊函数、函数逼近、随机数、排序、特征值问题、数据拟合、方程求根和非线性方程组求解、函数的极值和最优化、...
  • 本指南介绍了如何在纯R代码中实现线性代数,插值,数值积分,优化和微分方程式的常用函数。 所描述的每种算法均以R形式提供了完整的函数实现,并带有示例来演示该函数及其用法。 使用带有R的R进行数值分析的计算方法...
  • SymPy 是一个由 Python 语言编写的符号计算库。我将在本文中简要地介绍如何利用 SymPy 进行符号计算。在介绍 SymPy 之前,我们首先要...与符号计算相对应的是数值计算,下面将以两个例子来展示二者之间的区别。数...
  • python初探常微分方程组数值

    千次阅读 2021-01-27 23:36:37
    基于python,采用四阶龙格-库塔算法进行常微分方程组数值求解,最终用Apollo卫星运动轨迹作为示例
  • 各种数值积分方法总结(龙贝格积分、高斯积分等)(一重积分的)常用数值积分方法牛顿-科茨(Newton-Cotes)积分公式梯形法则(2点积分)辛普森法则(3点积分和4点积分)辛普森1/3法则(3点积分)辛普森3/8法则(4...
  • 文章目录数值积分课程小结第一章复习要点第二章复习要点第三章复习要点第四章复习要点第五章复习要点第六章复习要点(主要做题)需要背的公式:需要了解的两种类型来构造求解公式:第七章(要背的公式多一点)要背的...
  • 微分方程的数值解法之Euler法1. 引言2. Euler方法2.1 显式Euler方法2.2 隐式Euler方法2.3 梯形方法3. 隐式方程的迭代求解4. 预估-校正方法5. 误差分析5.1 显式单步方法误差分析5.2 隐式单步方法误差分析 1. 引言 ...
  • MATLAB中的微积分运算(数值&符号)

    千次阅读 2016-05-16 14:05:00
    显然这个函数是单词differential(微分)的简写,用于计算微分。实际上准确来说计算的是差商。 如果输入一个长度为n的一维向量...1.常用微分函数 函数:diff(f) 求表达式f对默认自变量的一次微分值 diff(f,x) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,072
精华内容 2,428
关键字:

常用数值微分公式