matlab 匿名函数参数为匿名函数

2025-01-05 16:30:43
推荐回答(1个)
回答1:

由于使用的匿名函数过多,造成自定义函数命名错误。所以自定义函数的匿名函数只能是一个。根据要求,可以这样来处理,分段赋值变量,组合变量匿名函数:

syms x

a=(1+x)/(x^2);

b=2*(1+x)/(1+2*x);

c=log(1+2*x)/x;

d=log(1+2*x)/(2*x);

e=(1+3*x)/(1+2*x)^2;

fun=@(x)2*pi*(2.818e-13)^2*(eval(a)*(eval(b)-eval(c))+eval(d)-eval(e))

验证:

当x=1时,y=fun(x)=2.8655e-25

整体自定义函数的匿名函数:

>> f=@(x) 2*pi*(2.818e-13)^2*((1+x)/x^2*(2*(1+x)/(1+2*x)-log(1+2*x)/x)+log(1+2*x)/(2*x)-(1+3*x)/(1+2*x)^2);

>> x=1;y=f(x)

y =   2.8655e-25

结果是一样的。