Matlab, как решить функцию суммы - PullRequest
1 голос
/ 18 декабря 2010

Мне нужно решить следующую формулировку в Matlab:

formular1

formular2

forlular3

я ищуданное бета-значение представляет собой вектор, полный вейвлет-коэффициентов x = (x_1, .., x_L)!Как решить эту функцию в Matlab?Могу ли я использовать fzero?

edit: на данный момент я попробовал это:

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 Ответ

1 голос
/ 29 марта 2011

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)

Я не знаю, сработает ли это. но это что-то попробовать.

...