1

i have to solve the following formulation in matlab:

formular1

formular2

forlular3

i am looking for the beta value, given is a vector full of wavelet coefficients x =(x_1,..,x_L)! How to solve this function in matlab? Can i use fzero?

edit: at the moment i tried this:

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)

but still errors..

highBandWidth
  • 16,751
  • 20
  • 84
  • 131
Ben
  • 115
  • 1
  • 2
  • 10
  • well i started with something like this: syms beta x = [-1; 2; 3; 4; 5]; sum1 = symsum(abs(x)^beta * log(abs(x))) but its not working.. i need some hints! – Ben Dec 18 '10 at 18:06
  • Well, without a good initial value or bracketing interval for β, you're sunk. –  Dec 25 '10 at 02:47

1 Answers1

1

fzero takes a function handle, rather than a symbolic expression. Try something like this in a .m file

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

And then,

fzero(@myFun,1)

I don't know whether this will work. but it is something to try out.

highBandWidth
  • 16,751
  • 20
  • 84
  • 131