[問題] 用fzero求解已回收
程式碼如下:
function [q]=ratio_c0(c0,cp1,cp2,ca1,ca2,n)
q = quad(@(w) intfco(w,cp1,cp2,ca1,ca2,n),0,c0);
alpha = 1-q;
function F = intfco(w,cp1,cp2,ca1,ca2,n)
Cp=[cp1;cp2];
Ca=[ca1;ca2];
Spk=1/3*norminv(1/2*normcdf(3.*Cp.*Ca) + 1/2*normcdf(3.*Cp.*(2-Ca)));
a=1/sqrt(2)*(3.*Cp.*(2-Ca).*normpdf(3.*Cp.*(2-Ca)) +
3.*Cp.*Ca.*normpdf(3.*Cp.*Ca));
b=normpdf(3.*Cp.*(2-Ca)) - normpdf(3.*Cp.*Ca);
var(:,1)=(a.^2 + b.^2)/36/n./((normpdf(3.*Spk)).^2);
aw=sqrt(1/var(1,1)+w.^2./var(2,1));
bw=Spk(1,1)/var(1,1)+w.*Spk(2,1)/var(2,1);
c=Spk(1,1).^2/var(1,1)+Spk(2,1).^2/var(2,1);
dw=exp((bw.^2-c*aw.^2)/2/aw.^2);
F=bw.*dw./(aw.^3)/sqrt(2*pi*var(1,1)*var(2,1)).*
(2*normcdf(bw./aw)-1)+exp(-c/2)./aw.^2/pi/sqrt(var(1,1)*var(2,1));
現在想要用fzero來求解積分的上界c0
但是方程式F裡面有些是要輸入的變數(cp1,cp2,ca1,ca2,n)
目的是要使 q-0.95=0
看積分上界c0是多少的時候積分值等於0.95
如果cp1,cp2,ca1,ca2,n是固定的話是沒問題
(fzero('ratio_c0',1)這樣)
不曉得這樣大家看不看得懂= =
我是想要再寫一個function來求解c0
但是轉來轉去就亂掉了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.143.78
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章