0
我有以下腳本,定義一個函數,並建立和公式:解方程數值包含日誌
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)
,但這不會給我帶來任何有用的幫助。
我有以下腳本,定義一個函數,並建立和公式:解方程數值包含日誌
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)
,但這不會給我帶來任何有用的幫助。
那麼明確的答案就是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));
這將輸出一個向量,其中包含您的函數解決方案的所有值。請注意,這可能不會產生一般的最佳答案,但高階函數的數值求解相當困難且不可靠。因此,運行也可能需要很長時間。