🥑Python多语言欧拉法和预测校正器实现

🏈指点迷津 | Brief

📜流体力学电磁学运动学动力学化学和电路中欧拉法

📜流体力学电磁学运动学动力学化学和电路中欧拉法示例:Python重力弹弓流体晃动微分方程模型和交直流电阻电容电路

✒️多语言实现欧拉法和修正欧拉法

在数学和计算科学中,欧拉方法(也称为前向欧拉方法)是一种用于求解具有给定初值的常微分方程的一阶数值程序。考虑一个微分方程 dy/dx=f(x,y)d y / d x=f(x, y),初始条件为 y(x0)=y0y(x_0)=y_0,则该方程的逐次逼近可由下式给出:

y(n+1)=y(n)+hf(x(n),y(n))y(n+1)=y(n)+h * f(x(n), y(n))

其中 h=(x(n)x(0))/nh=(x(n)-x(0)) / nhh 表示步长。选择较小的 hh​ 值会导致更准确的结果和更多的计算时间。

例如,考虑微分方程 dy/dx=(x+y+xy)d y / d x=(x+y+x y) ,初始条件为 y(0)=1y (0)=1,步长为 h=0.025h =0.025。求y(0.1)y(0.1)​。

解:f(x,y)=(x+y+xy)f(x, y)=(x+y+x y)

x0=0,y0=1,h=0.025x 0=0, y 0=1, h=0.025

现在我们可以使用欧拉公式计算 y1y_1

y1=y0+hf(x0,y0)y1=1+0.025(0+1+01)y1=1.025y(0.025)=1.025.\begin{aligned} & y_1=y 0+h * f(x 0, y 0) \\ & y_1=1+0.025 *(0+1+0 * 1) \\ & y_1=1.025 \\ & y(0.025)=1.025 . \end{aligned}

类似地我们可以计算 y(0.050),y(0.075),y(0.1)y(0.050), y(0.075), \ldots y(0.1)​

y(0.1)=1.11167y(0.1)=1.11167

Python实现:

C++实现:

C#实现:

Java实现:

JavaScript实现:

预测校正器或修正欧拉法

Python实现

C++实现

C#实现

Java实现

JavaScript实现

Last updated

Was this helpful?