高斯函数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);
相关推荐
my_styles28 分钟前
2025-alibaba-Sentinel组件
java·开发语言·sentinel
禁默44 分钟前
C++之旅-C++11的深度剖析(1)
开发语言·c++
繁依Fanyi1 小时前
巧妙实现右键菜单功能,提升用户操作体验
开发语言·前端·javascript·vue.js·uni-app·harmonyos
程序员黄同学1 小时前
解释 Vue 中的虚拟 DOM,如何通过 Diff 算法最小化真实 DOM 更新次数?
开发语言·前端·javascript
~kiss~2 小时前
Rust~二刷异步逻辑
开发语言·后端·rust
SomeB1oody2 小时前
【Rust中级教程】2.7. API设计原则之灵活性(flexible) Pt.3:借用 vs. 拥有、`Cow`类型、可失败和阻塞的析构函数及解决办法
开发语言·后端·性能优化·rust
m0_748240252 小时前
python轻量级框架-flask
开发语言·python·flask
论迹2 小时前
【JavaEE】-- 多线程(初阶)2
java·开发语言·java-ee
+7202 小时前
如何在java中用httpclient实现rpc post 请求
java·开发语言·rpc
学习两年半的Javaer2 小时前
Rust语言基础知识详解【一】
开发语言·rust