当前位置: 首页 > ai >正文

matlab薄透镜对物体成像

基于MATLAB的薄透镜对物体成像、薄透镜对高斯光束的作用以及薄透镜的物像距计算的仿真。

1. 薄透镜对物体成像

% 薄透镜对物体成像
function lens_imaging()% 参数设置f = 10; % 透镜焦距s = 20; % 物距s_prime = f * s / (s - f); % 像距magnification = -s_prime / s; % 放大率% 绘制物体和像figure;hold on;plot([-s, -s], [-1, 1], 'b', 'LineWidth', 2); % 物体plot([s_prime, s_prime], [-magnification, magnification], 'r', 'LineWidth', 2); % 像plot([0, 0], [-1, 1], 'k--', 'LineWidth', 1); % 透镜位置plot([0, -s], [0, 0], 'k', 'LineWidth', 1); % 光轴plot([0, s_prime], [0, 0], 'k', 'LineWidth', 1); % 光轴legend('物体', '像', '透镜', '光轴');title('薄透镜对物体成像');xlabel('距离');ylabel('高度');hold off;
end

2. 薄透镜对高斯光束的作用

% 薄透镜对高斯光束的作用
function lens_gaussian_beam()% 参数设置f = 10; % 透镜焦距zR = 2; % 输入光束的瑞利距离s = 15; % 物距s_prime = f * s / (s - f); % 像距zR_prime = zR * (s_prime / s)^2; % 输出光束的瑞利距离% 绘制高斯光束figure;hold on;theta = linspace(0, 2*pi, 100);r = sqrt(zR^2 + (s - f)^2);x = r * cos(theta) + s;y = r * sin(theta);plot(x, y, 'b', 'LineWidth', 2); % 输入光束r_prime = sqrt(zR_prime^2 + (s_prime - f)^2);x_prime = r_prime * cos(theta) + s_prime;y_prime = r_prime * sin(theta);plot(x_prime, y_prime, 'r', 'LineWidth', 2); % 输出光束plot([0, 0], [-5, 5], 'k--', 'LineWidth', 1); % 透镜位置plot([0, s], [0, 0], 'k', 'LineWidth', 1); % 光轴plot([0, s_prime], [0, 0], 'k', 'LineWidth', 1); % 光轴legend('输入光束', '输出光束', '透镜', '光轴');title('薄透镜对高斯光束的作用');xlabel('距离');ylabel('高度');hold off;
end

3. 薄透镜的物像距计算

% 薄透镜的物像距计算
function lens_distance_calculation()% 参数设置f = 10; % 透镜焦距s = 15; % 物距s_prime = f * s / (s - f); % 像距% 输出结果fprintf('物距 s = %.2f\n', s);fprintf('像距 s_prime = %.2f\n', s_prime);
end

主程序

% 主程序
clc;
clear;% 薄透镜对物体成像
lens_imaging();% 薄透镜对高斯光束的作用
lens_gaussian_beam();% 薄透镜的物像距计算
lens_distance_calculation();

参考代码 薄透镜对物体成像 www.youwenfan.com/contentcsf/78344.html

说明

  1. 薄透镜对物体成像:根据薄透镜公式计算像距和放大率,并绘制物体和像的位置。
  2. 薄透镜对高斯光束的作用:根据改进的薄透镜公式计算输出光束的瑞利距离,并绘制输入和输出光束的位置。
  3. 薄透镜的物像距计算:根据薄透镜公式计算物距和像距。
http://www.xdnf.cn/news/19937.html

相关文章:

  • 数据库小册(1)
  • Day35 网络协议与数据封装
  • 开讲了,全栈经验之谈系列:写给进阶中的小伙伴
  • 短剧小程序系统开发:构建影视生态新格局
  • 学习PaddlePaddle--环境配置-PyCharm + Conda​
  • 基于vue的志愿者信息平台设计c38qk(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 结合prompt源码分析NodeRAG的build过程
  • 皮尔逊相关(Pearson)和斯皮尔曼相关(Spearman)显著性检验
  • Coze源码分析-资源库-删除提示词-后端源码
  • 正运动控制卡学习-点动
  • 景区负氧离子气象站:引领绿色旅游,畅吸清新每一刻
  • Vue3 中后台管理系统权限管理实现
  • Spring MVC 扩展机制对比总结:@Configuration + WebMvcConfigurer vs @ControllerAdvice
  • Spring Boot 启动卡死:循环依赖与Bean初始化的深度分析
  • 【问题记录】Anaconda的jupyter NoteBook点击launch的时候,弹出的页面提示ERR_FILE_NOT_FOUND
  • 【Linux我做主】细说进程等待
  • 20.35 ChatGLM3-6B QLoRA实战:4bit量化+低秩适配,显存直降70%!
  • 重温经典之游戏模拟器选型指南
  • java注解、Lambda表达式、Servlet
  • Web安全:你所不知道的HTTP Referer注入攻击
  • 【PZ-AU15P】璞致fpga开发板 Aritx UltraScalePlus PZ-AU15P 核心板与开发板用户手册
  • 新客户 | TDengine 时序数据库赋能开源鸿蒙物联展区实时监控与展示
  • 解决 ES 模块与 CommonJS 模块互操作性的关键开关esModuleInterop
  • AI+ 行动意见解读:音视频直播SDK如何加速行业智能化
  • Excel ——INDEX + MATCH 组合
  • [iOS] 折叠 cell
  • Fiddler 实战案例解析,开发者如何用抓包工具快速解决问题
  • 鸿蒙分布式数据同步失败全解
  • jenkins使用ansible单节点lnmp
  • Nvidia Orin DK 本地 ollama 主流 20GB 级模型 gpt-oss, gemma3, qwen3 部署与测试