坐标系里的光学魔法:用一次函数重新证明凸透镜成像公式
坐标系里的光学魔法用一次函数重新证明凸透镜成像公式很多同学在物理课上第一次接触凸透镜成像公式1/u 1/v 1/f时可能都经历过一个阶段通过实验数据记住了它但心里总有个问号——这个简洁的等式背后究竟藏着怎样一种必然的数学关系教科书上经典的几何相似三角形证明固然严谨但它更像是在二维平面内完成的一场“空间魔术”对于已经熟悉坐标系和函数图像的高中生或大学低年级学生来说我们能否换一个更“代数化”、更“解析”的视角来审视这个问题今天我们就来玩一场跨界游戏把物理实验室里的凸透镜和光屏搬到数学的平面直角坐标系里。你会发现当物点、像点、光心、焦点这些光学元素被赋予坐标当光线被抽象成一次函数的图像那个著名的成像公式会以一种意想不到的、充满代数美感的方式从两条直线的交点中自然“生长”出来。这不仅仅是另一种证明方法更是一次思维体操让你亲身体验数学工具如何为物理规律提供坚实而优雅的支撑。1. 搭建舞台从物理光路到坐标系模型在开始我们的“魔法”之前首先要完成一次关键的思维转换将物理世界的光学系统精确地映射到数学的坐标系中。这一步的设定决定了整个证明过程的清晰度和严谨性。1.1 建立坐标关联我们选择将凸透镜的主光轴与平面直角坐标系的x 轴完全重合。这是一个非常自然的设定因为主光轴本身就是一条直线而x轴是描述直线运动或位置变化最常用的基准。接着我们将凸透镜的理想折射面通常为过光心且垂直于主光轴的平面在薄透镜近似下与y 轴关联。最后将凸透镜的光心O点放置在坐标原点(0, 0)上。经过这样的设定整个光学系统就被“锚定”在了坐标系里x 坐标直接表示沿主光轴方向的距离。原点O(0,0)既是坐标原点也是透镜的光心。焦点F的位置是确定的。对于凸透镜物方焦点F1在左侧若规定光从左向右传播像方焦点F2在右侧。我们通常取像方焦点F其坐标为(f, 0)其中f为焦距是一个正数。注意这里我们采用了笛卡尔坐标系的常规方向。在实际画图时为了更符合从左向右的光线传播习惯也可以将x轴正方向设为向右。本文的推导在代数上是等价的。1.2 关键点的坐标化现在我们来为一个具体的成像过程赋予坐标。假设一个高度为h的物体AB垂直立于主光轴上其物点A我们通常取物体的顶端或一个特定点来代表位于光心左侧。根据符号约定物距u取正值所以A点的x坐标为-u。设其高度为cc可为正或负代表物体向上或向下为了一般性我们设其为正那么A点的坐标就是A(-u, c)。根据成像原理从A点发出的、平行于主光轴的光线经过透镜后折射并通过像方焦点F从A点发出的、通过光心O的光线方向不变。这两条光线的反向延长线对于实像或延长线对于虚像的交点就是像点A’。设像距为v实像时v为正像高为d倒立实像时d为负那么像点A’的坐标就是A(v, -d)。这里-d的负号清晰地表示了倒立。此外我们还需要一个辅助点C。在几何证明中我们常利用从物体顶端发出的、平行于主光轴的光线。这条光线在未折射前可以看作是从A点发出的一条水平线它与y轴过光心的垂面的交点我们记为C点。显然C点的x坐标为0y坐标与A点相同为c即C(0, c)。至此我们完成了从物理图景到数学模型的搭建A(-u, c) 物体顶端C(0, c) 辅助点平行光线与光轴垂直面的交点O(0, 0) 光心坐标原点F(f, 0) 像方焦点A(v, -d) 像的顶端2. 光线即函数将光路转化为直线方程物理中的光线在均匀介质中是直线传播。在我们的坐标系模型里每一条特定的光线都对应一条具有特定解析式的直线。接下来的任务就是找出描述关键光线的函数表达式。2.1 两条关键光线及其函数身份在薄透镜成像中有两条光线路径是确定且易于追踪的通过光心的光线从物点A(-u, c)出发经过光心O(0,0)的光线。这条光线方向不变其反向延长线经过像点A‘(v, -d)。在坐标系中连接A和A’的直线我们记为l₁。平行于主光轴的光线从物点A(-u, c)出发平行于x轴主光轴的光线。这条光线先到达C(0, c)然后经过凸透镜折射必然通过像方焦点F(f, 0)。折射后的光线其反向延长线也经过像点A‘(v, -d)。在坐标系中连接C和A’的直线我们记为l₂。仔细观察直线l₁它是一条经过原点O(0,0)的直线。因为O点光心也在这条光线的实际路径上。根据函数知识经过原点的直线其解析式是正比例函数形式为y k₁x。再看直线l₂它连接了C(0, c)和A‘(v, -d)两点。由于C点的x坐标为0这意味着直线l₂在y轴上的截距就是c。因此l₂的解析式是一次函数形式为y k₂x b且我们已经知道b c。2.2 求解函数解析式现在我们利用已知点的坐标来求出斜率k₁和k₂。对于直线l₁(y k₁x)它经过点A(-u, c)。将坐标代入c k₁ * (-u)解得k₁ -c / u对于直线l₂(y k₂x c)它经过点F(f, 0)。注意这里用的是折射后实际通过焦点F的光线路径。虽然我们的直线l₂定义是CA‘但根据光路可逆和成像原理从C点发出的折射光线必然经过F点。也就是说点F(f,0)也在直线l₂上。将F点坐标代入0 k₂ * f c解得k₂ -c / f于是我们得到了两条光线直线的精确数学描述光线 l₁ (过光心):y (-c/u) * x光线 l₂ (平行入射折射后过焦点):y (-c/f) * x c这两个方程不仅仅代表了直线它们分别编码了一条特定的光学规则。斜率-c/u和-c/f中既包含了物体信息(c,u)也包含了透镜的属性(f)。3. 交汇的奇迹从方程组中推导成像公式成像的本质就是不同光线汇聚于同一点。在我们的数学模型里这表现为两条直线相交于像点A‘。这个交点同时满足两条直线的方程。3.1 建立并求解交点方程组既然像点A‘(v, -d)是直线l₁和l₂的交点那么它的坐标(x, y)必须同时满足两个方程方程组 I: y (-c/u) * x ... (1) y (-c/f) * x c ... (2)我们知道这个交点的具体坐标是(v, -d)即x v,y -d。将其代入方程组方程组 II: -d (-c/u) * v ... (3) -d (-c/f) * v c ... (4)现在我们手上有两个包含u,v,f,c,d的等式。我们的目标是消去描述物体和像大小的c和d找到只与位置u,v,f相关的公式。由方程(3)可得-d - (c v)/ud (c v)/u。由方程(4)可得-d - (c v)/f c。由于两个等式都等于-d因此它们彼此相等- (c v)/u - (c v)/f c3.2 代数变形与公式浮现接下来的就是纯粹的代数运算目标是将上式整理成关于u,v,f的对称形式。两边同时乘以-1(c v)/u (c v)/f - c两边同时除以c(假设物体高度c不为零)v/u v/f - 1两边同时加上1v/u 1 v/f两边同时除以v(假设像距v不为零)1/u 1/v 1/f看凸透镜成像的高斯公式1/u 1/v 1/f就这样从一次函数方程组的解中浮现了出来。我们可以用一个简单的表格回顾一下这个推导过程中的核心等式转换步骤等式说明交点条件- (c v)/u - (c v)/f c两条光线方程在像点取值相等化简1(c v)/u (c v)/f - c两边同乘 -1化简2v/u v/f - 1两边同除以 c化简3v/u 1 v/f两边同加 1最终公式1/u 1/v 1/f两边同除以 v这个过程干净利落没有依赖复杂的几何相似仅仅依靠坐标系设定、直线方程和代数运算就抵达了终点。4. 超越证明模型拓展与思维延伸我们不仅完成了一个证明更构建了一个强大的分析模型。这个“坐标系-函数”模型可以进一步延伸帮助我们更深刻地理解成像规律。4.1 放大率的新视角在传统的几何证明中放大率m h‘/h |v/u|是通过相似三角形的边长比得到的。在我们的函数模型中它可以有更直接的解读。由我们之前得到的d (c v)/u 以及c是物高d是像高的绝对值考虑方向后像高为-d所以像高与物高的比值为|像高/物高| |d/c| |(c v)/(u c)| |v/u|这直接从交点坐标(v, -d)和物点坐标(-u, c)的关系中得出。更重要的是直线l₁的斜率k₁ -c/u其绝对值|k₁| |c/u|恰好是放大率的倒数在数值上。斜率在这里获得了物理意义它反映了物距对成像大小的“压缩”或“拉伸”程度。4.2 虚拟与实像的坐标统一我们的推导过程似乎默认了v 0,d 0实像倒立。但这个模型同样完美适用于虚像情况。虚像当物体位于焦点以内 (u f) 时成放大正立的虚像。此时像距v为负值表示像与物在同侧像高d为正值表示正立。在坐标系中A(v, -d)的v为负-d也为负因为d为正所以点A位于第二象限假设x轴向右为正。关键的是我们推导出的两条直线方程y (-c/u)x和y (-c/f)x c依然成立。只是此时求出的交点A的x坐标v自然为负。将v 0代入最终公式1/u 1/v 1/f公式本身依然成立因为它是一个代数关系自动处理了符号约定。这体现了函数模型的普适性。我们无需为实像、虚像准备两套不同的几何图形一套代数方程和符号规则就涵盖了所有情况。4.3 从特殊到一般为什么是“一次”函数有同学可能会问为什么偏偏是一次函数这源于我们模型的两个基本假设薄透镜近似将透镜看作一个没有厚度的平面这使得所有折射行为被简化为在单一平面上发生。近轴光线近似只考虑与主光轴夹角很小的光线。在这个条件下角度正弦值近似等于角度本身弧度制使得折射定律n₁ sinθ₁ n₂ sinθ₂简化为线性关系n₁ θ₁ ≈ n₂ θ₂。正是“近轴光线”这个条件保证了光线角度与高度之间呈线性关系从而在坐标系中表现为一次函数直线。如果考虑大角度光线像差成像关系将变得非线性对应的“光线”在坐标系中可能就是曲线了成像公式也不再是简单的高斯公式。我们的函数法证明恰恰直观地揭示了高斯公式成立的那个“线性”适用范围。5. 实战演练用Python验证与可视化理论很美但亲手实现一遍会让理解更加透彻。我们可以用几行简单的Python代码将上述证明过程动态地演示出来。import numpy as np import matplotlib.pyplot as plt def verify_lens_formula(u, f): 给定物距u和焦距f利用成像公式计算像距v 并用函数交点法验证。 # 1. 根据公式计算像距v v 1 / (1/f - 1/u) # 由 1/u 1/v 1/f 推导出 print(f给定: u {u:.2f}, f {f:.2f}) print(f计算得: v {v:.2f}) # 2. 设定一个任意的物高c例如 2 c 2.0 # 计算理论像高 d (根据放大率公式d - (v/u) * c负号表示倒立) d_theory - (v / u) * c # 3. 定义两条光线函数 # 光线 l1: y k1 * x, 其中 k1 -c/u k1 -c / u # 光线 l2: y k2 * x c, 其中 k2 -c/f k2 -c / f # 4. 求解两条直线的交点解方程组 # y k1*x # y k2*x c # k1*x k2*x c (k1 - k2)*x c x c / (k1 - k2) x_intersect c / (k1 - k2) y_intersect k1 * x_intersect print(f两条直线交点坐标: A({x_intersect:.2f}, {y_intersect:.2f})) print(f理论像点坐标应为: A({v:.2f}, {d_theory:.2f})) # 5. 验证是否匹配 if np.isclose(x_intersect, v) and np.isclose(y_intersect, d_theory): print(验证成功函数交点与成像公式计算结果一致。) else: print(验证失败) # 6. 可视化 fig, ax plt.subplots(figsize(10, 6)) x_vals np.linspace(min(-u-2, -2), max(v2, f2), 400) # 绘制光线 l1 y_l1 k1 * x_vals ax.plot(x_vals, y_l1, b-, labelf光线 l1: y {k1:.2f}x, linewidth2) # 绘制光线 l2 y_l2 k2 * x_vals c ax.plot(x_vals, y_l2, r-, labelf光线 l2: y {k2:.2f}x {c:.2f}, linewidth2) # 标记关键点 ax.scatter([-u, 0, f, v], [c, c, 0, y_intersect], color[green, orange, purple, red], s100, zorder5) ax.text(-u, c, A(物), verticalalignmentbottom) ax.text(0, c, C, verticalalignmentbottom) ax.text(f, 0, F(焦点), verticalalignmenttop) ax.text(v, y_intersect, A(像), verticalalignmenttop if y_intersect 0 else bottom) # 绘制透镜位置y轴 ax.axvline(x0, colorgray, linestyle--, alpha0.5, label透镜(光心O)) ax.axhline(y0, colorblack, linestyle-, alpha0.3, label主光轴(x轴)) ax.set_xlabel(x (距离)) ax.set_ylabel(y (高度)) ax.set_title(f凸透镜成像函数法验证 (u{u}, f{f}, v{v:.2f})) ax.legend() ax.grid(True, alpha0.3) ax.set_aspect(equal, adjustablebox) plt.show() # 示例物距 u8焦距 f4应成实像 verify_lens_formula(u8.0, f4.0)运行这段代码你会看到程序首先通过成像公式算出像距v然后根据我们推导出的函数斜率构造两条直线并计算它们的交点。最后它将交点坐标与根据公式和放大率算出的像点坐标进行比对并绘制出完整的光路图。你可以尝试修改u和f的值例如u3.0, f4.0会得到虚像情况观察交点坐标x_intersect如何自动变为负数以及图像如何变化。这种将物理问题转化为计算和可视化任务的过程正是现代科学和工程中常用的思维方式。它不再局限于纸笔推导而是通过构建可计算的模型动态地探索规律、验证结论。

