问题标签 [ode45]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Python 中模仿 MATLAB 中的 ode45 函数
我想知道如何将 MATLAB 函数 ode45 导出到 python。根据文档应该如下:
结果完全不同,Matlab 返回的维度与 Python 不同。
matlab - 如何在 MATLAB 中更改 ODE 求解器(例如 ODE45)中的参数值?
当 T 在 [0,12] 范围内时,我必须在 matlab 中用 ode45 求解这个方程:
我想要那个时候:
- T > Tend,开关为0,
- (T < Tin and dT/dt > 0),开关为 1。
我在这里看到了文档,但我不明白怎么做。
odefun 函数:
正如我上面所说,我不想将参数传递给函数!也许以前的标题具有误导性,但我认为我的问题很清楚。但是,我尝试更好地解释。Ode45 数值积分我的函数,所以它给了我在时间 t_i ( f(t_i) ) 的函数值,并且对于 [0:12] 中的每个 t_i 重复此操作。我想根据时间 t_i 的函数值来更改时间 t_(i+1) 的积分开关的值。[规则在上面解释]。
matlab - 四分之一汽车模型matlab代码ode45绘图
我有一个四分之一的汽车模型,它是一个带有阻尼器和弹簧的 2 自由度系统,带有以下代码和图表;
在这里,我尝试将输入作为道路条件。首先,我将步长输入设置为 0.5 秒后 0.01 米的高度,因此我将函数 dx(4) 更改为如下更改函数文件;
添加;
在代码 dx=zeros(4,1) 和 dx(1)=x(2) 之间。
回想一下这个函数,我可以绘制 x1 和 x2(即汽车和轮胎)位移的图形,如下所示;
问题1,我有一个图表
但这不是我想要的图表,我怎样才能得到 x1 稳定在 0.7 和 x2 分别在 0.35 作为初始条件的图表,而不是 0?
此外,我尝试更改 x1、k1 和 k2 值,以查看它如何通过分别更改函数文件中的 x1、k1 和 k2 值并单独保存来影响位移。
问题 2,我尝试在不同的图中同时绘制所有 x1 和 x2 的图形,如下所示;
但我有一个错误,向量数组必须匹配。它实际上是不同的,因为 x1_position 是 1361x1 而 x2_position_2700 是 1041x1 等。如何更改代码以匹配数组?
问题 3,如果我想设置一个幅度为 0.01 米的正弦输入,我应该如何更改输入?
谢谢
matlab - 使用 ode45 设置两个事件
有人可以解释一下以这种方式设置 ode45 事件时我做错了什么吗?
当我尝试运行代码时,它会到达第 6 行,但是无论我isTerminal=[1,1]
在第 7 行设置了什么,它都不会停止计算 ode,而是会一直持续到结束:当第二个事件 z(3) 达到 0 时,它会到达第 10 行,取决于我是否设置isTerminal=[1,1]
或isTerminal=[0,1]
然后停止计算isTerminal(1)
作为触发事件和isTerminal(2)
后一种情况。
我的问题是,为什么 ode 一旦到达第 7 行就不会停止计算?这是我能想到的最简约的例子。如果还有什么我应该补充的,请告诉我。
matlab - 是否可以通过非连续函数触发事件?
有人可以通过为不连续的函数指定事件来为我指明正确的方向吗?例如,假设我有一个沿 x 轴移动的 Object1,我还有另一个在 x=100 处垂直移动的 Object2。
我希望每当 Object1 通过 x=100 并且两个对象之间的距离为 10 时触发事件函数。问题是当事件触发时,距离必须从 d=10 跳到 -1,而我这对我不起作用,因为该功能不连续。
任何人都知道如何指定此功能?
matlab - 我无法解决这个等式,在 Matlab 中使用 ode45
dθ/dτ=-θ-b*θ^4
我需要通过 ode45 求解这个方程 我尝试了以下方法,但我不确定它是否正确
情节(t,a)
matlab - Matlab:其他 odes 正在工作,除了 ode45 我需要 - 为什么?
我有以下脚本:
请考虑上述代码块中的以下行:
如果我将其更改为ode113
等ode23
,则会生成该图形,但是当我将其更改ode45
为时出现错误:
我可以进行哪些更改以使其完美运行?
matlab - 使用 MATLAB 绘制由 ODE 系统定义的函数
我正在尝试用 MATLAB 解决一阶 ODE 系统,
我已经定义了函数:
时间间隔为[0,100]
,初始条件为z0 = [0.01 0.01 0.01 0.01]
。
使用ode45
求解器,我使用了以下命令:
我很容易得到z(1)=x_1
.
但我想绘制函数f(t)=(t+1)*x_1(t)
, t\in [0,100]
,x_1=z(1)
系统的第一个未知数在哪里。我怎么能这样做?
matlab - 在同一输出中绘制三个函数
我已经定义了函数
我已经使用了命令
我只得到了 z(3) 和 z(5) 的绘图,z(1) 根本没有绘图。为了在同一输出中绘制所有三个函数 z(1)、z(3)、z(5),我该怎么做?