Matlab生成随机数的问题(急)

现需要生成一个5*10的矩阵,令x=(1:1:5),也就是12345该矩阵满足如下正态分布:当且仅当x取值x1时,Y(x1)=a+bx1+ex1,ex1=(d0+dx1)... 现需要生成一个5*10的矩阵,令x=(1:1:5),也就是1 2 3 4 5 该矩阵满足如下正态分布:
当且仅当x取值x1时,Y(x1)=a+bx1+ex1,ex1=(d0+dx1)^2,
当x取x2~x5时,Y(x2)-Y(x1)=b*(x2-x1)+2*d0*d*(x2-x1)+(d^2)*[x2^2-x1^2],(x=x3时就是Y(x3)-Y(x2),同理Y(x4)-Y(x3),将式中相应位置的x替换)

其中a=5,b=2,d0=1,d=2,要生成矩阵Y,如何在matlab中通过编程实现这个问题?

我自己在编程过程中虽然可以产生随机数,但是会莫名其妙的出现各种不合理的数据。望高手帮助解答
这是我的自己写的代码,也可以运行,出现的问题是可以得到看上去正常的结果,但是如果循环千次产生1000个这种矩阵,那里面会出现某一行都十分异常的结果:a=5;b=2;d0=1;d=2; % 常数定义tempx=(1:1:5)';tempY=zeros(5,10);%矩阵Y第一行元素for j=1:10tempY(1,j)=a+b*tempx(1)+normrnd(0,d0+d*tempx(1));end%2~5for i=2:5sigma=2*d0*d*(tempx(i)-tempx(i-1))+(d^2)*[(tempx(i))^2-(tempx(i-1))^2];ex=normrnd(0,sqrt(sigma));for j=1:10tempY(i,j)=b*(tempx(i)-tempx(i-1))+ex+tempY(i-1,j);endend
二到四行用的是这个公式

x*是大一点的x,x是小一点的,比如第二行是Y(x2)-Y(x1)
展开
 我来答
我行我素850915
2013-06-10 · TA获得超过8246个赞
知道大有可为答主
回答量:5788
采纳率:77%
帮助的人:2152万
展开全部
clc
clear
a=5;b=2;d0=1;d=2;
x=1:5;
for i=1:10
Y(i,1)=a+b*normrnd(0,sqrt(5))+(d0+d*normrnd(0,sqrt(5)))^2;
for j=2:5
Y(i,j)=Y(i,j-1)+b*(x(j)-x(j-1))+2*d0*d*(x(j)-x(j-1))+d^2*(x(j)^2-x(j-1)^2);
end
end
Y
plot(Y)
按上面语句试试
追问
需要的是五行十列的矩阵,这个产生的是十行五列的吧,而且注意是第一行用一个公式,二到四行用另一个,第二到四行是Y大-Y小服从分布,均值是b*(x大-x小),方差是2*d0*d.....这一串,normrnd里的两个参数分别是均值和标准差吧
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式