01常微分方程(ODE)求解方法小结

后续陆续更新:传递函数讲解、工作点线性化、系统辨识、LMS

一、常微分方程介绍

1.微分方程

(1)微分方程定义

微分方程,是指含有未知函数及其导数的关系式。

解微分方程就是找出未知函数。

(2)微分方程分类

1.按函数个数
如果函数只有一个自变量,那么方程就称为常微分方程(ODE);
如果函数含有两个或者多个自变量,则成为偏微分方程(PDE)。

2.按方程阶数
最高阶导数是一阶导数,则称为一阶微分方程;
最高阶导数是二阶导数,则称为二阶微分方程。

3.按线性与否划分
如果一个微分方程中仅含有未知函数及其各阶导数作为整体的一次幂,则称它为线性微分方程。
可以理解为此微分方程中的未知函数y是不超过一次的,且此方程中y的各阶导数也应该是不超过一次的。

n阶线性常微分方程的一般表达式为:
a n ( x ) D n y ( x ) + . . . + a 0 ( x ) D 0 y ( x ) = f ( x ) a_n(x)D^ny(x)+...+a_0(x)D^0y(x)=f(x) an(x)Dny(x)+...+a0(x)D0y(x)=f(x)

二、一阶常微分方程迭代求解

问题描述:求解满足如下一阶常微分方程的函数
a 1 y ′ ( x ) + a 0 y ( x ) = f ( x ) , y ( x 0 ) = y 0 a_1y'(x)+a_0y(x)=f(x),y(x_0)=y_0 a1y(x)+a0y(x)=f(x),y(x0)=y0
亦即
y ′ ( x ) = f ( x , y ) , y ( x 0 ) = y 0 y'(x)=f(x,y),y(x_0)=y_0 y(x)=f(x,y),y(x0)=y0

1.欧拉法

欧拉法的核心思想是利用一阶导数的差分值代替实际值。亦即针对原本连续的函数,通过将自变量离散化,利用因变量一阶导数的差分值代替实际值,从而迭代求解出函数。

针对上述问题,先将自变量离散化,且设置步长为 Δ x \Delta x Δx

则在已知点 x 0 x_0 x0处有
a 1 y ( x 0 + Δ x ) − y ( x 0 ) Δ x + a 0 y 0 = f ( x 0 ) a_1\frac{y(x_0+\Delta x)-y(x_0)}{\Delta x}+a_0y_0=f(x_0) a1Δxy(x0+Δx)y(x0)+a0y0=f(x0)
化简可得:
y ( x 0 + Δ x ) = y ( x 0 ) + ( f ( x 0 ) − a 0 y 0 ) Δ x a 1 y(x_0+\Delta x)=y(x_0)+\frac{(f(x_0)-a_0y_0)\Delta x}{a_1} y(x0+Δx)=y(x0)+a1(f(x0)a0y0)Δx
而后根据 x 0 + Δ x x_0+\Delta x x0+Δx处的函数值可以推导 x 0 + 2 Δ x x_0+2\Delta x x0+x处的函数值,循环迭代即可得想要求出得函数。

通式:新值=旧值+斜率估计值*步长。

欧拉方法利用斜率(线性估计值),通过线性外推的办法预测出函数值在前进特定步长之后处的新值。

2.龙格-库塔法

在各种龙格-库塔法当中有一个方法十分常用,以至于经常被称为“RK4(四阶龙格-库塔法)”或者就是“龙格-库塔法”。该方法主要是在已知方程导数和初值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程。

龙格-库塔法的基本形式为:
y ( x 0 + Δ x ) = y ( x 0 ) + ( a 1 k 1 + a 2 k 2 + a 3 k 3 + a 4 k 4 ) Δ x y(x_0+\Delta x)=y(x_0)+(a_1k_1+a_2k_2+a_3k_3+a_4k_4)\Delta x y(x0+Δx)=

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执迷、不悔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值