相关新闻

手把手教你用nrf51822和Wireshark抓包低功耗蓝牙(附详细配置步骤)

手把手教你用nrf51822和Wireshark抓包低功耗蓝牙(附详细配置步骤)

深入实战:构建你的低功耗蓝牙数据透视镜 在物联网和智能硬件的开发浪潮中,低功耗蓝牙(Bluetooth Low Energy, BLE)已成为连接万物的关键纽带。无论是智能手环与手机的同步,还是传感器数据的无线传输,其背后…

2026/5/17 12:37:54 阅读更多 →
x64dbg消息断点避坑指南:为什么你的WM_COMMAND断点总失效?

x64dbg消息断点避坑指南:为什么你的WM_COMMAND断点总失效?

深入解析x64dbg消息断点:从原理到实战的避坑指南 你是否曾在逆向分析一个图形界面程序时,试图通过拦截特定的窗口消息来定位关键代码,却发现精心设置的消息断点毫无反应?那种感觉就像在黑暗中摸索,明明知道目标就在那里…

2026/5/17 2:06:05 阅读更多 →
LSTM入门避坑指南:从零开始搭建你的第一个时间序列预测模型

LSTM入门避坑指南:从零开始搭建你的第一个时间序列预测模型

LSTM实战避坑手册:从零构建你的首个时间序列预测模型 你是否曾对股票走势、天气变化或设备运行状态的预测感到好奇?这些看似复杂的问题,背后往往依赖于一种名为“时间序列”的数据。处理这类数据,传统的机器学习方法有时会力不从心…

