Tip:在接下来,我会更新一些关于MATLAB数值计算的博客,像常微分方程的初始值问题求解,求微分积分,解线性方程与非线性方程组,差值与拟合还有求极值等,需要的小伙伴可以关注一下
常微分方程的初始值问题
一、一般形式:
常微分方程的初始值问题一般形式为:
{ d y d x = f ( x , y ) y ( x 0 ) = y 0 \begin{cases} \dfrac{dy}{dx} =f(x,y)\\ y(x_0)=y_0 \end{cases} ⎩⎨⎧dxdy=f(x,y)y(x0)=y0
二、三种求解算法:
1.向前欧拉(Euler)算法
原理:
知道一个点(x0,y0)和斜率,就可以推得下一个x点的y值对应为:
y = y 0 + d y d x ∣ x 0 × ( x − x 0 ) y=y_0+\dfrac{dy}{dx} |_{x_{0}}\times(x-x_0) y=y0+dxdy∣x0×(x−x0)
由于一阶导数就是f(x,y),把式子化成
y = y 0 + f ( x 0 , y 0 ) × ( x − x 0 ) y=y_0+f(x_0,y_0)\times(x-x_0) y=y0+f(x0,y0)×(x−