评估函数的函数

时间:2017-06-14 09:47:54

标签: matlab symbolic-math

我有两个符号功能

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)是在(t)之后定义的。这对我很重要。

1 个答案:

答案 0 :(得分:1)

正如评论中所建议的那样,您的大部分问题都来自您的定义顺序。您在定义a(t)的外观之前创建b(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))

获取数字结果。