MATLAB:使用ODE求解器?

时间:2008-12-18 09:57:01

标签: math matlab integration numerical

这是一个非常基本的问题,但这是我第一次使用MATLAB而且卡住了。 我需要使用3种不同的数值积分技术来模拟简单的RC系列网络。我想我理解如何使用ode求解器,但我不知道如何输入系统的微分方程。我需要通过m文件吗?

这只是一个简单的RC电路:

RC dy(t)/dt + y(t) = u(t)

初始条件为零。我有R,C的步长和模拟时间的值,但我不知道如何使用MATLAB。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

您将需要一个以 t y 作为输入的函数文件,并将 dy 作为输出。它将是自己的文件,带有以下标题。

function dy = rigid(t,y)

在MATLAB路径上将其保存为rigid.m。

从那里你可以输入你的微分方程。你现在有一个功能。这是一个简单的:

function dy = rigid(t,y)

dy = sin(t);

从命令行或脚本中,您需要通过ODE45

来驱动此功能
[T,Y] = ode45(@rigid,[0 2*pi],[0]);

这将为您的功能(rigid.m)提供从时间0 时间2 * pi 初始y为零

绘制这个:

plot(T,Y)

alt text

更多MATLAB文档在这里:

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/ode23tb.html

答案 1 :(得分:1)

The Official Matlab Crash Course(PDF警告)有一个关于解决ODE的部分,以及我在启动Matlab时发现有用的许多其他资源。