您当前的位置:首页 > 互联网教程

编程怎么把问题数学化

发布时间:2025-05-20 11:38:48    发布人:远客网络

编程怎么把问题数学化

一、编程怎么把问题数学化

十进制数A用二进制表示为An。..A2 A1 A0,其中An=0,1; n=0,1,2,3,4。..

A0*2^0+ A1*2^1+ A2*2^2。.+An*2^n= A

因为An不是零就是1,那个每次对等式除2,就得到一个可以被2整除的数+ 1(或者+0).

A0 A1 A2。An的序列,把它反过来写成An。A2 A1 A0就是他的2进制序列了。

除的目的就是消去2^n,得到An,其中n=0,1,2,3。.

你用十进制来想一下,如123456,对他除10取余.

依次推下去,等到6,5,4,3,2,1的序列,反过来写就是答案了。

2.如何简化手工编程中的数学处理

众所周知,数控机床程序编制的方法有两种:手工编程与自动编程。

手工编程仍被广泛地应用于形状较简单的点位加工及平面轮廓加工。而手工编程中有一个既关键又繁琐的环节就是图形的数学处理,即通常要计算出加工轮廓的各基点或节点坐标。

传统的计算方法就是建立数学方程式,解方程组,以求各关键点的坐标。这个过程对编程人员来说既耗时又容易出错。

随着绘图软件AutoCAD应用的普及,在手工编程过程中,我们可以利用AutoCAD的INQUARY(查询)、CALCULATE(计算)等命令快速、准确地求出各点的坐标,以代替复杂的数学运算。下面以一些实例来介绍具体的操作方法。

例如要编写如图1所示零件的数控加工程序,必须求出零件轮廓中各基点(如图2所示的A、B、C、D、E、F、G)的坐标值,如果用数学方法处理,则难度比较大,而且很繁琐。下面介绍如何利用AutoCAD2000得到各基点的坐标值。

图1零件的数控加工程序第一步:利用AutoCAD2000画出零件图,。图2零件图第二步:将AutoCAD的用户坐标系(UCS)的原点(ORIGIN)移至零件的编程原点(O)处。

操作方法如下:下拉菜单TOOLS→MOVE UCS→鼠标左键拾取编程原点O;或者,下拉菜单TOOLS→NEW UCS→ORIGIN→鼠标左键拾取编程原点O。第三步:下拉菜单TOOLS→INQUIRY→ID POINT→鼠标左键拾取A点,则在命令行(MAND)处显示A点在编程坐标系中的坐标值,即求得编程所需的数据。

用同样的方法可得到其他各点(B、C、D、E、F、G)的坐标值和圆弧圆心点的坐标值。或者,下拉菜单TOOLS→INQUIRY→LIST→鼠标左键分别拾取A、B、C、D、E、F、G各点,则显示出各点的坐标值。

同理,对于分层切削、行切法、环切法、以及处理刀具半径的补偿问题等,都可以先用AutoCAD中的OFFSET命令对零件轮廓进行适当的偏移,生成所需的刀具加工轨迹,再用上述的方法可求出各编程点的坐标值,提高手工编程的效率和准确性。另外,AutoCAD的几何计算器有时在手工编程的数学处理中也十分有用。

和普通的计算器一样,几何计算器可以完成加、减、乘、除的运算以及三角函数的运算,计算的结果还可直接作为命令的参数使用。和一般计算器不同的是,AutoCAD几何计算器还可以做几何运算。

它既可直接对各坐标点的坐标值进行运算,也可以使用AutoCAD的Osnap模式捕捉屏幕上的坐标点来参与运算,还可以自动计算几何坐标点等。对于一些在图中没有直接画出来的点,我们要求其坐标值,就可以利用AutoCAD的几何计算器来进行计算。

在命令提示mand:下键入CAL,即可启动AutoCAD几何计算器。CAL也是一个透明命令,可以在其它的命令下随时启动几何计算器。

