高斯函数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);
相关推荐
代码中介商3 分钟前
C语言预处理指令深度解析:从宏定义到条件编译
c语言·开发语言
hhb_61817 分钟前
Groovy语法进阶与工程实践指南
开发语言·python
沐知全栈开发33 分钟前
R CSV 文件处理指南
开发语言
fengfuyao98540 分钟前
MATLAB实现自适应动态规划(ADP)方法
matlab·动态规划·代理模式
秋91 小时前
OceanBase与GreatSQL在Java应用中的性能调优方法有哪些?
java·开发语言·oceanbase
澈2071 小时前
C++多态编程:从原理到实战
开发语言·c++
今天又在写代码1 小时前
并发问题解决
java·开发语言·数据库
聆风吟º1 小时前
【C标准库】深入理解C语言strcat函数:字符串拼接的利器
c语言·开发语言·strcat·库函数
带娃的IT创业者1 小时前
深度解析:从零构建高性能 LLM API 中转网关与成本优化实战
开发语言·gpt·llm·php·高性能·成本优化·api网关