解方程的历史

不要小瞧这个看上去普通的话题,一元代数方程的解的问题直接导致了如今的抽象数学的诞生。

一元二次方程的解公式是公元八、九世纪阿拉伯数学家花拉子米给出的。中国的《九章算术》中也给出了二次方程的数值解法。当然,在这个上边外国人是遥遥领先:外国人给出的是解析解,中国人给的是数值解,差距不是一点点。之后的很长一段时间对高次方程的讨论是空白,人们始终没有找到一元三次方程的解法。直到16世纪的欧洲,人们再次对这一难题发起冲击。

先从塔尔塔利亚(Tartaglia)谈起。Tartaglia原名Niccolò Fontana,在与入侵的法国军队的冲突中受伤而导致说话不清。Tartaglia是人们对他的戏谑的称呼,直译过来就是口吃的人。不管怎么样,这个标签算跟定了他。塔尔塔利亚是一个穷困的工程师,图书管理员,还是一个自学的数学家,还翻译了阿基米德和欧几里得的书稿。16世纪文艺复兴时期的博洛尼亚大学(全世界最古老的大学)以公开的数学竞赛而闻名。通过这些竞赛,大学教职人员可以获得名气,同时有机会获得升职的机会。而塔尔塔利亚就是在这种大环境下崛起的。1530年塔尔塔利亚声称自己能解缺一次项的一元三次方程。这话传出去不得了,因为这在当时是高超的技术,就像你宣称你是中原第一武林高手。别人肯定不服。其实在20年前波伦亚大学教授费罗就发现了缺二次项的三次方程的解法,死前传给了他的学生菲奥尔。越来越像中国的武林,两个高手各握半本秘籍,和一起就能修炼到最高,但同时谁也怀疑对方武功真的那么高。于是1535年,年轻气盛的菲奥尔在博洛尼亚大学的数学竞赛中对塔尔塔利亚提出了挑战。挑战前,塔尔塔利亚做足了准备,有人甚至说他已经找到了不缺项的普遍三次方程的解。于是塔尔塔利亚毫不费劲的赢得了比赛。此后塔尔塔利亚将自己的解法深深地隐藏在一首诗里。。。这跟中国的武侠世界没啥不同。

当时一个数学家卡当正在写一本代数专著,听到塔尔塔利亚获胜的消息后就邀请塔尔塔利亚前来做客。卡当再三恳求并发誓对此保密后,塔尔塔利亚将解法告诉了他。卡当经研究,给出了三次方程一般解及其证明。卡当后来在1545年的《大术Ars Magna》一书中发表了这些结果,这导致他以及他的学生与塔的长期论争。卡当算是剽窃者,但是也不能说完全没有功劳。卡当有个聪明的学生叫Ferrari,没错就叫这个,在看到三次方程的解之后,推出了四次方程的解。Ferrari当然不放过成名的机会,他对塔尔塔利亚提出了挑战,塔尔塔利亚接受了挑战,但是未能出席(或许是知道会输),Ferrari自然而然赢得胜利(也有人说塔尔塔利亚参加了比赛并且三次方程解得更快,但是Ferrari指责对方不会解四次方程,客场作战的塔尔塔利亚自然落了下风)。而此后塔尔塔利亚也因此落魄,失去了职位。塔尔塔利亚死的时候身无分文当然,Ferrari平步青云,积累了很多财富。站在三/四次方程的金字塔顶尖的三个男人:塔尔塔利亚,卡当,Ferrari三个人在人类思想界给出了一个重要概念:虚数。别忘了,高次方程是存在虚根的。至于三个人对虚数的结论到了什么高度,我是不得而知。直到1560年间,意大利数学家邦贝利才对复数的一般性质进行了系统讨论。这就是西方思想的高度。

