简体   繁体   English

Matlab如何求和函数

[英]matlab how to solve sum function

i have to solve the following formulation in matlab: 我必须在matlab中解决以下公式:

公式1

公式2

forlular3

i am looking for the beta value, given is a vector full of wavelet coefficients x =(x_1,..,x_L)! 我正在寻找beta值,给定的是一个充满小波系数x =(x_1,..,x_L)的向量! How to solve this function in matlab? 如何在Matlab中解决此功能? Can i use fzero? 我可以使用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.. 但是还是错误..

fzero takes a function handle, rather than a symbolic expression. fzero使用函数句柄,而不是符号表达式。 Try something like this in a .m file 在.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

And then, 接着,

fzero(@myFun,1)

I don't know whether this will work. 我不知道这是否行得通。 but it is something to try out. 但是可以尝试一下。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM