高斯函数Gaussian绘制matlab

高斯

约翰·卡尔·弗里德里希·高斯,(德语:Johann Carl Friedrich Gauß,英语:Gauss,拉丁语:Carolus Fridericus Gauss)1777年4月30日--1855年2月23日,德国著名数学家、物理学家、天文学家、几何学家、大地测量学家, 毕业于Carolinum学院(现布伦瑞克工业大学),后进入哥廷根大学深造 。

高斯被认为是世界上最重要的数学家,享有"数学王子"的美誉。高斯分布、高斯曲率、高斯测度、高斯散度定理、高斯-博内定理等等都是根据他的命名的。高斯是一位著名的数学家、物理学家、天文学家、几何学家,大地测量学家,在数学方面的成就尤为突出。他是德国人,全名约翰·卡尔·弗里德里希·高斯,人们尊称他为"数学王子"。

高斯处事井井有条,即使对一些文件做摘录,也总是十分整洁,有条不紊。他有许多小笔记本,一行一行工整地记着临时想到的事。他记下从哥廷根天文台到各个地方的步行步数。他记下各年发生雷电的日期和次数。他记下汉诺威铁路每月的收入。他记下自己的孩子们的出生日期、接种牛痘的日子、长出前8颗牙齿的日子、开始走路的日子并注明当时孩子多大(按天计算)。可见,高斯在生活、工作中是多么严肃认真、一丝不苟。

高斯函数

高斯函数(Gaussian function)是以高斯的名字命名的函数,广泛用于自然科学、社会科学、数学以及工程学等领域。高斯函数的形式为:
f ( x ) = a e − − ( x − b ) 2 2 c 2 f(x)=a\mathrm{e}^{-\frac{-(x-b)^2}{2c^2}} f(x)=ae−2c2−(x−b)2

其中, a a a、 b b b与 c c c都是实数,且 a > 0 a>0 a>0。

当 a = 1 , b = 1 , c = 1 a=1,b=1,c=1 a=1,b=1,c=1时曲线如下:

图1 高斯函数

当 a = 1 , b = 2 , c = 3 a=1,b=2,c=3 a=1,b=2,c=3时曲线如下:

图2 高斯函数

可以看到 a a a表示曲线的高度, b b b决定了峰值的位置,也就是对称轴的位置, c c c决定了曲线的胖瘦,当 c c c越大的时候,曲线越胖。

归一化高斯函数

对高斯函数进行积分,有
∫ − ∞ + ∞ e − x 2 d x = π \int_{-\infty}^{+\infty}\mathrm{e}^{-x^2}dx=\sqrt{\pi} ∫−∞+∞e−x2dx=π

同理可得:
∫ − ∞ + ∞ a e − − ( x − b ) 2 c 2 d x = a c 2 π \int_{-\infty}^{+\infty}a\mathrm{e}^{-\frac{-(x-b)}{2c^2}}dx=ac\sqrt{2\pi} ∫−∞+∞ae−2c2−(x−b)dx=ac2π

因此,当且仅当 a = 1 c 2 π a=\frac{1}{c\sqrt{2\pi}} a=c2π 1的时候,高斯函数的积分为1,在这种情况下,它是正态分布随机变量的概率密度函数,期望值 μ = b \mu=b μ=b,方差 σ 2 = c 2 \sigma^2=c^2 σ2=c2,此时
g ( x ) = 1 σ 2 π e − − ( x − μ ) 2 σ 2 g(x)=\frac{1}{\sigma\sqrt{2\pi}}\mathrm{e}^{-\frac{-(x-\mu)}{2{\sigma}^2}} g(x)=σ2π 1e−2σ2−(x−μ)

不同方差的标准正态分布曲线为

图3 不同方差的正态分布

matlab函数

编写的函数入下

复制代码
function [y] = Gaussian(x,mu,sigma)
y = 1/(sqrt(2*pi)*sigma)*exp(-(x-mu).^2/(2*sigma^2));
end

绘制过程入下:

复制代码
% 画高斯函数图像
x = -10:0.1:10
y0 = Gaussian(x,0,0.2);
y1 = Gaussian(x,0,0.4);
y2 = Gaussian(x,0,0.8);
y3 = Gaussian(x,0,1);
plot(x,y0,'r');
hold on;
plot(x,y1,'b');
hold on;
plot(x,y2,'c');
hold on;
plot(x,y3,'g');
legend('sigma=0.2','sigma=0.4','sigma=0.8','sigma=1');

当然也可以使用matlab内置的函数绘制标准正态分布:

复制代码
y = normpdf(x,mu,sigma) 返回具有均值 mu 和标准差 sigma 的正态分布的 pdf,在 x 中的值处计算函数值。

代码入下:

复制代码
x = -10:0.1:10;
mu = 1;
sigma = 2;
y = normpdf(x,mu,sigma);
figure;
plot(x,y);
相关推荐
沿着路走到底1 小时前
python 基础
开发语言·python
沐知全栈开发2 小时前
C# 委托(Delegate)
开发语言
任子菲阳2 小时前
学Java第三十四天-----抽象类和抽象方法
java·开发语言
csbysj20203 小时前
如何使用 XML Schema
开发语言
R6bandito_3 小时前
STM32中printf的重定向详解
开发语言·经验分享·stm32·单片机·嵌入式硬件·mcu
earthzhang20213 小时前
【1007】计算(a+b)×c的值
c语言·开发语言·数据结构·算法·青少年编程
杨枝甘露小码3 小时前
Python学习之基础篇
开发语言·python
武文斌774 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
爱吃喵的鲤鱼4 小时前
仿mudou——Connection模块(连接管理)
linux·运维·服务器·开发语言·网络·c++
爱吃小胖橘4 小时前
Unity网络开发--超文本传输协议Http(1)
开发语言·网络·网络协议·http·c#·游戏引擎