Problem Dependent parameter passing into slicesample

Is there a way for me to pass a problem dependent parameter into slicesample similar to how it is done for lsqnonlin, i.e.
c=1;
x = lsqnonlin(@(x) myfun(x,c),[1;1]);
function F = myfun(x,c)
F = [ 2*x(1) - exp(c*x(1))
-x(1) - exp(c*x(2))
x(1) - x(2) ];
%hoping to do something like this:
x = slicesample([1;1],N,'pdf',f(x,c),'thin',5,'burnin',1000);
So far it seems like slicesample can only be called with the parameters that it will explore the pdf space with.

回答 (1 件)

Prudhvi Peddagoni
Prudhvi Peddagoni 2021 年 3 月 12 日

0 投票

Hi,
You can pass additional parameters such as c to the slicesample function like this:
x = slicesample([1;1],N,'pdf',@(x) myfun(x,c),'thin',5,'burnin',1000);
The reason it is throwing error is because there are 3 different functions in myfun. In lsqnonlin function, it returns x such that the sum of squares of these multiple input functions is minimum. But in the case of slicesample function, you need to give a single function.
Hope this helps.

カテゴリ

ヘルプ センター および File ExchangeExponents and Logarithms についてさらに検索

タグ

質問済み:

2021 年 3 月 4 日

回答済み:

2021 年 3 月 12 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by