罗兰在MATLAB的艺术

把想法变成MATLAB

请注意

罗兰在MATLAB的艺术已经存档,不会被更新。

解常微分方程

我最近处理多个帮助请求在MATLAB求解微分方程。所有的情况下我工作归结为如何将高阶方程(s)给一个一阶方程组。在这篇文章中,我将概述如何完成这一任务,解决问题的方程。我要讲的是细节的ODE求解算法(也许另一个时间)。

内容

简单的系统

让我们先从一个简单的、线性二阶系统,弹簧质点系统一维运动约束,水平(因此没有重力)。如果是质量和弹簧常数,系统的运动方程是:

条件下,初始和其他方面

为了解决这个系统,我们需要知道,,和初始条件,例如,(也称为位置和速度)。让我们简化和设置,即,no external forces. Let's also set some initial conditions,换句话说,从春天开始未拉伸和大众运动。我得到这个系统:

变换方程

在的帮助,我需要建立一个方程组使我使用其中的一个解决数值的颂歌在MATLAB。

开始转换,让我定义一个新的变量,将系统中替代。

我可以推出

现在重写我的歌唱系统而言

与初始条件。

现在让我整理这两个方程的向量/矩阵方程

我现在写我仅仅的方程,新向量(包括位置和速度)。有鉴于此,我将首先重组现有的方程在左手边。

或者,用,

试一试!

让我们试一试。设置的值k

m = 1;k = 10;

我可以创建ODE的代码在一个文件,或者我可以建立方程为一个匿名函数,这里我会做什么。

springmass = @ (t, z) [z (2);- k * z (1) / m];

设置初始条件。

ic = [0;1);

解决之间

tspan = (10 0);

所谓的ODE求解器和策划的结果。

[t、y] = ode23 (springmass tspan, ic);情节(t, y(: 1))、标题(的位置和时间)

和速度。

情节(t、y(:, 2))、标题(速度与时间的)

你可以看到最左边的点块匹配指定的初始条件。

转换方程

你需要重塑问题符合特定配方如求解常微分方程?让我们听听在这里




使用MATLAB®7.10发表


  • 打印
  • 发送电子邮件

コメント

コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。