我是靠谱客的博主 甜甜蜻蜓,最近开发中收集的这篇文章主要介绍随机数、正态分布、高斯分布产生1-N的随机正整数产生1~N的不重复的数正态分布的matlab实现:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

产生1-N的随机正整数

unidrnd(N)

产生1~N的不重复的数

a=randperm(N)

正态分布的matlab实现:

1)使用MatLab画出正态分布的概率密度函数图像。
x=[-10:0.01:10];
y=normpdf(x,0,1);%正态分布函数。
figure;
axes1=axes(‘Pos’,[0.1 0.1 0.85 0.85]);
plot(x,y);
set(axes1,‘YLim’,[-0.01 0.43],‘XLim’,[-3 3]);
图1:

2)验证概率密度函数在区间(-∞,∞)上的积分为1。
这里取参数mu=3,sigma=5(注:下文全用这两个参数)。
y=‘exp(-1/2*((x-3)/5)^2)/(sqrt(2*pi)*5)’;
s=int(y,-inf,inf) %int积分函数(inf代表无穷大)。
输出:s=1

3)验证x=mu时取最大值。
思路:求解函数一阶导数为零的点。

  • 求一阶导数
    y='exp(-1/2*((x-3)/5)^2)/(sqrt(2*pi)5)’;
    d=diff(y);%微分函数。
    sd=simplify(d)
    输出结果:sd = -1/250
    (x-3)exp(-1/50(x-3)2)*2(1/2)/pi^(1/2)

  • 通过图像判断解的位置
    x=[0:0.001:40];
    sd=-1/250.*(x-3).exp(-1/50.(x-3).2).*2.(1/2)./pi.^(1/2);
    axes1=axes(‘Pos’,[0.1 0.1 0.85 0.85]);
    plot(x,sd);
    set(axes1,‘YLim’,[-0.01 0.01],‘XLim’,[0 40]);
    图2:

从图中可以看出在3附近有解。

  • 定义函数并求解
    function y=f(x)
    y=-1/250.*(x-3).exp(-1/50.(x-3).2).*2.(1/2)./pi.^(1/2);

r=fzero(‘f’,3)
输出:r=3

从图上看在x > 20以后,几乎是一条直线,若用20:
r=fzero(‘f’,20)
输出:r=3

这说明是无限趋近于0。

  • 进一步说明该点为最大值点
    该概率密度函数一阶导数为0的解为3,此值正好为mu,再取x=1,x=4与x=3时的函数值比较。

normpdf(1,3,5)
ans = 0.0737

normpdf(4,3,5)
ans = 0.0782

normpdf(3,3,5)
ans = 0.0798

显然在x=3的两边函数值都比x=3小,说明该点为极大值点。根据正态分布函数的图像特点可知该点是最大值点。

4)验证x=mu ± sigma (即8或-2)处曲线有拐点。
思路:求二阶导数为零的点。

  • 先求二阶微分
    y='exp(-1/2*((x-3)/5)^2)/(sqrt(2pi)5)’;
    d=diff(y,2);%微分函数。
    sd=simplify(d)
    输出:sd = 1/6250
    exp(-1/50
    (x-3)2)*2(1/2)*(-16+x2-6*x)/pi(1/2)

  • 通过图像判断解的位置
    x=[-20:0.001:20];
    sd=1./6250.exp(-1/50.(x-3).2).*2.(1/2).*(-16+x.2-6.*x)/pi.(1/2);
    axes1=axes(‘Pos’,[0.1 0.1 0.85 0.85]);
    plot(x,sd);
    set(axes1,‘YLim’,[-0.005 0.005],‘XLim’,[-20 20]);
    图3:
    从上图可以看出,曲线在(-5,0)和(5,10)之间分别都与y=0有交点,因此有两个解。

  • 定义函数并求解
    function y=f(x)
    y=1./6250.exp(-1/50.(x-3).2).*2.(1/2).*(-16+x.2-6.*x)/pi.(1/2);

r=fzero(‘f’,-5)
r = -2

r=fzero(‘f’,5)
r = 8.0000

从而得到了两个拐点x=8和x=-2,也即mu ± sigma。

5)验证曲线以x轴为渐近线渐近线求解:
A 垂直渐近线 x=a是y=f(x)的渐近线<>lim f(x)=∞或lim f(x)=∞
x->a+0 x->a-0
其中a在间断点中找——∞型第二类间断点B 水平渐近线
x→+∞(-∞)时,y=b是y=f(x)的渐近线<
>lim f(x)=b (或lim f(x)=b)
x->+∞ x->-∞

求其一阶倒数在x趋向于无穷大时的极限值b,若存在,即有水平渐近线y=b。

  • 先定义函数:
    function y=f(x)
    syms x; %定义符号变量。
    y=exp(-1/2*((x-3)/5)^2)/(sqrt(2*pi)*5);

  • 求x趋向无穷大时一阶导数的极限
    limit(f,inf)
    ans = 0

6)验证 3 sigma 法则
思路:求解概率密度函数在[mu-3sigma,mu+3sigma]区间上的积分。
y=‘exp(-1/2*((x-3)/5)^2)/(sqrt(2*pi)*5)’;
double(int(y,-12,18))
ans = 0.9973

最后

以上就是甜甜蜻蜓为你收集整理的随机数、正态分布、高斯分布产生1-N的随机正整数产生1~N的不重复的数正态分布的matlab实现:的全部内容,希望文章能够帮你解决随机数、正态分布、高斯分布产生1-N的随机正整数产生1~N的不重复的数正态分布的matlab实现:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部