Re: [問題] gamma問題已回收
先畫圖看解的範圍
clear;clc;format long
f=inline('gammainc(5,b/2)/gamma(5)-0.001');
b=linspace(20,30);
fb=f(b);
plot(b,fb)
可知解在20和30間
以下用二分法求解
原理為勘根定理
maxit=100;
es=1e-16;
xl=20;xu=30;
fl=f(xl);fu=(xu);
iter=0;
while(1)
iter=iter+1;
xc=(xl+xu)/2;
fc=f(xc);
if fc*fl<0
xu=xc;
else
xl=xc;
end
if iter==maxit|abs(fc)<=es
break
end
end
b=xc
a=gammainc(5,b/2)/gamma(5)
執行結果
b =
20.69105083638817
a =
0.00100000000000
※ 引述《zerobit (zerobit)》之銘言:
: 因為要反算gamma的數值 可是matlab裡面好像沒有像qfunc 有qfuncinv可以用
: 所以不知道怎麼解決,請問有人有遇過這個問題嗎?!
: 已知 a=0.001
: a=gammainc(5,b/2)/gamma(5)
: 要反算那個 b值 一直推不出來該怎麼算
: gamma積分好像也不能算吧@@"
: 有人能幫忙解答嗎? 謝謝
: 修正題目 a=0.001 a=gammainc(5,b/2)/gamma(5);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.125.231
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章