FORTRAN数值方法及其在物理学中应用_第1页
FORTRAN数值方法及其在物理学中应用_第2页
FORTRAN数值方法及其在物理学中应用_第3页
FORTRAN数值方法及其在物理学中应用_第4页
FORTRAN数值方法及其在物理学中应用_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FORTRAN数值方法及其在物理学中应用普通高等学校教材·计算物理学(上篇)Contents课程目录大学计算机数值方法与编程实践课程,涵盖八大核心专题。01FORTRAN语言基础与误差分析02物理图形与图像的计算机模拟03定积分的数值计算方法04常微分方程初值问题数值解法05非线性方程求根方法06插值法与实验数据拟合07线性代数方程组数值解法08蒙特卡罗方法Chapter01FORTRAN语言基础与误差分析掌握科学计算的编程工具与精度控制方法论ProgrammingLanguageFORTRAN语言简介FORTRAN作为科学计算领域的经典语言,自1957年诞生以来在物理学数值模拟中占据不可替代的地位。01起源与积淀:1957年诞生,是第一种广泛使用的高级编程语言,专为科学与工程计算设计,在气象、核物理、流体力学等领域积累超60年。历经多代标准演进,至今仍是高性能计算的首选工具之一。60+Years02核心特点:高效数组运算、原生支持复数类型、丰富数学内部函数(SIN、COS、SQRT、EXP),对物理公式编程极为友好。编译优化成熟,执行效率接近手写汇编,适合大规模数值模拟。SIN·COS·EXP03基本语法:涵盖常量与变量声明、DATA/READ/WRITE输入输出语句、IF-THEN-ELSE条件分支和DO循环结构。代码结构清晰,接近数学表达式,便于科学家直接编写计算逻辑。IF·DO·DATA04语句顺序:PROGRAM声明→类型说明→执行语句→END,编译器按此顺序解析,顺序错误将导致编译失败。严格的分段结构保证了代码可读性,是FORTRAN程序的基本框架。PROGRAM→ENDKinematics·NumericalMethods质点运动学问题的计算质点运动学是FORTRAN应用于物理学的首个典型案例。通过将连续运动过程离散化为微小时间步长的数值迭代,可以计算任意时刻质点的位置、速度和加速度,为后续复杂力学问题奠定方法论基础。瞬时性与极限的数值理解当Δt趋近于零时,平均速度趋近于瞬时速度。编程中用足够小的Δt(如10⁻⁶s)逼近真实值。Δt→0运动方程数值求解已知加速度a(t),通过递推公式逐步计算速度与位移,获得完整运动轨迹。v(t+Δt)=v+a·Δt抛体运动模拟案例给定初速度和发射角,考虑空气阻力时解析解极为复杂,FORTRAN数值方法可轻松处理非线性阻力项。非线性阻力编程实践要点时间步长是精度与效率的平衡——步长过小导致计算冗余,步长过大则累积误差显著增大。精度↔效率NumericalMethods误差分析与精度控制误差控制是科学计算的生命线。掌握误差分类与减小误差的原则,是保证物理模拟结果可靠性的基本素养。四类误差来源模型简化假设、测量精度限制、无穷过程有限化、计算机有限位数缺陷。理解误差来源是控制精度的第一步。模型·观测·截断·舍入绝对与相对误差绝对误差|ε|=|x*-x|反映偏差大小,相对误差|εr|更能体现精度水平。相对误差消除了量纲影响,便于跨尺度比较。|εr|=|ε|/|x*|有效数字规则第一个非零数字到末位数字的位数即为有效数字。单精度浮点约7位、双精度约15–16位,直接影响计算结果可信度。7–16位减小误差原则避免相近数相减导致有效数字丢失,防止小除数放大误差,优化运算顺序减少累积,选用数值稳定算法。四重防线条件数与稳定性条件数衡量输入扰动对输出的放大倍数,条件数大则为病态问题。即使算法稳定,病态问题仍需特殊处理。病态诊断Chapter02物理图形与图像的计算机模拟将抽象物理过程转化为可视化图形的编程实践ComputationalPhysics·Vibration振动与阻尼运动的图形模拟振动问题的计算机模拟是计算物理学的经典入门实践。通过FORTRAN编程绘制简谐振动与阻尼运动曲线,建立数学模型与物理图像之间的对应关系。简谐振动及其合成①x-t/v-t曲线—通过循环计算x(t)=A·cos(ωt+φ),直观展示振幅、角频率和初相的影响②振动合成—同方向合成产生拍频,正交方向合成产生李萨如图形,频率比为整数时闭合稳定③编程实现—时间轴离散化为每周期200点以上,利用数组存储数据后调用绘图接口输出Harmonic·Lissajous阻尼运动与阻尼振动①阻尼力模型—f=−γv与速度成正比,解的性质由阻尼系数γ与固有频率ω₀的比值决定②三种状态—欠阻尼振幅指数衰减振荡,临界阻尼最快回归平衡,过阻尼缓慢单调回归③物理意义—理解能量耗散机制,在RLC电路、减震系统、声学等领域有直接应用Damping·RLCCOMPUTATIONALPHYSICS驻波的计算机模拟驻波模拟通过FORTRAN编程实现两列反向传播行波的叠加可视化,清晰展示波节、波腹的形成机制与空间分布规律。该模拟不仅帮助理解弦振动和声学共鸣等经典物理现象,也为后续学习量子力学中的驻波条件(如势阱中粒子波函数)奠定直觉基础。驻波形成原理两列频率相同、振幅相同、传播方向相反的行波y₁=A·sin(kx−ωt)与y₂=A·sin(kx+ωt)叠加,得到y=2A·sin(kx)·cos(ωt)。该叠加过程满足波动方程的线性叠加原理,是驻波形成的数学基础。y=2A·sin(kx)·cos(ωt)波节与波腹波节位于kx=nπ处(x=nλ/2),振幅为零始终不动;波腹位于kx=(n+½)π处,振幅最大为2A。相邻波节间距为半波长λ/2,相邻波腹间距同样为λ/2,波节与波腹间距为λ/4。x=nλ/2FORTRAN实现双层循环遍历空间点x和时间点t,计算叠加位移并逐帧绘制,生成驻波动态演化的连续画面序列。外层循环控制时间演化,内层循环计算空间分布,利用格式化输出保存每一时刻的波形数据。NESTEDLOOP物理应用场景弦乐器(吉他、小提琴)的振动模式、微波谐振腔中的电磁驻波、量子势阱中粒子的驻波态。这些应用场景共同体现了驻波在经典物理与量子物理中的普适性,是理解束缚态问题的关键模型。弦振动·谐振腔·势阱ComputationalElectromagnetics点电荷系电场与粒子运动的模拟电磁场的计算机模拟将抽象的电势和电场概念转化为直观的等势线与电场线图形。从单点电荷到多电荷系统,从电偶极子到带电粒子运动轨迹,FORTRAN数值方法能够处理解析方法难以求解的复杂电磁场问题,为电磁学教学和科研提供强大的可视化工具。等势线绘制二维网格逐点计算V(x,y)=Σkqᵢ/rᵢ,用追踪法或扫描法找出等值线,实现等势面可视化Contour电场线追踪从正电荷出发沿E=−∇V方向逐步追踪,Runge-Kutta法保证精度,终止于负电荷或无穷远Runge-Kutta电偶极振子近场分布不对称且结构复杂,远场退化为E∝1/r³偶极场,动态展示随距离的场型演化E∝1/r³粒子轨迹模拟洛伦兹力F=q(E+v×B)建立运动方程,数值积分得到回旋、漂移等复杂轨道Lorentzα粒子散射重现卢瑟福散射过程,统计分布验证散射截面公式,直观展示原子核式结构模型RutherfordWaveOpticsSimulation波的干涉与衍射图形模拟波的干涉和衍射的计算机模拟将波动光学的核心现象转化为精确的数值图像。从双缝干涉的明暗条纹、牛顿环的等厚干涉图样,到夫琅禾费衍射的远场分布,FORTRAN数值方法能够处理复杂孔径和边界条件下的波动问题,为光学设计与教学提供直观工具。双缝干涉模拟计算两列相干波在观察屏上的叠加I=I₁+I₂+2√(I₁I₂)·cos(δ),模拟结果清晰展示明纹条件δ=2nπ和暗纹条件δ=(2n+1)π。δ=2nπ/(2n+1)π等厚干涉(牛顿环)空气薄膜厚度d=r²/(2R)随径向距离变化,反射光干涉条件2d+λ/2=nλ决定明暗环位置,模拟结果呈同心圆环分布。d=r²/(2R)夫琅禾费衍射模拟远场衍射图案是孔径函数的傅里叶变换,圆孔产生艾里斑,矩形孔产生sinc函数调制的十字衍射图样。θ=1.22λ/D编程技术要点二维数组存储光强分布矩阵,灰度映射生成图像,对高精度要求可采用快速傅里叶变换(FFT)加速远场衍射计算。FFT·GrayscaleMatrixCHAPTER03定积分的数值计算方法从矩形法到高斯求积——物理学中积分计算的算法体系NumericalIntegration基本数值积分算法及其物理应用矩形法、梯形法和辛普森法构成数值积分的基础算法体系。三者的代数精度依次为0阶、1阶和3阶,精度越高对光滑函数的逼近效果越好。矩形法将区间等分为n段,以端点函数值乘步长近似面积,计算简单但收敛慢O(h)梯形法以梯形面积近似各段积分,工程应用最广泛的简单积分方法O(h²)辛普森法二次抛物线拟合,对光滑函数效果极佳,精度显著优于前两者O(h⁴)电磁学应用计算非均匀带电体在某点的电场,对库仑定律积分式做数值求解E=∫k·dq/r²分子物理应用麦克斯韦速率分布中平均速率与方均根速率均依赖数值积分MaxwellNUMERICALINTEGRATION高阶数值积分:龙贝格法与高斯求积法龙贝格法通过Richardson外推逐次提取高精度结果,高斯求积优化节点与权重达最高代数精度,两者结合满足物理学各类积分需求。龙贝格求积法◆核心思想:变步长梯形法产生序列T₁,T₂,T₄…,利用外推公式Sₙ=(4T₂ₙ−Tₙ)/3得到辛普森序列,再外推至柯特斯与龙贝格序列◆自适应收敛:逐次将步长减半并外推,直到|Rₙ−Rₙ₋₁|<ε自动确定合适步长,无需人工干预◆物理优势:程序自动调节到所需精度,特别适合被积函数行为未知的物理问题高斯求积法◆代数精度:n个节点达到2n−1次精度,在所有同节点数求积公式中代数精度最高◆高斯-勒让德:节点为勒让德多项式零点,权重由正交性确定,是[−1,1]区间标准公式◆二维推广:∫∫f(x,y)dxdy≈ΣΣwᵢwⱼf(xᵢ,yⱼ),广泛用于有限元分析与电磁场面积分CHAPTER04常微分方程初值问题数值解法从欧拉法到龙格-库塔法——物理动力系统的数值演化ComputationalPhysics物理学中的常微分方程物理学的基本定律大多以常微分方程形式表述。当方程不存在解析解时,数值解法成为探索系统行为的唯一途径。力学中的ODE牛顿第二定律m·d²x/dt²=F(x,v,t)是二阶ODE。大角度单摆θ''+(g/L)sinθ=0因非线性项sinθ无法解析求解,需依赖数值方法。m·d²x/dt²=F电学中的ODERLC串联电路L·q''+R·q'+q/C=V(t)描述电荷随时间的演化。当V(t)为非正弦信号或含非线性元件时必须数值求解。RLCCircuit高阶化为一阶方程组令y₁=x,y₂=x',二阶方程x''=f(x,x',t)化为一阶方程组y₁'=y₂,y₂'=f(y₁,y₂,t),统一用标准算法求解。OrderReduction初值问题框架给定dy/dt=f(t,y)和初始条件y(t₀)=y₀,求y在后续时刻t₁,t₂,…的值,这是物理学中最常见的ODE问题类型。y(t₀)=y₀NumericalMethodsODE数值解法:从欧拉法到龙格-库塔法常微分方程数值解法经历了从简单到精密的发展历程,选择合适方法需在精度、稳定性和计算成本间权衡。欧拉法与改进欧拉法标准欧拉法yn+1=yn+h·f(tn,yn),用当前点导数值乘以步长直接推进,局部截断误差O(h²)、全局误差O(h),步长需很小才能保证精度精度O(h)改进欧拉法引入预测-校正机制:先用欧拉法得预测值ỹ,再用两端斜率均值校正,全局精度提升到O(h²),计算量仅翻倍预测-校正欧拉法家族是理解数值积分的基础,其显式格式易于实现但稳定性受限,隐式欧拉法则具备更好的数值稳定性显式与隐式四阶龙格-库塔法(RK4)每步计算四个斜率k₁、k₂、k₃、k₄,加权平均yn+1=yn+(h/6)(k₁+2k₂+2k₃+k₄),全局截断误差O(h⁴)四次斜率加权步长h=0.01时通常可达6位以上有效数字,是物理学数值模拟的首选标准算法,兼具精度与稳定性6位有效数字用RK4求解大角度单摆运动方程,模拟从简谐振动到完全翻转的全范围动力学行为,与椭圆积分精确解高度吻合单摆动力学CHAPTER05非线性方程求根方法二分法、迭代法与牛顿法——物理问题中方程求解的数值策略NumericalMethods物理学中的非线性方程问题大量物理问题归结为求解非线性方程f(x)=0,高于四次的代数方程无精确求根公式,超越方程更无法解析求解,必须依赖数值方法。悬链线案例两塔间距100m、电缆下垂10m,需确定参数a,归结为超越方程求根,必须用数值方法a·cosh(x/a)半圆柱水槽水槽半径r=2m、长L=25m,给定盛水体积求水面距边沿距离,建立积分后归结为求根r=2mL=25m方程分类代数方程(多项式=0)与超越方程(含指数、对数、三角函数),高于四次无一般求根公式代数·超越求根方法体系二分法逐步缩小区间、函数迭代法构造不动点、牛顿法利用导数快速收敛,各有适用条件NewtonNUMERICALMETHODS根的搜索:二分法与函数迭代法二分法以区间套缩的方式逐步逼近方程的根,保证收敛但速度较慢;函数迭代法将求根问题转化为不动点迭代,收敛速度快但需要合适的迭代函数设计。两者在实际应用中常配合使用——先用二分法确定根的大致位置,再用迭代法快速精化。二分法基本原理—若f(a)·f(b)<0,则[a,b]内至少有一个实根。取中点c=(a+b)/2,根据f(c)的符号选择[a,c]或[c,b]继续搜索,每步区间减半,形成区间套序列。收敛速度与精度—n步后区间长度缩为(b−a)/2ⁿ,要达到精度ε需n≥log₂((b−a)/ε)步。≈20步/10⁻⁶LINEAR优缺点—保证收敛、仅需函数连续、实现简单;但线性收敛速度慢,无法求偶数重根,不适用于复数根。ROBUSTSLOW函数迭代法构造迭代格式—将f(x)=0改写为等价形式x=g(x),从初始值x₀出发迭代xₙ₊₁=g(xₙ)。当|g'(x)|<1时局部收敛,|g'(x)|越小收敛越快。FIXEDPOINTITERATION收敛速度差异—不同等价变形g(x)的收敛速度相差极大。例如x³−x−1=0可改写为收敛形式x=∛(x+1),也可改写为发散形式x=x³−1。加速技巧—AitkenΔ²加速法可从线性收敛序列提取超线性结果;Steffensen方法将不动点迭代与Aitken加速结合,无需计算导数即可实现二阶收敛。2ndOrderAITKENSTEFFENSENNumericalMethods牛顿迭代法与非线性方程组牛顿迭代法以f(x)的切线近似代替曲线,在单根附近实现二阶收敛(每步有效数字翻倍),是求根算法中效率最高的标准方法。Formula公式推导在xₙ处对f(x)做泰勒展开取线性项,解得xₙ₊₁=xₙ−f(xₙ)/f′(xₙ),几何意义为切线与x轴交点。xₙ₊₁=xₙ−f/f′Convergence二阶收敛性若x*是单根且初始值充分靠近,误差满足|eₙ₊₁|≈C|eₙ|²,每步有效数字约翻倍,远快于二分法。|eₙ₊₁|≈C|eₙ|²Conditions收敛条件与风险需f′(x*)≠0且初始值在根的吸引域内,否则可能振荡或发散;常先用二分法粗定位再切换精化。f′(x*)≠0Extension非线性方程组推广F(X)=0的向量形式,Xₙ₊₁=Xₙ−J⁻¹·F(Xₙ),J为雅可比矩阵,需求解线性方程组得到修正量。J=∂Fᵢ/∂xⱼCHAPTER06插值法与实验数据拟合从离散实验数据到连续函数关系的数学桥梁NumericalMethods多项式插值方法多项式插值是从离散实验数据构造连续函数的基本方法。拉格朗日插值以基函数线性组合的形式直观构造插值多项式,牛顿插值利用差商表实现增量式高效计算。Lagrange拉格朗日插值构造基函数Lᵢ(x)=∏(x−xⱼ)/(xᵢ−xⱼ),插值多项式P(x)=Σyᵢ·Lᵢ(x)。该方法形式优美直观,但每增加节点需全部重新计算,计算量随节点数平方增长。Newton牛顿插值法利用差商f[x₀,…,xₖ]逐步构造插值多项式,新增节点只需追加一项。计算效率显著优于拉格朗日形式,特别适合动态添加数据点的场景。Runge龙格现象与对策等距节点高次插值在端点附近出现剧烈振荡。有效对策包括:分段低次插值、非等距切比雪夫节点分布,以及样条插值方法。Spline三次样条插值每段区间采用三次多项式,要求相邻段函数值及一阶、二阶导数均连续。该方法光滑性好且避免高次振荡,是实验数据插值的首选方案。CurveFitting最小二乘法与实验数据拟合最小二乘法是实验物理学中处理测量数据的核心方法。它不要求拟合曲线经过每个数据点(因数据含随机误差),而是通过最小化残差平方和确定最优参数。从直线拟合到多项式拟合,最小二乘法提供了一套统一的数学框架,将实验数据与理论模型定量关联。最小二乘原理选择模型φ(x)使残差平方和S=Σ[yᵢ−φ(xᵢ)]²最小,对各参数求偏导令其为零,得到正规方程组并求解最优参数minΣrᵢ²直线拟合y=a+bx正规方程解出斜率b和截距a,相关系数r衡量线性相关程度,|r|→1表示线性关系越好|r|→1多项式拟合推广y=a₀+a₁x+…+aₘxᵐ,正规方程为(m+1)阶线性方程组,阶数m需在拟合精度与过拟合风险间权衡aₘxᵐ物理实验应用欧姆定律拟合V-I直线求电阻、比热容实验温度-时间曲线、光谱实验谱线峰值位置均依赖最小二乘法V-I·C-T·λCHAPTER07线性代数方程组数值解法直接法与迭代法——大规模物理计算的线性代数引擎NUMERICALMETHODS直接法:高斯消元与LU分解高斯消元法和LU分解是求解中小规模线性方程组的直接法基础。高斯消元通过前向消元和回代两步得到精确解,选主元技术保证数值稳定性;LU分解将系数矩阵拆解为下三角和上三角矩阵之积,在需要对同一系数矩阵求解多个右端项时具有显著的效率优势。高斯消元法01前向消元过程:从第1行到第n-1行,依次用当前行消去下方各行对应列的元素,最终将增广矩阵[A|b]化为上三角形式[U|b']02选主元策略:列主元消元在每步选取当前列绝对值最大的元素作为主元,避免因小主元导致的大数吃小数现象,保证数值稳定性03计算复杂度:前向消元需约2n³/3次乘除法,回代需n²/2次,总复杂度O(n³),适合n<1000的中小规模方程组LU分解法01分解原理:A=LU,L为单位下三角矩阵记录消元乘数,U为上三角矩阵即消元结果,求解Ax=b变为先解Ly=b(前代)再解Ux=y(回代)02多右端项优势:当A不变而b变化时(如时间步进中每步的线性方程组),只需做一次O(n³)的LU分解,后续每次求解仅需O(n²)的前代和回代03物理应用:有限差分法求解热传导方程时,每个时间步都需求解同系数矩阵的线性方程组,LU分解可大幅减少计算量ITERATIVEMETHODS迭代法:大规模稀疏方程组求解当物理学问题产生的线性方程组规模极大且系数矩阵稀疏时(如有限差分网格、有限元分析),直接法的O(n³)复杂度和存储需求不可接受。雅可比迭代、高斯-塞德尔迭代和超松弛法(SOR)以O(n)的每步复杂度和O(n)的存储需求,通过逐步逼近的方式求解大规模方程组,是科学计算中不可或缺的工具。雅可比迭代将Ax=b改写为x=D⁻¹(b-(L+U)x),所有分量同时更新。实现简单直观,便于并行计算,但收敛速度相对较慢,适用于对计算效率要求不高的场景。x⁽ᵏ⁺¹⁾=D⁻¹(b-(L+U)x⁽ᵏ⁾)高斯-塞德尔迭代计算时立即利用已更新的新值,无需额外存储空间。收敛速度通常优于雅可比法,内存效率高,是工程实践中常用的基础迭代方法。In-place更新·O(1)额外存储超松弛法(SOR)引入松弛因子ω对迭代步进行加速,最优值通常位于1.5~1.9之间。收敛速度可实现数量级提升,大幅减少迭代次数,是求解大型稀疏方程组的首选方法。1<ωopt<2收敛条件严格对角占优矩阵保证迭代收敛;对称正定矩阵同样收敛。物理问题经有限差分或有限元离散化后的系数矩阵通常满足这些条件,确保数值稳定性。|aᵢᵢ|>Σⱼ≠ᵢ|aᵢⱼ|CHAPTER08蒙特卡罗方法以随机抽样为引擎的概率数值计算范式PROBABILISTICCOMPUTATION蒙特卡罗方法:原理与积分计算蒙特卡罗方法以随机抽样为核心,通过大量随机试验的统计结果逼近确定性问题的解。其积分计算的误差收敛速度为O(1/√N),与维度无关,在高维积分中远超传统数值方法。基本思想将确定性问题转化为概率模型,通过随机抽样和频率统计获得近似解,如用随机投点法计算曲线下面积以近似定积分。随机投点蒙特卡罗积分公式∫f(x)dx≈(V/N)·Σf(xᵢ),xᵢ为均匀随机采样点,V为采样区域体积,误差ε∝1/√N与维度d无关。O(1/√N)经典案例——计算π值在正方形[-1,1]²内随机投N个点,统计落入单位圆内的点数M,则π≈4M/N,直观展示蒙特卡罗方法的核心机制。π≈4M/N高维优势传统网格法在d维空间需要N^d个采样点(维度灾难),蒙特卡罗仅需N个点且精度不变,d>3时效率远超确定性方法。d>3MONTECARLO·PHYSICS蒙特卡罗方法的物理学应用从相变模拟、粒子输运到量子多体,随机抽样为物理定律提供了概率化求解工具。统计物理·Metropolis算法以概率接受高能新态,生成玻尔兹曼分布样本,可计算伊辛模型磁化强度与相变温度。Metropolis粒子输运模拟追踪粒子随机游走轨迹,碰撞距离与散射角度由概率分布抽样,统计通量与能量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论