此外,还可以在AutoLISP程序中使用CAL命令。例如,我们要求出两已知点A、B之间的2个三等分点的坐标值,操作过程如下: mand:Cal↙>>Expression:Plt(End,End,1/3)↙>>Select Entity For End Snap:(捕捉A点)>>Select Entity For End Snap:(捕捉B点)即在命令行处显示出距离A点为1/3线段(AB)长的点的坐标值。

同理,只要把上述的Expression:改成Plt(End,End,1/3)则可求出距离A点为2/3线段(AB)长的点的坐标值。此外,还可以利用AutoCAD的图形数据通过AutoCAD的AutoLISP语言设计编制数控程序,此处就不再讨论。

总之,在现代机械制造业中,数控机床的使用越来越广泛,而目前的自动编程软件价格又较高,利用AutoCAD的图形数据,进行数控编程有一定的实际意义。(end)。

编程语言很多,不知道你要用什么语言编写程序

void main(){ for(D=0;D<=H;D++) if D+(H-D)/4==H cout<<D<<"''<<H-D;}加上大括号!!这是c语言的程序你想要用什么编程语言写阿??我只懂 C语言、matlab、一点点汇编你按我给的图改写吧

你是要用vb编程吧。这是我改写的。我没有学过vb,里面可能会有错。你发现了错误再告诉我吧。

H=?' H应该是一个数字吧 do while D<=H

4.如何将论文中的数学(高数)问题,转化为c++代码

这个看上去是产生一个理想曲面。A不同,结果不同。

你需要懂得用伯恩斯坦-贝塞尔多项式离散化表示曲面的方法。

先定出循环计算的点,算出贝塞尔系数。

有了系数后,便可在定义域范围内一点一点计算--类似空间插值计算。

有了可数值计算的计算方法后,再用c/c++语言描述你的计算,这便叫代码。

有限单元法里常用的,三角形内一点的函数值,用三角形3个顶点处的函数值表示,

可数值计算的计算方法就是定出计算点,算出它的面积座标,用面积座标为权,

这里复杂些。但基本概念类似,约束边界是你的曲面边界。理想曲面,文里给了参数方程。

你既然喜欢编程,就应该认认真真的学习一门语言,学习微软的就先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言。

书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍中没有讲到的内容可以在另一本中看到,这样对学习是很有好处的,也能保证所学知识的完整性。学编程是一个很漫长的过程,不要着急,要理论与实践想结合,例程书籍也是很重要的,看源代码对学习也是很有帮助的,等你学完这门VB语言之后,学习别的语言是非常简单,可以尝试C语言,按照C——C++——VC的顺序学习,有助于知识的连贯性,我也希望你能学好的。

或者学习Delphi,入门较为简单类似于VB,但比VB强大,即可作为入门又能做强、做大怎样学编程 1.明确学习目的学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。

学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。

2.打好基础学编程要具备一定的基础,总结之有以下几方面:(1)数学基础从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。

(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。

要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。

谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。

(3)选择一种合适的入门语言面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic、Delphi、VC++( C++ Builder)等;数据库开发工具有:Visual Foxpro、Oracle Developer、Power Builder等。 2)跨平台开发开发工具如 Java等。

3)网络开发对客户端开发工具如:Java Script等;对服务器开发工具如:PHP、ASP、JSP、ISAPI、NSAPI、CGI等。以上不同的环境下几种开发工具中 VB法简单并容易理解,界面设计是可设化的,易学、易用。

选 VB作为入门的方向对出学者是较为适合的。 3.注意理解一些重要概念一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。

4.掌握编程思想学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC就要学习 Windows的内在机理、什么是线程。

;学习就要知道 VTALBE、类厂、接口、idl。

,关键是学一种思想,有了思想,那么我们就可以触类旁通。

5.多实践、多交流掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。

这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。

6.养成良好的编程习惯编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。

