[問題] 用fzero求解已回收

看板MATLAB作者 (Yes)時間16年前 (2009/03/15 14:21), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
程式碼如下: 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
文章代碼(AID): #19l9vRS6 (MATLAB)
文章代碼(AID): #19l9vRS6 (MATLAB)