数学建模对程序设计的影响

06-10-19 xinlnix
                   

大学学过N多数学,高等数学,线性代数,概率等,除了枯燥外,没见有什么用处。有人说计算机专业学生学数学,锻练了思维。如果是这样,真感觉不很值得。

最近偶然接触Matlab,顺着找到了数学建模,原来在数学领域,关于数学建模的研讨还是非常热烈的,怪我孤陋寡闻,到现在才知道。我google了一段时间,初步了解了数学建模――用数学的方法解决实际问题。

于是,我忽然一下子想到了很多。数学建模应该能够大量地在软件开发中用到。尤其适用于对现有数据进行分析,做出预策的情况。

比如,客运企业,对旅客流量的分析;建立旅客流量预测模型,在此基础上可以预计客运企业能够实现的利润,据此制订年度增长计划。优化调度策略,使得客车所运行的线路安排无论在淡季还是旺季总是最佳。建立旅客满意度模型,使运营线路、客车、时间、行李运输最大限度地符合旅客需要。

比如,进销存软件,根据销售量建立销售数学模型,预测销售趋势;给出销售建议;建立库存量预警模型,根据计算,软件给出最优化建议:哪些商品应继续大量购进,哪些即使已到预警线,也应谨慎采购。

这些功能需求,如果进行数学建模,然后根据数学模型编写程序,其科学性和准确性将大大提高。数学可以做为程序设计的工具而使用。我们不需要去学枯燥的数学,去做复杂的数学推导――那是数学专业的事情。我们只是应用已知数学知识解决实际问题,这就是我所理解的数学建模。

这两天在google过程中,对数学建模领域的几句话印象比较深:

⑴高新技术实际上是数学技术;

⑵最有用的数学是数值分析和数学建模;

⑶数学建模已成为解决实际问题的关键手段;

⑷数学建模与数学实验是不同的,后者是学数学,前者是用数学。

所以,应用数学技术解决软件开发中的复杂商业问题是更高级的软件开发;在这方面,我只找到了一些只言片语,比如华尔街应用Matlab进行经济分析了,比如IBM利用数学解决商业问题了,IBM在谈到高级数学应用是如何在现实中解决复杂的商业问题时,说:我们会分析该公司的所有数据,找出我们所感兴趣的内容,一旦了解了公司的运作情况,你就可以针对这个公司的业务进行优化了。这种方式具有极好的性价比,客户可以在自己的预算内实现所期待的结果。还有,google的pagerank就是应用了线性代数的理论;postgresql数据库早期作者的论文中,我看到了大量的数学公式。除了这些比较高阶应用,我相信,数学模型在普通商业问题中应该有更广阔的应用前景。

数学建模与软件开发相结合能够更进一步促进软件向智能化方向发展。但是国内在这方面还没看到热潮。国内在这两方面都比较狭窄;数学技术人员所讨论的数学建模更关注参加数模大赛和Matlab的使用;而程序员们则更关注软件建模和软件应用,两者不能很好结合,进行这方面讨论的也很少,至少我的水平低,没google到。

当然,我想,对我们一般程序员来讲,如果将两者结合起来,是有相当难度的。不但要掌大量高等数学知识,还要能够熟练应用――这么高的门槛,绝非一朝一夕之功,这一下子就挡住了许多人的进入。我对数学虽然感兴趣,也只是门外汉,掌握数学所付出的努力,要比学会几门编程语言要高得多。象我这种为生存而奋斗的人,可能只有想想的份,哪有勇气拿出大段时间再读数学呢。

本人水平很低,先扔一块砖,看看大家的观点,也让我有所收益。

                   

1
qdj21
2006-11-10 14:16

十分同意楼主的观点。我们学了半天数学根本没弄清为什么学习,也许是为了考试吧。这样做很无意义。希望数学的课程中多引入一些建模的问题,培养我的认识问题和处理问题的能力。我认为这才是学习的根本。

jimmylai
2006-12-05 10:43

大学里面所学的所有数学课程都只是一些基础课程,你们觉得学了这些没用只是因为你们没有涉足过计算机的其它领域,有空多看点别的东西!

“有人说计算机专业学生学数学,锻练了思维”-----这句话说得很好,计算机专业的学生至少需要三种思维:数字思维、逻辑思维和离散思维,试问这三种思维属不属于数学?

banq
2006-12-05 11:10

>对我们一般程序员来讲,如果将两者结合起来,是有相当难度的。

我的观点是:没有必要结合,数学也是一个专业领域,软件是专门为专业领域服务的,一般程序员而不是建模专家没有必要对软件所服务的专业领域非常了解,只需了解那个领域专家所建立的模型即可,将模型通过设计代码实现,将软件做得更有弹性,扩展性,这才是程序员的本质工作。

国内很多人确实对软件自己本身属于一个领域不是很清楚,软件专业不是数学专业,两者是不同领域,虽然软件是为数学、管理、银行等领域服务,但是,软件人员不必掌握这些专业领域特有的概念,否则,软件人员不是成通才,最后通而不通,什么都做不好,软件本身也没做好,变成了所谓软件蓝领也没有人同情。

这种将软件领域和其他领域混为一谈,并且要求普通程序员也是领域建模专家的观点必须得到更改。

silverfish
2007-01-09 18:32

很多报表、分析软件、商业智能软件不就是干这个的吗?

数学本身就是各种可以量化的工作的利器

2Go 1 2 下一页