我有以下脚本定义一个函数并设置和方程式:
H = @(f) sum(log(f));
f = rand(1, 1);
syms a
H(f)-H(f-a)
我想为H(f)-H(f-a)=0
解决a
。我尝试以下列方式使用fzero,fzero('H(f)-H(f-a)', 0)
,但这并没有给我任何有用的东西。
答案 0 :(得分:0)
对此明确的答案是a = 0。这当然是明显的答案,也许就是为什么你没有得到任何有用的东西",特别是当只考虑f
的一个值时。
但是,当您添加更多值并使用solve
函数时,实际上可以获得有用的信息。
H = @(f) sum(log(f));
f = rand(5, 1);
syms a
temp = H(f)-H(f-a);
out = double(solve(temp == 0,a));
这将输出一个向量,其中包含作为函数解的所有值。请注意,这通常不会产生最佳答案,高阶函数的数值求解相当困难且不可靠。因此,运行可能需要很长时间。