matlab如何解决求和函数

时间:2010-12-18 13:09:16

标签: math matlab sum equation-solving

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

formular1

formular2

forlular3

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

但仍然是错误..

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)

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