评估用subs象征性定义的函数

时间:2017-05-12 14:28:12

标签: matlab

eta0=-0.1806 - 0.1043i; 

syms lu
syms n

Gi(lu) = -(airy(2,lu)*int(airy(n),100,lu)-airy(lu)*int(airy(2,n),eta0,lu));

我无法评估像这样定义的函数,例如Gi(2)。如何才能做到这一点?我尝试了subs(Gi,lu,2)eval(subs(Gi,lu,2)),但它们不起作用

1 个答案:

答案 0 :(得分:0)

不是乱用符号工具箱,而是要评估函数本身,可以使用anonymous function

eta0=-0.1806 - 0.1043i; 

Gi = @(lu) -( airy(2,lu)*integral(@airy,100,lu)- ....
    airy(lu)*integral(@(x) airy(2,x),eta0,lu) );

符号函数采用符号数字,匿名函数采用数字编号。也许这是执行简单功能的更简单方法。

>> Gi(2)

ans =

   0.1727 + 0.0019i