我必须在matlab中解决以下公式:
我正在寻找beta值,给出的是一个充满小波系数x =(x_1,..,x_L)的向量!如何在matlab中解决这个问题?我可以使用fzero吗?
编辑:此刻我尝试了这个:
syms beta
x = [-1; 2; 3; 4; 5]
exp1 = sum((abs(x).^beta).* log(x)) /sum(abs(x).^beta)
exp2 = log(beta/size(x)*sum(abs(x).^beta))/beta
exp3 = (exp(-t)*t^((1/beta)-1))/int(exp(-t)*t^((1/beta)-1),0,inf)
fzero(exp1-exp2-exp3-1,1)
但仍然是错误..
答案 0 :(得分:1)
fzero
采用函数句柄,而不是符号表达式。在.m文件中尝试类似的东西
function a = myFun(beta)
exp1 = sum((abs(x).^beta).* log(x)) /sum(abs(x).^beta)
exp2 = log(beta/size(x)*sum(abs(x).^beta))/beta
exp3 = (exp(-t)*t^((1/beta)-1))/int(exp(-t)*t^((1/beta)-1),0,inf)
a = exp1-exp2-exp3-1
然后,
fzero(@myFun,1)
我不知道这是否有效。但这是值得尝试的。