1

我必须在matlab中解决以下公式:

公式1

公式2

公式3

我正在寻找 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)

但仍然错误..

4

1 回答 1

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)

我不知道这是否会奏效。但这是值得尝试的。

于 2011-03-29T19:52:52.367 回答