解常微分方程
我最近处理多个帮助请求在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))、标题(速度与时间的)
你可以看到最左边的点块匹配指定的初始条件。
转换方程
你需要重塑问题符合特定配方如求解常微分方程?让我们听听在这里。
- カテゴリ:
- distance_learning,
- 如何
コメント
コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。