评估功能的功能

Evaluating function of functions

我有两个符号函数

syms a(t) b(t) t
a(t) = 5*b(t);
b(t) = exp(t);

如何确定特定 t 的函数 a(t=5) 的值,比方说 t=5:

a(5)

我得到的是

a(5)
ans = 5*b(5)

但我想要实际值 (1.4841e+02)。我试过的是

eval(a(5))
subs(a, b(t), exp(5))

有没有人可以帮忙。谢谢!

编辑:请注意 b(t) 是在 a(t) 之后定义的。这对我很重要。

正如评论中所建议的那样,您的大部分问题都来自定义的顺序。您在定义 b(t) 的外观之前创建了 a(t),但您已经告诉 MATLAB b(t) 将存在。基本上,MATLAB 知道在 a(t) 中有一个叫做 b(t) 的东西,但并不真正知道它是什么(即使你定义了它,你也是在 运行 那行代码之后定义的!)。

syms a(t) b(t) t
a(t) = 5*b(t); % MATLAB does not error because you told it that b(t) is symbolic. It just has no idea what it looks like.
b(t) = exp(t);

只需将第一行更改为:

syms a(t) b(t) t
b(t) = exp(t); % MATLAB here understand that the syntax b(t)=.. is correct, as you defined b(t) as symbolic
a(t) = 5*b(t); % MATLAB here knows what b(t) looks like, not only that it exists

并做

double(a(3))

获取数值结果。