代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图

导语:

上篇文章我们利用matlab画出了黑体辐射能量密度随频率变化的二维变化图,代码专栏——如何画黑体辐射能量密度随频率的变化图。这个图有一个缺陷,能量密度仅仅随着变量频率改变,而另外一个变量黑体辐射时的温度却是定值,缺少变化。在这篇文章中将继续通过matlab绘出同时随频率和温度变化的三维变化图。

三维变化图

代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图
代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图

函数功能介绍

①meshgrid函数:
功能:为三维绘图产生X、Y数据矩阵
格式:[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x)
[X,Y,Z]=meshgrid(x,y,z)
说明:以[X,Y]=meshgrid(x,y)为例,其中x和y是你分别所给的变量,这个变量可以是多值组成的向量也可以是单值,在没有使用meshgrid函数之前,在计算机中是无法自动将这两个变量关联在一起的,x和y这两个变量是单独的变量。而meshgrid函数所起到的作用则是将x和y关联起来变成二维网格中的数据。

x=[1 2 3]
x =
1 2 3
y=[1 2 3 4 5]
y =
1 2 3 4 5
[X,Y]=meshgrid(x,y)
X =
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5

可以看到使用了meshgrid后X和Y变成了具有同样维数的矩阵形式,例如在X取任意值时都有相应的Y值对应这样在二维网格坐标中都具有相应的点。

②mesh函数:
功能:绘制网格曲线
格式:mesh(X,Y,Z)
说明:mesh函数用于绘制三维图,函数中X和Y分别为经过meshgrid函数产生的二维网格上的点。Z为由自变量X和Y所形成的因变量。

运行代码

clear all
c=3*10^8;%光速
h=6.626*10^-34;%普朗克常数
k=1.38*10^-23;%玻尔兹曼常数
t=50:50:600;%黑体辐射温度变化范围
v=0:1.5*10^12:1.5*10^14;%黑体辐射频率变化范围
[T,V]=meshgrid(t,v);%产生二维网格数据
c1=8*pi*h/c^3;%经验参数
c2=h/k;%经验参数
E1=c1.*V.^3.*exp(-c2.*V./T);%维恩公式
zlim([0,2*10^-27])
mesh(V,T,E1)%三维维恩公式图
hold on
E2=c1.*V.^3./(exp(c2.*V./T)-1);%普朗克公式
zlim([0,2*10^-18])
mesh(V,T,E2)%三维普朗克公式图
hold on
E3=(c1/c2)*T.*V.^2;%瑞利-金斯公式
zlim([0,2*10^-18])
mesh(V,T,E3)%三维瑞利-金斯公式图
hold on
xlabel('黑体辐射频率(v)')
ylabel('黑体辐射平衡时温度(K)')
zlabel('黑体辐射能量密度E(v)')
legend('维恩公式','普朗克公式','瑞利-金斯公式')
title('黑体辐射能量密度E(v)随频率(v)和平衡时温度(K)的三维变化示意图')

结果分析

代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图
代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图
从图上可以看到随着温度的增大,黑体辐射的能量密度的峰值越来越大。

如果觉得好用大家可以关注微信公众号量子屋,我会在上面定期发布一些代码的东西哦。
代码专栏——如何画黑体辐射能量密度随频率和温度的三维变化图

上一篇:IEDA使用 在JSP页面中,有时候会出现不能智能显示方法 IDEA PAGECONTEXT.SETATTRIBUTE


下一篇:vim配置