1

私はmatlabで次の定式化を解決する必要があります:

式1

フォーミュラー2

forlular3

ウェーブレット係数 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 に答える