数字积分

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

$\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));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值