Re: [問題] 極值問題已回收
※ 引述《buttermilk (脫脂牛奶)》之銘言:
: 我是要算
: 0.5
: 16∫ x^a (1-x)^(a-1) dx
: B(2a-1,2a-1) 0
: ——————— - ———————————— 在 (0.5,3) 上的最小值
: [B(a,a)]^2 B(a,a)
: 我的程式是:
: p=@(a) beta(2*a-1,2*a-1)/beta(a,a)^2;
: s=@(x,a) x^a*(1-x)^(a-1);
: q=@(a) quad(s,0,0.5)/beta(a,a);
: fminbnd(p-16*q,0.5,3)
: 結果這樣算行不通
: 我猜是s和q出了問題
: quad(s,0,0.5)是把 s=@(x,a) x^a*(1-x)^(a-1) 對x在(0.0.5)上積分
: 我的意思是 quad(s,0,0.5) 是把 s=@(x,a) x^a*(1-x)^(a-1) 對x在(0.0.5)上積分
: 因此quad(s,0,0.5)只是a的函數而已
: 但是這樣表示法又似乎不對
: 請高手們解說一下
你可以在 help 裡仔細的看一下 function_handle @ 的說明
你的程是不能跑得原因除了 @ 的使用方式之外
quad 這個function 的使用方式也會出現一點問題
下面兩個方法給你參考一下
ex1
p='beta(2*a-1, 2*a-1)./beta(a,a).^2';
s='@(x)x.^a.*(1-x).^(a-1)';
q=['quad(' s ', 0, 0.5)./ beta(a, a)'];
[a,fval] = fminbnd(@(a)eval(p)-16*eval(q), 0.5, 3)
ex2
funxtion [x, fval] = Main
[a,fval] = fminbnd(@(a)objfun(a), 0.5, 3)
function f = objfun( a )
p= beta(2*a-1,2*a-1)./beta(a,a)^2;
q= quad(@(x)x.^a.*(1-x).^(a-1), 0, 0.5)./beta(a,a);
f = p-16*q;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.72.188
※ 編輯: hilosi 來自: 140.123.122.179 (10/24 12:12)
推
10/24 22:50, , 1F
10/24 22:50, 1F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章