[心得] syms定義符號後積分錯誤已刪文
需要對一個複雜的函數積分計算p-value,如下圖
https://imgur.com/36989ip.jpg
其中G為卡方分配的cdf,Φ為標準常態分配的pdf
程式碼如下
C=1; n=100; c1=1.15; alpha=0.05;Cp=C+0.12;
syms y;
f=(normpdf(y+3*(Cp-C)*n^0.5,0,1)+normpdf((y-3.*(Cp-C).*n^0.5),0,1)).*chi2cdf(((n-1)*((3*Cp*n^0.5-y).^2)/9*n*c1^2),n-1);
但會跳錯誤訊息
Unable to prove '(5819*(y - 168/5)^2)/4 < 0' literally. Use 'isAlways' to
test the statement mathematically.
另外也有用匿名函數試著寫過
fY=@(y) normpdf(y+3*(Cp-C)*n^0.5,0,1)+normpdf((y-3.*(Cp-C).*n^0.5),0,1);
G=@(y) chi2cdf(((n-1)*((3*Cp*n^0.5-y).^2)/9*n*c1^2),n-1);
GY=@(y) fY(y).*G(y);
pv=integral(GY,0,3*Cp*n^0.5)
但計算出來pv=1很明顯是錯的,不確定問題在哪邊,來請教大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.53.36 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1569308617.A.32D.html
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章