Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-05-13
帖子: 3
声望力: 0 ![]() |
![]()
function [tc,dd]=linjiejianxi(r1,a1) % r1拒绝间隙向量,a1接受间隙向量,都为列向量
r1=[2:3:5:3:3:4:3:3:3:5]'; a1=[4:8:7:8:9:8:5:8:9:10]'; r=log(r1); %赋初值 a=log(a1); w=ones(length(r1),1); y=[0.1 2 6 1]; f=[2 2 2]; g=[2 2 2]; x=[1 9 1 1]; while 1 x(1)=1; x(2)=9; while abs(f(3))>10^(-10) %计算均值 for i=1:2 f(i)=(normpdf(r,x(i),y(3))-normpdf(a,x(i),y(3)))./(normcdf(a,x(i),y(3))-normcdf(r,x(i),y(3)))*w; end x(3)=(x(1)*f(2)-x(2)*f(1))/(f(2)-f(1)); f(3)=(normpdf(r,x(3),y(3))-normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w; if f(3)*f(1)>0 f(1)=f(3); x(1)=x(3); else x(2)=x(3); end end x; y(1)=0.1; y(2)=5; while abs(g(3))>10^(-10) %计算方差 for i=1:2 g(i)=((r-x(3)).*normpdf(r,x(3),y(i))-(a-x(3)).*normpdf(a,x(3),y(i)))./(normcdf(a,x(3),y(i))-normcdf(r,x(3),y(i)))*w; end y(3)=(y(1)*g(2)-y(2)*g(1))/(g(2)-g(1)); g(3)=((r-x(3)).*normpdf(r,x(3),y(3))-(a-x(3)).*normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w; if g(3)*g(1)>0 g(1)=g(3); y(1)=y(3); else y(2)=y(3); end end y; if abs(x(4)-x(3))<10^(-5)&abs(y(4)-y(3))<10^(-5) break; end x(4)=x(3); y(4)=y(3); end x; y; tc=exp(x(3)+0.5*y(4)*y(4)); %输出临界间隙均值tc值 dd=(tc*tc*(exp(y(4)*y(4))-1))^(0.5); %输出临界间隙方差 请教哪里有问题啊,很着急,谢谢各位高手啊 |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19 ![]() |
![]()
请把出错信息和你看不懂的地方贴出来,这样笼统的提问别人看着很费劲的。
__________________
看帖回帖,就是对我们最大的支持! |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2010-05-13
帖子: 3
声望力: 0 ![]() |
![]()
function [tc,dd]=linjiejianxi(r1,a1) % r1拒绝间隙向量,a1接受间隙向量,都为列向量
这在运行的时候就出现问题了 |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19 ![]() |
![]()
这一句是定义了一个函数,其中[tc,dd]是输出,r1,a1是输入参数,linjiejianxi是一个函数名,肯定不能直接运行这一句啊
__________________
看帖回帖,就是对我们最大的支持! |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19 ![]() |
![]()
你这个程序问题不少啊
首先r1=[2:3:5:3:3:4:3:3:3:5]'; a1=[4:8:7:8:9:8:5:8:9:10]'; 列向量不是这样表示的啊,把:改成;或空格 其次normpdf(r,x(i),y(3))和normcdf(a,x(i),y(3))的返回值是和r维数相等的向量,那么最后结果不能保存为f(i),而是f{i} 因为你这个程序的计算理论我不懂,所以有些东西也没法给你改,你还是在认真看看吧,把问题逐一的贴出来。
__________________
看帖回帖,就是对我们最大的支持! |
![]() |
![]() |