对两个人多说两句:邦贝利----指出三等分角问题可转化为解不可约情形的三次方程问题,是理论上证明该问题尺规作图不可能的基础。邦贝利被称为文艺复兴最后一位数学家,得到莱布尼茨高度赞扬。卡当—--私生子,自幼受到歧视和虐待,性格怪癖,他在数学、哲学、物理学和医学中均有相当成就,但也醉心于占星术与赌博,他预测(占星)自己1576年9月21日死,结果到了那天他还是很健康,于是。。。。自杀了,是的自杀了。

17世纪前,四次方程的问题解决完了,那五次方程呢?先说一段跟中国相关的。也是牵扯到中国自己培养的顶尖数学家华罗庚。华罗庚当年崭露头角靠的是这篇文章“苏家驹的五次方程式解法不能成立之理由”,苏家驹在那个信息闭塞的年代还不知道一百年前这个问题已经被解决了。至于华罗庚用的方法是不是这个一百年前的方法我不清楚。一个小小的代数方程,牵扯了两个顶尖的数学问题(代数方程的公式解,三等分角),也是挺意外的。虽然这两个问题已经被解决,据说目前还是有很多“民科”试图推翻,真的是浪费粮食。

那么五次方程有没有公式解,答:没有。这段故事里只有两个绝世天才:阿贝尔和伽罗华。阿贝尔一生穷困潦倒,只活了27岁。19岁就证明了五次以上的方程不存在通解,由于他提出的“群论”太领先时代,几乎没人理他,最后是自掏腰包发表了,仅仅是为了出名获得机会。但是最终还是在一场大病之后英年早逝(不知道当时有钱能不能治好)。死后两天,通知来告诉他,他获得了柏林一所大学的职位。伽罗华得到的是一般的代数方程有解的判定定理。阿贝尔的群论为伽罗华的理论奠定了基础。两人并称为现代群论的创始人。伽罗华的理论不仅能证明五次方程没有公式解,还可以证明古希腊的三大数学难题同样无解。这些问题是:(1) 规矩三等分任意角;(2) 化圆为方:即做一正方形,使其与己知圆等面积;(3) 倍立方:做一个立方体,其体积为已知立方体两倍。伽罗华这个人比较激进,并热衷政治运动。第一次考大学,准备不足,没考上,第二次准备充分,但是莫名其妙还是没有过。有传说,他解题思路太跳跃,考官跟不上,导致了他的愤怒。1831年,他修改后的论文被送交泊松审查。泊松认真审阅结论是“不可理解”。他在给科学院的报告中说:“我们已经尽了最大努力来研究伽罗华的证明,他的推理显得很不清楚。我们甚至不能弄清他的证明思想。”1832年3月,政治活动中被捕的伽罗华被转移到一家私人医院中服刑,在那里,他爱上了医生的女儿。一个月后他获释。但是医生女儿有个前男友,于是两人要决斗。决斗的头一天晚上,他自知必死,因为对方是个神枪手,他彻夜整理自己的手稿,手稿边上多次出现:“我没有时间了”的字样。终年21岁。这个说法过于浪漫主义,一般史学家不当真。朋友按照他的遗愿,把论文发给了大神高斯和雅各比,都石沉大海,直到刘维尔才确认了结果的正确性。

这次没公式,都开心,准备写个第二个后续篇,会有公式。

时间: 2024-11-08 06:59:14

解方程的历史的相关文章

用python解方程和微积分

用python解方程: from sympy import * x = Symbol('x')  y = Symbol('y') print solve([2* x - y -3,3* x + y -7],[x, y]) 2. 求极限: 代码中的oo就代表无穷. from sympy import * n = Symbol('n') s = ((n+3)/(n+2))**n print limit(s, n, oo) 3. 求定积分: integrate函数用于积分问题. from sympy 

NOIP201410解方程(C++)

NOIP201410解方程 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 已知多项式方程: a0+a1*x+a2*x^2+a3*x^3+-+an*x^n=0 求这个方程在[1, m]内的整数解(n 和 m 均为正整数). 输入 输入共 n+2 行.第一行包含 2 个整数 n.m,每两个整数之间用一个空格隔开.接下来的 n+1 行每行包含一个整数,依次为a0,a1,a2-an.  输出 第一行输出方程在[1, m]内的整数解