编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。

如代码的缩进编排、变量命令规则的一致性、代码的注释等。 7.上网学编程在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。

例如网站“编程课堂”(/)提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。 8.加强计算机理论知识的再学习学编程是符合“理论。

二、卡西欧计算器怎么编程

卡西欧计算器有很多种的,,每一种卡西欧计算器编程语言都大不一样,就比如卡西欧4800和卡西欧5800计算器,编程语句和关键字很多不一样的了,如果你问的仅仅是进入计算器编程界面的话,对于卡西欧5800计算器那就是:“MODESRTUP”——5号键,PROG——1号键,NEW——输入程序名称——选择程序模式(一般情况下都是在COMP模式下)——进入代码输入界面,输入程序代码再运行就行了。

一、使用简单,最大的一个优点就是只要具有初中水平会运用数学公式对函数有一般的了解的人,能基本理解casio4x00的内装函数即可进行简单的编程。非常适合测量初学者和数学程序爱好者学习,也适合专业的测量人员的使用和能力提高。不像其它的专业一定要具有较高的专业技术水平才能进行电脑编程。

二、成本低廉,价格在400元左右。

三、携带方便,体积很小可随时放在口袋里随拿随用。casio系列较好的编程型号有casio4500(以下简称4500)、casio4800(以下简称4800),(好象近来还推出了一款casio4850)前者较内存小,只有1103个字节,能应付一些较为简单的公式计算和科学计算,但由于内存有限,对一些较复杂或子程序过多的程序就力不从心了,不能出色的完成测量任务。4800就比4500有较大的改进,4800内存达到的4500个字节,而且显示屏是4500的几倍大,能更准确的显示数据,内装函数字符一目了然。且具有简单的人机对话功能,出现了菜单子菜单。4800还在4500增加了啊佛加德罗常数、万有引力长常数、详见《操作说明书》。4800有很多很实用的功能如他有一个公式解答功能,其原理是用牛顿法解方程。

举个例子:有一方程式:a=2b-c求当a=2、c=5时的b值。将该方程式存入公式存贮器中,:先按按解答键“SOLVE”a输入2、c输入5,再按解答键“SOLVE”计算器就会显示:b=3.5。此项功能被称为自动解答功能。同时它也是非常实用的,在实际工作中通常要有一个经常使用的小公式,可借助它来完成。4800使用的程序语言可以算做简单的BASIC语言,有的命令如GOTO(转移到)、PAUSE(暂停)就与BASIC语言的一模一样。现在4800的程序语言来说说。其主要命令有:

1、=>??条件转移成立符号,其用法相当于BASIC中的IF??THEN(假设语句相当于假如??然后,IF相当于条件??THEN相当于结果)语句

2、≠>??条件转移不成立符号,其用法相当于BASIC中的IF??ELSE语句通常二者连用,相当于BASIC中的IF??THEN??ELSE语句(它的英语形式一般为ifa>bthenc>delseifb>athe??)

3、_??条件转移结束符号,与=>和≠>配合使用,放在条件语句最后面。

4、LbI??标记命令。用于将一段语句作转换标记。后可接字母、数字、符号,但不能超过两个字节,如不能用≥10的数字作行标,否则会出现出错信息。

5、Goto??(条件)转移命令。前面可加条件语句,与BASIC中的GOTO作用相同。通常与LbI一起用,如果所转移的行号无效,则会显示:GOERROR(详见说明书)出错信息

6、Dsz??减量循环命令。可减少未知数的数量。

8、Pause??暂停命令。后可接0~9之间的整数n,可使某一数据显示n/2秒钟,然后继续运行下面的程序。它被认为是一个语句。

9、Fixm??变量锁定命令。该命令能使其所有变量值(A~Z)均当成定数处理。当程序运行时,将不需要输入变数(“{}”内的变数除外),而是将存贮器中原有的数值来完成计算。

