幾里方园 2020-03-12 17:10 采纳率: 0%
浏览 1665

怎样实现对MATLAB代码的改写,用Python代码绘制出黑体辐射光谱的函数图像?

希望能够绘制出如图片所示的效果图片说明

以下是MATLAB的代码:

%温度不同的普朗克黑体单色辐射能力与波长的曲线
clear %清除变量
k=1.38054e-23; %玻尔兹曼常数
h=6.626e-34; %普朗克常数
c=2.997925e8; %光速
sigma=5.6688e-008; %斯特潘常数
b=0.0029; %维恩常数
t=1400:100:2000; %热力学温度向量
n=length(t); %向量长度
lambda=[0:0.01:5]*1e-6; %波长向量
lambda(1)=eps; %给零加一小量使分母不为零
[T,L]=meshgrid(t,lambda); %波长和温度矩阵
M=2*pi*h*c^2./(exp(h*c./(k*T.*L))-1)./L.^5;%单色辐射能力,14.1.2
figure %创建图形窗口
plot(lambda*1e6,M) %画曲线

hl=legend([repmat('\itT\rm=',n,1),num2str(t'),repmat('K',n,1)]);%标记图例
fs=16; %字体大小
set(hl,'fontsize',fs) %设置图例大小
grid on %加网格
title('普朗克黑体单色辐射能力与波长的关系','fontsize',fs)%标题
xlabel('波长\it\lambda\rm/\mum','fontsize',fs)%横坐标
yl='单色辐射能力\itM\rm(\it\lambda\rm,\itT\rm)/(W\cdotm^-^3)';%纵坐标字符串
ylabel(yl,'fontsize',fs) %纵坐标
txt=['\itb\rm=' num2str(b) 'm\cdotK']; %维恩常数文本
txt=[txt ',\it\sigma\rm=' num2str(sigma) 'W/(m^2\cdotK^4)'];%斯特潘常数文本
text(0,max(M(:))/10,txt,'fontsize',fs) %显示常数
hold on %保持图像
[mx,ix]=max(M); %找最大值和下标
stem(lambda(ix)*1e6,mx,'--','filled') %画直杆图
text(lambda(ix)*1e6,mx,[num2str(lambda(ix)'*1e6)],'fontsize',fs)%显示峰值波长
t=1300:2020; %较密的温度向量
lambda=b./t; %波长向量
m=2*pi*h*c^2./(exp(h*c./(k*t.*lambda))-1)./lambda.^5;%单色辐射能力向量
plot(lambda*1e6,m) %画峰值曲线

  • 写回答

2条回答 默认 最新

  • 必问官方博客 2020-03-12 17:13
    关注

    亲,您好,我是CSDN必问的Q妹,你这个问题在必问区提问可能会更快速解决哦,邀您体验:https://biwen.csdn.net/

    评论

报告相同问题?

悬赏问题

  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接