楼主: fengzifz
3337 1

[问答] matlab编程疑问!关于0.618算法求最短置信区间! [推广有奖]

  • 0关注
  • 1粉丝

硕士生

26%

还不是VIP/贵宾

-

威望
0
论坛币
217 个
通用积分
0
学术水平
1 点
热心指数
3 点
信用等级
0 点
经验
3478 点
帖子
192
精华
0
在线时间
95 小时
注册时间
2010-4-25
最后登录
2017-11-21

楼主
fengzifz 发表于 2011-3-8 17:49:51 |AI写论文
10论坛币
我依照图片里的方法和算法求F分布的最短置信区间。
算法在图片里。

我自己编的matlab程序。
程序1:
function [z1,z2]=gold1(alpha)
e=10^-6;
a=0;
b=alpha;
beta1=a+0.382*(b-a);
beta2=a+0.618*(b-a);
L1=Fx1(1-alpha+beta1)-Fx1(beta1);
L2=Fx1(1-alpha+beta2)-Fx1(beta2);
while 1;
        if L1<L2
            b=beta2;
            beta2=beta1;
            L2=L1;
            beta1=a+0.382*(b-a);
            L1=Fx1(1-alpha+beta1)-Fx1(beta1);
        else
            a=beta1;
            beta1=beta2;
            L1=L2;
            beta2=a+0.618*(b-a);
            L2=Fx1(1-alpha+beta2)-Fx1(beta2);
        end
        if abs(beta2-beta1)<e
            beta=(beta1+beta2)/2;
            break;
        end
end
z1=Fx1(1-alpha+beta);
z2=Fx1(beta);
end

程序2:
function [x]=Fx1(beta)
e=10^-6;
a=0;
b=1000;
c=(a+b)/2;
while 1;
    x0=c;
    F=Fcdf(x0,1,1);
    if F<(1-beta)
        a=c;
        c=(a+b)/2;
    else
        b=c;
        c=(a+b)/2;
    end
    if abs(b-a)<e;
        x=c;
        break;
    end
end
x;
end

我是依照这里的算法编的,而我求的是F分布的最短置信区间。
本人是菜鸟,很多东西都没弄明白,在这里虚心向各位前辈、大侠求解!希望高手帮我修改修改,指点指点!感激不尽!!

最短置信区间问题.png (43.81 KB)

最短置信区间问题.png

黄金分割法.png (58.08 KB)

黄金分割法.png

关键词:MATLAB编程 MATLAB atlab matla 置信区间 MATLAB 疑问 算法 置信区间

沙发
matlab-007 发表于 2016-8-9 22:44:14
可以参考基于MATLAB小样本的最短置信区间http://www.docin.com/p-1267305458.html

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 13:15