MATLAB 中的 Ode45
Posted
技术标签:
【中文标题】MATLAB 中的 Ode45【英文标题】:Ode45 in MATLAB 【发布时间】:2017-12-22 16:48:47 【问题描述】:我对 MATLAB 很陌生,我正在尝试使用 ode45()
函数集成两个函数。我的代码:
[w,x] = ode45( @(w,x) ( TSII - TFII ) * w , [0 2], 0 );
TSII
和 TFII
是列向量 1x151,其中包含我的两个函数的值。 w
还没有任何价值,但我尝试将其设为长度为 1x151 的全零列向量,但这并没有解决我的问题。
我收到以下错误消息:
@(W,X)(TSII-TFII)*W returns a vector of length 151, but the length of initial conditions vector is 1
.
@(W,X)(TSII-TFII)*W
返回的向量和初始条件向量的元素个数必须相同。
是否可以将初始条件向量更改为与TSII
和TFII
相同的长度?
或者,我应该使用带有ode45()
的循环来生成 151 个值吗?
【问题讨论】:
【参考方案1】:我猜了一下,但试试看:
ode45()
希望您的匿名函数 @(w,x)
在位置 x
处插入函数值。如果 TSII 和 TFII 是你写的表格函数值,它不会返回预期的结果。
您应该使用类似interp1(TSII,x)
而不是TSII
。你的函数应该是这样的:
@(w,x) ( interp1(TSII,x) - interp1(TFII,x) ) .* w
另请注意 .*
用于元素智能乘法。
【讨论】:
以上是关于MATLAB 中的 Ode45的主要内容,如果未能解决你的问题,请参考以下文章