首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中的Ode45

MATLAB中的Ode45
EN

Stack Overflow用户
提问于 2017-12-22 16:48:47
回答 1查看 200关注 0票数 1

我对MATLAB和im非常陌生,他们试图使用ode45()函数集成两个函数。我的代码:

代码语言:javascript
复制
[w,x] = ode45( @(w,x) ( TSII - TFII ) * w , [0 2], 0 );

其中TSIITFII是列向量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返回的向量和初始条件向量必须有相同数量的元素。

是否可以将初始条件向量更改为与TSIITFII相同的长度?

或者,我应该使用一个带有ode45()的循环来生成151个值吗?

EN

回答 1

Stack Overflow用户

发布于 2017-12-22 21:35:13

我猜有一点,但试试看:

ode45()希望您的匿名函数@(w,x)x位置插入函数值。如果在编写时TSII和TFII是表格函数值,它将不会返回预期的结果。

您应该使用类似于interp1(TSII,x)的东西,而不是TSII。您的功能应该如下所示:

代码语言:javascript
复制
@(w,x) ( interp1(TSII,x) - interp1(TFII,x) ) .* w

还请注意元素顺向乘法的.*

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47944810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档