zoukankan      html  css  js  c++  java
  • 数字积分

    考虑如下的一阶微分方程:

    $frac{dx}{dt}=f(x,t)$

    选取小的h,有如下结果:

    $frac{dx}{dt}=f(x,t)=frac{x(t+h)-x(t)}{h}=frac{x_k-x_{k-1}}{h}$

    重写为如下形式:

    $x_k=x_{k-1}+hf(x,t)$

    使用下面的二阶线性微分方程作为例子:

    $frac{d^2x}{dt^2}=-omega ^2x$

    初始条件:

    $x(0)=0$

    $frac{dx}{dt}=omega$

    其解析解为$x=sin{omega t}$

    matlab程序如下(请忽视作为一个初学者的糟糕语法)

    % Euler numerical integration for d(dx/dt)/dt = -omega*omega*x
    w = 2;                      % w is omega
    x = zeros(1, 1000);   % x init condition:=0
    xd = w;                    % xd = dx/dt, init condition:=w
    h=0.01;                    % step size
    loop_times = 1;
    for t = 0:h:9.99
        xdd = -w * w * x(loop_times);
        xd = xd + h*xdd;
        x(loop_times + 1) = x(loop_times) + h*xd;
        loop_times = loop_times + 1;
    end
    plot(x);
    hold on;                     % put the following curve on the same plot
    t = 0:h:9.99;
    plot(sin(w*t));

  • 相关阅读:
    Ionic 2.0 相关资料
    Tkinter的Menubutton组件
    Tkinter的Menubutton组件之OptionMenu
    Tkinter的Menu组件
    Tkinter的Scale组件
    Tkinter的Scrollbar组件
    Tkinter的Listbox组件
    Tkinter的Text组件
    Tkinter的Spinbox组件
    Tkinter的Label组件
  • 原文地址:https://www.cnblogs.com/byeyear/p/6714342.html
Copyright © 2011-2022 走看看