我需要用Simulink来解决这段代码,我不知道怎么做。我只知道如何使用ODE求解器来实现它。
y'' - y' - 2y = e^(3x)
y(0)=1, y'(0)=2.
我重写了方程,得到了一首颂歌:
y' = f(x,y)
y(x0) = y0
y'1 = y2
y2= e^(3*x) + y' + 2y
使用ODE解算器。
如果有人能用Simulink模型帮我解决这个问题,我会很感激的。
我知道如何在Matlab中使用像ode23和ode23s那样的ODE求解器,但是我不知道如何使用Simulink模型来解决这个问题。
提前感谢
发布于 2015-06-01 04:33:58
你能用封闭的形式解决它吗?在我看来是可行的。如果可能的话,我建议任何人在开始一个数值解之前都要掌握答案。
这是我得到的。检查我:
y(x) = e^(-x)*(8e^3x + 3e^4x + 1)/12
沃尔夫拉姆阿尔法说这是正确的。
(注:x值大的麻烦--这个响应将以e^3倍的速度增长。)
您需要将其表示为一组耦合的一阶ODEs。
y' = z
z' = z + 2y + e^(3x)
边界条件变成:
y(0) = 1
z(0) = 2
发布于 2015-06-01 05:26:10
你可以在Simulink中逐项建立方程,并通过双击和设置相应的字段向积分器添加初始条件。
因此,快速实现如下所示
我假设你的x是一个类似时间的量,所以我放了一个斜坡函数。时钟等也可以。
或者,您可以显式地考虑初始条件来形成状态空间系统或传递函数。
https://stackoverflow.com/questions/30573274
复制相似问题