首页 文章

MATLAB中的Ode45

提问于
浏览
1

我是MATLAB的新手,我试图使用ode45()函数集成两个函数 . 我的代码:

[w,x] = ode45( @(w,x) ( TSII - TFII ) * w , [0 2], 0 );

其中 TSIITFII 是包含我的两个函数值的列向量1x151 . w 还没有任何 Value ,但我已经尝试使它成为一个充满零长度1x151的列向量,但这并没有解决我的问题 .

我收到以下错误消息:

@(W,X)(TSII-TFII)* W返回长度为151的向量,但初始条件向量的长度为1 .

@(W,X)(TSII-TFII)*W 返回的向量和初始条件向量必须具有相同数量的元素 .

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

或者,我应该使用 ode45() 内部的循环来制作151值吗?

1 回答

  • 0

    我猜了一下,但试一试:

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

    您应该使用 [interp1][1](TSII,x) 而不是 TSII 之类的东西 . 你的功能应该是这样的:

    @(w,x) ( interp1(TSII,x) - interp1(TFII,x) ) .* w
    

    另请注意 .* 用于元素乘法 .

相关问题