程序员的数学

若你只想当一个普通的程序员,数学对你来说并不是很重要。但是如果你想做一个顶级程序员,深入CS本源,那么数学对你来说就很重要了。

虽然数学作为一个基础学科,没有操作系统、数据结构、计算机网络等课程看起来“实用”,但如果想要深入学习机器学习的相关知识,数学功底是越扎实越好。

所以,从头开始学数学的本人,单独分类做数学笔记。^ _ ^

阅读推荐

首先,最基本的大学教材得学。

*高等数学第七版上下册 高教社 * 线性代数 高教社 * 概率论与数理统计 浙大版 * 离散数学 左孝凌 著,内容简明扼要,自学最好把配套解析也一起买了。(目前正在看这本) * 离散数学及其应用(原书第7版) Rosen 罗森 著,某乎推荐最高,不过书有点厚,但内容很细,要深入学习离散数学推荐。

什么是数学

数学(mathematics或maths,其英文来自希腊语,“máthēma”;经常被缩写为“math”),是研究数量、结构、变化、空间以及信息等概念的一门学科,从某种角度看属于形式科学的一种。

数学是一种思维模式,考验的是一个人归纳、总结和抽象的能力。

什么是离散数学

离散数学(Discrete mathematics)是研究离散量的结构及其相互关系的数学学科,是现代数学的一个重要分支。离散的含义是指不同的连接在一起的元素,主要是研究基于离散量的结构和相互间的关系,其对象一般是有限个或可数个元素。离散数学在各学科领域,特别在计算机科学与技术领域有着广泛的应用,同时离散数学也是计算机专业的许多专业课程,如程序设计语言、数据结构、操作系统、编译技术、人工智能、数据库、算法设计与分析、理论计算机科学基础等必不可少的先行课程。通过离散数学的学习,不但可以掌握处理离散结构的描述工具和方法,为后续课程的学习创造条件,而且可以提高抽象思维和严格的逻辑推理能力,为将来参与创新性的研究和开发工作打下坚实的基础。

看介绍应该也能知道离散数学对学CS的人来说有多重要。

数学建模

数学建模是一种数学的思考方法,是运用数学的语言和方法,通过抽象和简化,建立能近似刻画并解决实际问题的模型的一种强有力的数学手段。

数学建模流程(7步)

1.模型准备   (了解背景,用数学语言描述问题)
2.模型假设    (根据实际对象的特征和建模的目的,问题简化,用精确语言提出恰当假设)
3.模型建立    (在假设基础上,利用适当数学工具来刻画变量之间的数学关系,建立相应数学结构。注意尽量使用简单的数学工具)
4.模型求解    (利用获取的数据资料,对模型所有参数做出计算/估算)
5.模型分析    (对所得结果进行数学分析)
6.模型检验    (将模型分析结果与实际情形进行比较)
7.模型应用    

数学建模方法

1.直接分析法:认识原理,直接构造出模型。
2.类比法:根据类似问题模型构造新模型。
3.数据分析法:大量数据统计分析之后建模。
4.构想法:对将来可能发生的情况给出设想从而建模。

入门视频

走近数学——数学建模篇
数学建模