求教一道MATLAB的编程,很着急!!

来源:百度知道 编辑:UC知道 时间:2024/07/03 08:19:14
已知:A=100, k=117, E0 =1
程序:用公式En=A*En-1/(n+A*En-1),求得Ek
用公式U=(1-Ek)*A/k,求得U
怎样在MATLAB里编程?
(注:n-1是小角标)

补充:1,若我不断改变A,k的取值,怎么在MATLAB里画出图形呢?
2.若每取一次A,k的值,求出一次置信区间,能否将置信区间也表示在图中?求教具体的程序,多谢啦!!

单个值可以这样
A=100;
k=117;
E0=1;
E=zeros(1,length(k));
E(1)=A*E0/(1+A*E0);
for n=2:k
E(n)=A*E(n-1)/(n+A*E(n-1));
end
U=(1-E(k))*A/k

多个值,可以这样:
%%中间可能有一些计算冗余,不管了。哈哈。
>> A=80:120;
>> k=80:120;
>> E0=1;
>> [AA,kk]=meshgrid(A,k);
U=zeros(size(AA));

for AAA=1:length(A)
for kkk=1:length(k)
E=E0;
for i=1:k
E=AAA*E/(i+AAA*E);
end
U(kkk,AAA)=(1-E)*AAA/kkk;
end
end

surf(AA,kk,U)
shading interp
xlabel('A');
ylabel('k');
zlabel('U');

clear
A=1:100;
k=117;
E(1,:)=A./(1+A);
for n=2:k
E(n,:)=A.*E(n-1,:)./(n+A.*E(n-1,:));
end
N=repmat(1:k,length(A),1)';
U=repmat(A,k,1).*(1-E)./N;
plot(N,U)

画出100条曲线,对应A=1:100
横坐标为k=1:117
纵坐标为U