10、{}??变量输入命令。只程序在循环使用时经常发生改变的数字,如里程、和宽度。它的输入方式可以使很多种如{AB}{A,B}{AB}都可以。注意“{”和“}”必需成对输入。否则会出现SynERROR(详见说明书)出错信息。

12、Prog??在正常情况是下打开程序的快捷键。在编程过程中是运行子程序命令,后接子程序名(一定要加引号,且要注意空格,否则会出现SynERROR(详见说明书)的出错信息。

13、↓??换行,只保留计算过程不显示计算结果。当不想对其换行时也可用:代替。

14、_??数据显示命令。该命令输入后会自动换行。保留计算过程并显示计算结果。有一条总原则即:①学会运用程序的语言,尽可能使程序变得简明扼要;我们编写程序应该尽可能地使程序变得简明扼要,能省略的要一定省略。烦琐的语句过多的字节只能使计算器的运算速度变慢没有任何好处,而且相当站用内存。学会节省字节和使用符号是相当重要的。尤其要灵活运用计算器语句因为它会使你更多的节省字节达到预期效果。比如下程序就灵活运用了Dsz(减量循环命令)。比如使其能输入10个数值,并计算10个数值的平均值。一般程序求10个数字的平均值需要有11个数字的提示符号。但学会灵活运用了Dsz(减量循环命令)那么只要有三个就可以了,这样就大大节省了字节的占用。例程序如下:

但要注意的是:如果你是初学者或你对程序的编程不熟练,首先一定要先按照你的思路把程序步骤一步一步的列好在确定它能正确的计算后在想办法对其进行精简修改,否则只会使程序出现过多的错误;②尽可能使程序所包含的子程序减少;子程序过多就会造成程序结构松散,有的计算器主程序需要三个或四子程序,过多的子程序只会引起程序之间紊乱、混淆。子程序过多对在使用时查找也比较麻烦。而且子程序过多如果其中某个环节出现错误很难发现其错误所在,在编写程序时要尽量的少编写子程序,即使要编写子程序时也要注意尤其在容易出错的地方要多加注意。有弊就有利如果你对子程序了解得多了那么可以几个主程序合用一个之程序也到到了要求的减少程序的字节使程序更简化。例程序如下:

③尽量少用或不使用扩充变数存贮器,如A[1]、A[2]等:使用扩充存贮器是一个利少弊多的做法。每扩充一个存贮器就要减少10个字节的容量,而每个扩充存贮器至少要占四个字节,比一个A~Z变量净增三个。有时你会觉得变量存贮器不够用。其实不尽然,一般程序变量数很少会超过26个,只是你不懂得去使用。一般来说,两个相对独立的程序步骤之间根本不需要考虑变量重复问题。针对某一个程序,只要不是固定变量({}内的变量),也就是那些通过计算出来的用于下一步计算的数值。我们就可以通过重复赋值来得到某些计算量。反正在下一轮循环中该量是变化的。明白了各种命令的含义和注意事项就可以编程了。举例有公式如下:

QMNFJ↓数据输入语句(指公式循环运算时的不变量)

{KDE}↓数据输入语句(指公式循环运算时变量)

H=X+DcosG_公式运算、数据显示语

I=Y+DsinG_公式运算、数据显示语

T=X—EcosG_公式运算、数据显示语

U=Y—EsinG_公式运算、数据显示语

最后计算器状态设定语句是大家最容易忽视的。如果将单位进行预设那么计算器就会默认其使用单位在进行下一单位换算时要一定要进行单位转换,否者会使计算结果错误。在显示屏幕的左下角可以清楚地发现小提示符号:如D代表度为现在的缺省单位、R代表弧度为现在的缺省单位、G代表梯度为现在的缺省单位。

三、方程的由来

美国著名物理学家理查德·费曼(Richard Feynman)曾预言:“人类历史从长远看,好比说到一万年以后看回来,19世纪最举足轻重的毫无疑问就是麦克斯韦发现了电动力学定律。”

这个预言或许对吧。可是费曼也知道,麦克斯韦可不是一下子就发现了所有有关电动力学的定律,所以如果一定要选出一个有代表性的时间,他很有可能会选1864年10月27日。那天麦克斯韦向皇家学会成员阐述了他的论文“电磁场的动力理论”。一年后麦克斯韦正式发表他这个激进的新理论。那时候整套理论还显得很冗长,后来是他的追随者把这个理论精炼到了四个如今著名的方程式。无论如何,把这些方程是称为麦克斯韦方程组还是有道理的。所以我们今天要来庆祝它们150岁的生日。

1820年以前,科学家相信电和磁是截然不同的两种现象。后来汉施·克里斯蒂安·奥斯特(Hans Christian Oersted)报告了一个引人注目的结果:当他把磁化的指南针放到通电导线附近时,指南针移动到了和导线垂直的角度。各处的科学家都惊呆了,立即着手研究电和磁的关联。其中就有麦克·法拉第(Michael Faraday)。

詹姆士·克勒克·麦克斯韦是十九世纪物理学界最有影响力的人物。

法拉第是个伦敦铁匠的儿子,自学成材。29岁的时候,他在皇家研究所汉弗莱·戴维(Humphry Davy)手下工作。作为一个分析化学家,他竖立了机智灵敏又可靠的好口碑。只有其他事情一做完,他就开始实验电流和磁。他并不懂数学,所以至少表面看来,他比起那些同时代的接受过完好教育的人来有所欠缺。但反过来说,这种缺失却成了他的优势,他比别人更能自由地思考。他问了很多别人都没有考虑过的问题,设计了别人没有想到过的实验,看到了别人错过的机会。

与他同时代的安德烈·玛丽·安培(André Marie Ampère)以惊人的速度重复了奥斯特的实验。没几个月就发展出了一整套数学理论。他说,任何一个电流环都会产生贯穿过这个环的磁力。安培的理论,就像此前的库伦,是基于牛顿的万有引力理论的。库伦认为,在点电荷和磁极之间会即时产生直线状的电力和磁力。这些力和距离的平方成反比。安培计算了把通电导线看作是无限小的电流分段串在一起,把每个无限小的电流分段当作是一个点来处理,从而计算通电导线产生的磁力。要算通电导线产生的磁力,只要把所有电流分段的效应在数学上简单相加。

在法拉第看来,若要说奥斯特实验中指南针是被一组直线引力以及它和导线之间排斥力驱动,那是不对的。他觉得,应该是通电导线在它的周围空间引起了一种环形的力。他涉及了一个聪明而简单的实验,验证这个想法。法拉第将一条磁铁竖直固定在一个小脸盆中央,并将水银倒入脸盆中,直到只有磁铁的顶端露出来。然后他把一根导线伸到水银中。当他通上电,导线和水银就是电路的一部分了。与水银接触的导线的顶端围绕磁铁快速转动。他制造了这个世界上第一个电动机。

安培已经演示过如何从电产生磁——那么从磁里产生电当然应该有可能啦。然而十年来科学家屡试屡败。然后到了1831年,法拉第发现了这个目标难以企及的原因:要想在导线里产生电流,你必须改变导线周围空间里的磁场态。你只要在电路周围移动一个磁铁(或者反过来),那么电路就有电流了。然而空间的磁场态确切来说到底是什么呢?法拉第想起了白纸上磁铁周围铁屑的分布,他确信磁铁不只是一块带着有趣特性的铁,它是整个磁力曲线在空间分布的中心,磁力线实际存在。而且,这种现象不仅铁磁有:在导电电路的周围也有相似的磁力线。

法拉第得出进一步结论。通过测试,他总结说每个带电物体都是电力线的源头,在空间里也会弯曲。和连续成环状的磁力线不同(它们不终止于磁铁,而是穿过磁铁),电力线总是从一处的正电荷物体到另一处的负电荷物体。所以每个正电荷都和别处一个负电荷有一个平衡。他同时观察到,无论是磁效应还是电效应,都不是即时的,都要一段时间来产生作用。照他的理解,这是系统要建立起这些电力、磁力线所需要花费的时间。

英国科学家麦克·法拉第(画像)对麦克斯韦发展电磁统一理论有帮助。

法拉第和其他科学家的思维方式很不一样。通常科学家仍然认为电力和磁力是由一段距离内的实质物体相互作用,而空间的作用是消极的。皇家天文学家乔治比德尔艾利(George Biddell Airy)爵士评价法拉第的电力磁力线是“模糊和变化的”,他代表了当时很多人的意见。这也好理解。他们通常的远距作用理论有一个明确的公式,而法拉第的理论却没有提供任何公式。虽然他们尊敬法拉第,认为他是一位超凡的实验家,但大多数科学家觉得他不懂数学,因而缺乏理论基础。

法拉第了解他们的这些意见,所以在发表电力磁力线理论的时候格外谨慎。只有一次他做了一次冒险。那是在1846年,他的一个同事查尔斯·威特斯通(Charles Wheatstone)要在皇家学院演讲他的发明,但临阵怯场。于是,法拉第决定自己来做个演讲。他在给定时间结束前开始讲预告之外的内容。他卸下心理防备,把自己最私密的想法说了出来。他向听众们讲述了有着惊人预见的关于光的电磁理论。他推测,全部空间都充满着电力线和磁力线。这些线横向振动,当受到干扰时,就会沿着线的方向以很快但有限的速度发射能量波。他说,光很可能就是光线振动的一种体现。

现在我们知道,他已经很接近真相了。但在法拉第的那些科学家同事看来,光线振动就像奇幻传说一样荒唐。以至于法拉第的支持者都感到尴尬,法拉第本人也后悔松懈了思想防备。他把他同时代的人远远地甩在了后头,一直等到四十年以后才有人能揭示法拉第真正的伟大。这个人有着同样思想高度,和法拉第能力上的有着互补。这个人就是詹姆士·克勒克·麦克斯韦(James Clerk Maxwell)。

麦克斯韦职业生涯惊人而又短暂(他死时48岁)。他在他从事的每个物理分领域都做出了根本性的发现。但他最伟大的工作是关于电场和磁场,这点像法拉第。麦克斯韦出生于一个高贵的苏格兰家庭,他进了爱丁堡最好的中学,然后去了爱丁堡大学和剑桥大学。他在剑桥大学得到了数学荣誉学位考试的第二名,获得了学士学位。这之后,他就开始阅读有关法拉第的电学实验。麦克斯韦一下子被法拉第的坦诚吸引了:这个伟人公开他的成功以及失败,表达他成熟以及粗略的想法。再读下去,麦克斯韦看到这项工作真正的力量:在寻找探究明白前,思想就有伟大飞跃。在麦克斯韦看来,线这个概念在空间上是有道理的,虽然法拉第表达起来都是用文字的,但本质上这是可以用数学表述的。他开始用数学的力量承载起法拉第的想法。九年里,他跨越了三次令人惊叹的阶段,成功了。

麦克斯韦非常善于发现自然界不同领域的相似性。1856年,他开始用虚拟的不可压缩的匀速流体来类比电力线和磁力线:在空间区域的流体速度和方向代表了力线的密度和方向。如此,他就证明了静态电力和磁力可以从传统的距离之间的作用理论推导出来。这是个了不起的成就。但当时,麦克斯韦不知道如何处理变化的力线。依照他惯有的方式,他去干别的工作了,但这些想法一致在他脑中酝酿。

六年后,他有了一个新模型。他想象空间里充满着小球,这些小球可以旋转,它们被更小的粒子在空间上间隔开。那些小粒子就像是钢珠轴承。麦克斯韦假设这些小球质量很小但有限,并有一定的弹性。如此一来,就可以把电力线和磁力线和机械系统作类比。因而任何一个小球的变化都会引起了其他小球的变化。这个杰出的模型导出了所有著名的电磁方程,它预言电磁波的传播速度只由电磁基本性质决定。这个速度和实验测到的光速只相差1.5%。这是个惊人的结果,但科学家却都没对此表态。他们相信,任何物理分领域,都是以认清自然真实规律为目标的。他们觉得麦克斯韦的模型并没有原创性,用这个模型尝试对电磁和光作解释是有缺陷的。所有人都预计麦克斯韦下一步就是要完善这个模型。但他没有,他把模型放到一边,只运用动力原理,从头开始搭建这个理论。

两年后,研究成果被发表在“电磁场的动力理论”这篇论文中。在这个模型里,无处不在的媒介取代了此前模型中的旋转粒子。媒介具有惯性和弹性,但他对其机械特性没有详述。就像变戏法,他运用了约瑟夫·路易斯·拉格朗日(Joseph Louis Lagrange)的方法,把动力系统看成一个“黑箱”:只要描述了这个系统的一些通常特征,就可以在不知道具体机理的情况下,通过输入推导出输出。如此,他就有了电磁场方程组,一共有20个方程。1864年10月,他在皇家学会讲述他的这篇论文,听众们简直不知道该拿它如何是好。一个理论建立在奇怪的模型上已经够糟糕了,而一个理论不以任何模型为基础,那就根本无法让人理解。

直到1879年麦克斯韦过世,又过了数年,他的理论都没有人能够真正理解,就好似在玻璃箱中的展示,广受仰慕却无人能够接近。后来是自学成才做过电报员的奥利弗·亥维赛(Oliver Heaviside)让这套理论变得可以亲近。1885年,他把这套理论总结为我们现在所知的四个麦克斯韦方程:

这里 E和 H分别是空间任意点电场力和磁场力的矢量,ε和μ分别电和磁的基本常量,ρ是电荷密度, J是电流密度矢量。头两个方程简洁表述了电和磁的平方反比定律。第三、四个方程定义了电和磁之间的关系,说明电磁波存在并以1/√(με)的速度传播。

亥维赛运用矢量分析大大简化了方程的表达。三维矢量用一个字母表示,把电势和磁矢势都推到幕后。1888年,海因里希·赫兹(Heinrich Hertz)发现电磁波极大地推动了人们对电磁理论的兴趣。人们求助于亥维赛的精炼版本,而非麦克斯韦最初的表述。

要把故事讲完整,还要加上三点内容。第一,麦克斯维其实很容易就可以把理论简化压缩,但是他觉得最好还是保持一定的开放性。许多年后,他的智慧显现了:理查德·费曼和其他人发展量子电动力学,就是利用了被亥维赛剔除的原始状态下的势能量。第二点,是麦克斯韦命名了运算符号,比如散度和旋度。第三,麦克斯韦事实上在他的《关于电和磁的论文》一文中已经用了矢量,只不过他把矢量表达看作是一种额外的选择。他的矢量是从威廉·罗万·哈密顿(William Rowan Hamilton)复杂的四元数推导而来。大多数人都不想用这么复杂的矢量系统,直到亥维赛推出简便许多的系统他们才开始接受。

最后想想这点:虽然麦克斯韦从来没有刻意去追求,但他的方程组揭示了光速是1/√(με),和观察者、光源的相对速度都没有关系。这引导出了爱因斯坦的狭义相对论,E= mc。所以说,或许这个世界上最著名的公式就应该是 E= m/με。这样才能体现爱因斯坦和麦克斯韦共同的贡献。

算法数学之美微信公众号欢迎赐稿

稿件涉及数学、物理、算法、计算机、编程等相关领域,经采用我们将奉上稿酬。