maximize function in multiple variables symprod
1 次查看(过去 30 天)
显示 更早的评论
I have 2 functions PL and PR with µ and sigma as unknown variables and ti and tj are known. PL and PR are given by:
PR=[exp(exp(-(log(t1)-µ)/sigma))]*[exp(exp(-(log(t2)-µ)/sigma))]*[exp(exp(-(log(t3)-µ)/sigma))]*...*[exp(exp(-(log(ti)-µ)/sigma))]
PL=[1-(exp(exp(-(log(t1)-µ)/sigma)))]*[1-(exp(exp(-(log(t2)-µ)/sigma)))]*[1-(exp(exp(-(log(t3)-µ)/sigma)))]*...*[1-(exp(exp(-(log(tj)-µ)/sigma)))]
Thus, PL and PR are both the product of a number of terms.
Now I need to maximize a function L which is the product of the 2 functions PL and PR. In other words, L=PL*PR should be maximized for a certain µ and sigma. To make it clear, I attached the formulas as a figure.
I known I can use fminsearch or fminunc to search for the maximum of this function by evaluating it in µ and sigma. The only thing is that I need a for loop to calculate the product of all the individuals terms of PR and another for loop for the product of the terms of PL, as symprod is not working. The matlab codes for this are:
PL=1;
for j=1:n
PL = PL*(1-exp(-exp((log(tno(j,1)-µ)/sigma))));
end
PR=1;
for i=1:n
PR = PR*(exp(-exp((log(tyes(i,1)-µ)/sigma))));
end
Does anyone know how to evaluate the function L=PL*PR in µ and sigma to determine its maximum?
Thank you!
1 个评论
Walter Roberson
2016-12-28
Code simplification:
PL = prod( 1 - exp(-exp((log(tno(1:n,1)-mu)/sigma))) );
PR = prod( exp(-exp((log(tyes(1:n,1)-mu)/sigma))) );
and in the special case where tno and tyes are vectors of length n,
PL = prod( 1 - exp(-exp((log(tno-mu)/sigma))) );
PR = prod( exp(-exp((log(tyes-mu)/sigma))) );
回答(1 个)
Walter Roberson
2016-12-29
Unless there are constraints, then the maximum is indefinitely large at mu arbitrarily close to one of the tno values.
Sort the tno values by value.
If the number of tno values is odd, then the maxima occurs at arbitrarily small values greater than the 2nd, 4th, 6th, etc values.
If the number of tno values is even, then I suspect the maxima occurs at arbitrarily small values less than the 1st, 3rd, 5th, etc values, but I have not proven this.
This maxima can be shown when sigma = -1.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!