codevs3732==洛谷 解方程P2312 解方程

P2312 解方程 195通过 1.6K提交 题目提供者该用户不存在 标签数论(数学相关)高精2014NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, m ] 内的整数解(n 和m 均为正整数) 输入输出格式 输入格式: 输入文件名为equation .in. 输入共n + 2 行. 第一行包含2 个整数n .m ,每两个整数之间用一个空格隔开. 接下来的n+1 行每行包含一个整数,依次

HDU 4793 Collision --解方程

题意: 给一个圆盘,圆心为(0,0),半径为Rm, 然后给一个圆形区域,圆心同此圆盘,半径为R(R>Rm),一枚硬币(圆形),圆心为(x,y),半径为r,一定在圆形区域外面,速度向量为(vx,vy),硬币向圆盘撞过去,碰到圆盘后会以相反方向相同速度回来(好像有点违背物理规律啊,但是题目是这样,没办法).问硬币某一部分在圆形区域内的总时间. 解法: 解方程,求 (x+vx*t,y+vy*t) 代入圆形区域方程是否有解,如果没解,说明硬币运动轨迹与圆形区域都不相交,答案为0 如果有解,再看代入圆盘有

【NOIP之旅】NOIP2014 day2 T3 解方程

3.解方程 (equation.cpp/c/pas) [问题描述] 已知多项式方程: 求这个方程在[1, m]内的整数解(n和m均为正整数).   [输入] 输入文件名为equation.in. 输入共n+2行. 第一行包含2个整数n.m,每两个整数之间用一个空格隔开. 接下来的n+1行每行包含一个整数,依次为a0,a1,a2,……,an. [输出] 输出文件名为equation.out. 第一行输出方程在[1, m]内的整数解的个数. 接下来每行一个整数,按照从小到大的顺序依次输出方程在[1,

1743: 解方程

1743: 解方程 Description 一群奥特曼打败了一群小怪兽,已知所有的奥特曼均有x1个头.y1条腿(变异奥特曼),所有的小怪兽均有x2个头.y2条腿.战场上一共有q个头,w条腿,问有多少奥特曼,有多少个小怪兽? Input 输入数据有多组每组包含6个正整数,分别为,x1,y1,x2,y2,q,w :(0<=q,w<=1000000000):输入数据保证有唯一解.读到0 0 0 0 0 0结束. Output 输出占一行,包含两个正整数,分别为:奥特曼和小怪兽的数目: Sample

解方程与高斯消元

解决多元一次方程组: n个方程n个未知数高斯消元法:思路:1.把方程未知数的系数写成一个矩阵2.消去x1,用除第一行以外的其他行减去第一行,写在原位上3.同理第二步,消去第三行的x24.原来的矩阵会变成一个上三角矩阵5.最后直接解方程*如果当前方程需要消元的位置系数是0,就把当前方程和下面第一个非0的方程换一下位置反正也不影响答案 代码实现: void gauss() { juzhen:m for(int i=1;i<=n;++i) { if(m[i][i]==0) { for(int j=i+

1402 解方程

1402 解方程 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 你曾因解麻烦的二元一次方程而烦恼吗?(其实很简单)我们现在用程序来模拟一下吧. 输入描述 Input Description 输入有两行,分别是两个一次方程,保证输入满足二元一次方程的定义:会出现小数,有效数字不会超过5位:保证有且只有一个解.未知数不一定是x和y.输出保留到小数点后10位.数据不超过maxlongint.不会出现括号.除

【BZOJ 3751】 [NOIP2014]解方程

3751: [NOIP2014]解方程 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 914  Solved: 173 [Submit][Status][Discuss] Description 已知多项式方程: a0+a1*x+a2*x^2+...+an*x^n=0 求这个方程在[1,m]内的整数解(n和m均为正整数). Input 第一行包含2个整数n.m,每两个整数之间用一个空格隔开. 接下来的n+1行每行包含一个整数,依次为a0,a1,