matlab循环求微分方程,MATLAB解微分方程

MATLAB解微分方程

用matlab时间也不短了,可是一直没有接触过微分方程。这次看看书,学习学习,记点儿笔记。

1.可以解析求解的微分方程。

dsolve()

调用格式为:

24cf7722da0a354aed69ae730482f6ef.png

77eaa3f9a437f218e27476a9e3b31e8f.png

matlab循环求微分方程,MATLAB解微分方程_第1张图片

将yc的内容copy到latex中编译,得到结果。

关于Matlab的微分方程,直到今天才更新第2篇,实在是很惭愧的事——因为原因都在于太懒惰,而不是其他的什么。

在上一篇中,我们使用dsolve可以解决一部分能够解析求解的微分方程、微分方程组,但是对于大多数微分方程(组)而言不能得到解析解,这时数值求解也就是没有办法的办法了,好在数值解也有很多的用处。

数值分析方法中讲解了一些Eular法、Runge-Kutta 法等一些方法,在matlab中内置的ode 求解器可以实现不同求解方法的相同格式的调用,而不必太关心matlab究竟是用什么算法完成的。

这一回我们来说明ode45求解器的使用方法。

1.ode45求解的上手例子:

求解方程组

Dx=y+x(1-x^2-y^2);

Dy=-x+y*(1-x^2-y^2)

初值x=0.1;y=0.2;

先说明一下最常用的ode45调用方式,和相应的函数文件定义格式。

[t,x]=ode45(odefun,tspan,x0);

其中,Fun就是导函数,tspan为求解的时间区间(或时间序列,如果采用时间序列,则必须单调),x0为初值。

这时,函数文件可以采用如下方式定义

function dx=odefun(t,x)

对于上面的小例子,可以用如下的程序求解。

你可能感兴趣的:(matlab循环求微分方程)