2026/5/17 12:37:52 阅读更多 →

最新新闻

YOLO实战避坑指南:从环境配置到部署落地的完整工程化流程

YOLO实战避坑指南:从环境配置到部署落地的完整工程化流程

如果你在 2024 年或 2025 年才开始接触 YOLO,可能会觉得它已经是一个“古老”且“成熟”的技术栈,网上教程遍地都是,随便找个代码跑起来似乎并不难。但当你真正想把它用起来,无论是做一个毕业设计、一个内部工具,还是想…

2026/7/5 12:45:54 阅读更多 →
RT-DETR实战:从原理到部署,掌握实时目标检测新范式

RT-DETR实战:从原理到部署,掌握实时目标检测新范式

如果你正在为毕业设计、学术论文或者项目选型而纠结,面对目标检测领域两大主流技术路线——YOLO系列和DETR系列——不知道该如何选择,那么这篇文章就是为你准备的。这不仅仅是“YOLO vs DETR”的简单对比,更是一个关于技术范式、工程实践和未…

2026/7/5 12:45:54 阅读更多 →
YOLOv8保姆级教程:一小时搞定环境搭建、自定义数据集训练与部署

YOLOv8保姆级教程:一小时搞定环境搭建、自定义数据集训练与部署

很多同学在入门深度学习目标检测时,面对YOLOv8的部署和训练常常感到无从下手,网上教程要么版本过时,要么步骤跳跃,导致环境配置失败、训练报错不断。本文将为你提供一份从零开始的保姆级教程,手把手带你在一小时内完成…

2026/7/5 12:43:53 阅读更多 →
暗黑2存档编辑器:可视化修改神器,让游戏存档管理变得如此简单

暗黑2存档编辑器:可视化修改神器,让游戏存档管理变得如此简单

暗黑2存档编辑器:可视化修改神器,让游戏存档管理变得如此简单 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经因为《暗黑破坏神2》中角色属性点分配不当而懊恼?是否想要测试不同的装…

2026/7/5 12:43:53 阅读更多 →
YOLO目标检测实战指南:从原理到部署的完整路径

YOLO目标检测实战指南:从原理到部署的完整路径

在实际计算机视觉项目中,目标检测是连接图像理解与下游任务的核心桥梁。从自动驾驶的车辆行人识别,到工业质检的缺陷定位,再到安防监控的异常行为分析,一个高效、准确的检测模型是系统成功的关键。YOLO(You Only Look …

2026/7/5 12:41:53 阅读更多 →
莫比乌斯反演学习笔记

莫比乌斯反演学习笔记

积性函数 一说数论函数, 我个人认为积性函数这个叫法更好 对于一个函数 �(�)f(x), 如果满足对于任意的 $(a, b) | ���(�,�)1,�∈�,�∈�gcd(a,b)…

2026/7/5 12:41:53 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