在,matlab中我定义了一个x服从(0,12)的正态分布生成了100个随机数,又用int求出x的一元函数的定积分

为什么我的积分结果中是带x的式子呢,怎么使生成的x的100值带入到积分中,形成数字结果;具体情况如下:
x=randn(1,100)*sqrt(12);
while abs(mean(x))>=0.01 | abs(var(x)-12)>=0.01
x=randn(1,100)*sqrt(12);
end
生成随机数;
int(sym((1.87+x/20)*15.34+x/2+17))
解决定积分

定积分就要有积分下限和积分上限的, 但是你没提呀. 我假设了积分下限是0, 上限是这里得到的x, 

代码如下:

x=randn(1,100)*sqrt(12);
while abs(mean(x))>=0.01|abs(var(x)-12)>=0.01
 x=randn(1,100)*sqrt(12);
end
syms t z
f=int((1.87+t/20)*15.34+t/2+17,0,z)
y=subs(f,z,x);
subplot(211)
hist(x)
subplot(212)
hist(y)

 

追问

是这样的,我先定义一个服从(0,12)正态分布的x,并让它随机生成100个数;然后我求出int(sym((1.87+x/20)*15.34+x/2+17))这个定积分,解是一个带x的式子吧,我只是想让我生成的100x带入到定积分的解中,让定积分的解是数而不是式子

追答

x就是你写的随机数组, y就是由此生成的积分结果呀, 和x是一一对应的. 我都把y的直方图画出来了. x的直方图是上边的那个, y的直方图是下边的. 如果想看x的积分结果, 只需在主窗口输入y就能看了.

追问

哦,所噶,可我运行了你的程序后为什么还是看不了y的值呢,

追答

我用的是2008版的, 求得变上限积分结果是

f = 
228429/5000*z+1267/2000*z^2

你可以这样:

x=randn(1,100)*sqrt(12);
while abs(mean(x))>=0.01|abs(var(x)-12)>=0.01
 x=randn(1,100)*sqrt(12);
end
f=@(z) 228429/5000.*z+1267/2000.*z.^2;
y=f(x);
[x',y']

得到的结果是随机的, 这次运行的前几行结果是:

ans =
   -6.7930 -281.1100
   -2.2870 -101.1683
    6.7791  338.8208
   -4.2643 -183.2967
    1.2239   56.8621
   -1.1580  -52.0545
    1.0536   48.8395
   -3.0874 -135.0109
    1.9510   91.5439
    1.2539   58.2830
    2.2419  105.6061
    0.4019   18.4628
   -4.5562 -195.0042
   -0.3362  -15.2876
    1.7630   82.5154
    2.9634  140.9472

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答